जवाबों:
आज्ञाओं को अंदर रखो ~/.bashrc
। जब भी आप लॉग इन करते हैं, वहां कुछ भी निष्पादित होता है।
यदि आपको ssh के माध्यम से लॉगिंग करते समय केवल कमांड चलाने की आवश्यकता है (लेकिन जब भौतिक रूप से लॉगिंग नहीं होती है), तो आप शायद SSH_CONNECTION
पर्यावरण चर की उपस्थिति के लिए परीक्षण कर सकते हैं , और केवल कमांड को चला सकते हैं यदि आप इसे मौजूद पाते हैं।
अगर आप यह सभी उपयोगकर्ताओं के लिए चाहते हैं तो इसे ~ / .bashrc या /etc/bash.bashrc में डालें:
if [[ -n $SSH_CONNECTION ]] ; then
echo "I'm logged in remotely"
fi
screen
, तो मैं आपके उत्तर का उपयोग कर सकता हूं और screen
वहां प्रतिध्वनि की जगह रख सकता हूं । इसके साथ समस्या यह है कि स्क्रीन सत्र समाप्त करने से लॉग आउट करने के बजाय SSH प्रॉम्प्ट पर वापस आ जाएगा। बस इस टिप्पणी को लिखने से मुझे जवाब मिला, हालांकि: logout
कमांड के बाद कमांड जोड़ें screen
।
exec command
आपके द्वारा चलाए जा रहे मौजूदा शेल को बदल देगा।
वैकल्पिक रूप से, आप के आह्वान के दौरान चलाने के लिए एक कमांड निर्दिष्ट कर सकते हैं ssh
:
$ ssh -t server 'cmd; exec bash -l'
सूची में अंतिम कमांड को आपके पसंदीदा शेल में एक इंटरैक्टिव सत्र शुरू करना चाहिए। यदि आपके पास चलाने के लिए बहुत सारी कमांड हैं, तो अपने SSH सर्वर पर एक स्क्रिप्ट फ़ाइल बनाने पर विचार करें।
वास्तव में ~/.ssh/rc
एक सही जगह आप चलाने के लिए आदेश जोड़ने के लिए जब है आप में प्रवेश करें, बल्कि प्रणाली के किसी भी उपयोगकर्ता से।
~/.ssh/rc
Commands in this file are executed by ssh when the user logs in,
just before the user's shell (or command) is started. See the
sshd(8) manual page for more information.
man bash
) में सेक्शन INVOCATION पढ़ना होगा ।