मैं अपने सत्र को डिस्कनेक्ट करने से नियंत्रण + d कैसे रख सकता हूं?


26

मैं नियमित रूप से एक सेंटो 5 बॉक्स के लिए ssh करता हूं। किसी तरह से वे चाबियाँ मैप की जाती हैं ताकि control+dमुझे मेरे वर्तमान शेल से लॉग आउट किया जाएगा। अगर मैं एक और उपयोग करने के लिए sudo'ed हूँ तो यह मुझे पिछले उपयोगकर्ता पर वापस रखता है। अगर मैं सुडोल नहीं हूँ तो यह मुझे काट देता है। मैं इसे कैसे हो सकता है? मैं नियमित रूप से नियंत्रण + डी का उपयोग अजगर दुभाषिया से बाहर करने के लिए करता हूं और कभी-कभी मैं गलती से इसे एक से अधिक बार दबाता हूं।


में csh, आप करते हैंset ignoreeof
ट्रेवर बॉयड स्मिथ

जवाबों:


32

IGNOREEOFयदि आप उपयोग करते हैं तो आप पर्यावरण चर की तलाश कर रहे हैं bash:

IGNOREEOF

एकमात्र इनपुट के रूप में एक ईओएफ चरित्र की प्राप्ति पर एक इंटरैक्टिव शेल की कार्रवाई को नियंत्रित करता है। यदि सेट किया जाता है, तो मान लगातार ईओएफ वर्णों की संख्या है जो बैश के बाहर निकलने से पहले एक इनपुट लाइन पर पहले अक्षर के रूप में टाइप किया जाना चाहिए। यदि चर मौजूद है, लेकिन कोई संख्यात्मक मान नहीं है, या इसका कोई मूल्य नहीं है, तो डिफ़ॉल्ट मान 10 है। यदि यह मौजूद नहीं है, तो EOF शेल में इनपुट के अंत का प्रतीक है।

इसलिए export IGNOREEOF=42और आपको Ctrl+Dचौबीस बार प्रेस करना होगा, इससे पहले कि वह वास्तव में आपके शेल को छोड़ दे।

POSIX setकी एक -o ignoreeofसेटिंग भी है। तो अपने शेल के प्रलेखन से यह देखने के लिए परामर्श करें कि क्या आपके शेल में यह है (यह होना चाहिए), और इसके सटीक शब्दार्थ को जांचने के लिए।


अच्छा है, कम से कम उबंटू पर "शेल छोड़ने के लिए उपयोग करें" संदेश देता है। यदि उपयोगकर्ता मूल रूप से मूल स्तर का है, तो एक उपयोगकर्ता में su'd होने के नाते, आप शायद अनजाने में इसे छोड़ना नहीं चाहते हैं, यह जासूसी है।
फासको लैब्स

1
मुझे व्यक्तिगत रूप से लगता है कि वास्तव में कष्टप्रद है, इसलिए मैं इसे कहीं भी सेट नहीं करता। उस व्यवहार को अक्षम करने की कोशिश करते हुए इनके बारे में पता चला :)
Mat

2
मैं एक पेडेंट होने का विरोध नहीं कर सकता। IGNOREEOFअंत में ईओएफ को स्वीकार करने से पहले ईओएफ की अनदेखी की जाती है। तो आपके उदाहरण के ऊपर, यदि आप export IGNOREEOF=42, आपको बाहर निकलने के लिए 43 बार कंट्रोल-डी को दबाने की आवश्यकता होगी - 42 नहीं
एल्विन थॉम्पसन


0

यदि आपको वास्तव में पसंद नहीं है Ctrl-d, तो आप eofटर्मिनल नियंत्रण में चरित्र को हटा सकते हैं ।

stty eof undef

इसके बाद, Cntl-dकोई अन्य नियंत्रण चरित्र होगा।


1
मैंने बस कोशिश की कि एक टर्मिनल (urxvt) में बैश के साथ, और एक सादे कंसोल में, और यह काम नहीं किया।
मैट

हम्म ... जो काम करते थे और डॉक्स अब भी कहते हैं कि यह करता है। एक विकल्प का उपयोग करना होगा <kbd> Ctrl - [</ kvd>।
20

2
यह भी अजगर से बाहर नहीं निकलेगा।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.