2008-11-14 14 views
6

एक मशीन से दूसरे मशीन पर ssh'ing के बाद हर बार एक आदेश कैसे निष्पादित करें?एक मशीन से दूसरे मशीन पर ssh'ing के बाद हर बार एक आदेश कैसे निष्पादित करें?

, उदा,

ssh mymachine 
stty erase ^H 

मैं नहीं बल्कि सिर्फ "stty मिटा^एच" हर बार निष्पादित मेरी ssh कनेक्शन पूर्ण होने के बाद होगा।

यह आदेश बस मेरी .zshrc फ़ाइल में नहीं जा सकता है। यानी स्थानीय सत्रों के लिए, मैं कमांड नहीं चला सकता (यह मेरी कीबाइंडिंग को खराब करता है)। लेकिन मुझे अपने रिमोट सत्रों के लिए इसे चलाने की ज़रूरत है।

उत्तर

0

एक लिनक्स लक्ष्य मानते हुए, में रख अपने .profile

+0

काम नहीं करेगा - मेरे अद्यतन सवाल की जानकारी देखें। – someguy

1

आप एक खोल के साथ एक * nix बॉक्स में प्रवेश कर रहे हैं, तो क्यों नहीं वह अपने खोल स्टार्टअप में डाल?

.bashrc या .profile अधिकांश मामलों में।

+0

काम नहीं करेगा - मेरी अद्यतन प्रश्न जानकारी देखें। – someguy

+0

पर्याप्त मेला - मैं @ geocar के सुझाव के साथ तो जाना चाहते हैं। –

7

आप अपने खोल के स्टार्टअप फाइल में कुछ इस तरह रख सकते हैं:

if [ -n "$SSH_CONNECTION" ] 
then 
    stty erase ^H 
end 

-n परीक्षण करता है, तो SSH_CONNECTION सेट कर दिया जाता है जो केवल तब होता है जब SSH के माध्यम से लॉग-इन का निर्धारण करेगा।

0

अपने ~/.bashrc के अंत में कमांड को जोड़ने का प्रयास करें। इसे लॉगऑफ पर बाहर किया जाना चाहिए। क्या आप यह आदेश केवल एसएसएच सत्र बंद करते समय निष्पादित करना चाहते हैं? स्थानीय सत्र आदि के बारे में क्या?

trap 'stty erase ^H; exit 0' 0 

आप शायद इसी पैटर्न का उपयोग करके/etc/profile से .logout फ़ाइल भी सेट कर सकते हैं। "। एक टर्मिनल से जुड़ा होना चाहिए"

geocar के समाधान स्क्रीन के रूप में काम नहीं करेगा शिकायत है कि:

10

हमारे लिए, स्क्रीन/Byobu उन का उत्तर ~/.ssh/rc

+0

+1, मैं वहाँ पता था कि यह करने के लिए एक बेहतर तरीका होना ही था। –

+0

+1, यह अस्तित्व में नहीं था। –

0

में आदेश रखो। (यह शायद सच है कि .ssh/rc संसाधित किया जाता है से पहले खोल शुरू कर दिया है के कारण होता है। man 8 sshd से LOGIN PROCESS अनुभाग देखें)।

रॉबर्ट के यहाँ समाधान के लिए बेहतर है, लेकिन स्क्रीन के बाद से और यह खुद बैश उदाहरण है खोलने Byobu, हम अनंत प्रत्यावर्तन बचने की जरूरत है।

## RUN BYOBU IF SSH'D ## 
## '''''''''''''''''' ## 
# (but only if this is a login shell) 

if shopt -q login_shell 
then 
    if [ -n "$SSH_CONNECTION" ] 
    then 
     byobu 
     exit 
    fi 
fi 

ध्यान दें कि मैं भी byobu के बाद exit कहा, के बाद से IMO अगर आप पहली जगह में Byobu उपयोग करते हैं, आप सामान्य रूप से नहीं इसके बारे में बाहर कुछ भी करना चाहते हैं: तो यहाँ Byobu के अनुकूल संस्करण निकाला जाता है।

संबंधित मुद्दे