टर्मिनल नई लाइनें क्यों नहीं प्रदर्शित करेगा?


16

उदाहरण के लिए, जब मैं निम्नलिखित कमांड टाइप करता हूं,

echo line | (cat >/dev/null; vi)

यहां तक ​​कि एक और खोल में लिपटे,

sh -c 'echo line | (cat >/dev/null; vi)'

और विम से लौटा, अब यह किसी भी अधिक वापसी गाड़ी को प्रदर्शित नहीं करेगा।

मैं इसे फिर से नई लाइनें प्रदर्शित करने के लिए कैसे कर सकता हूं? (बाहर निकलने के बिना।)


अनिवार्य स्विच-टू-एमएसीएस टिप्पणी :)
डांग खोआ

जवाबों:


36

इनमें से एक या दोनों का प्रयास करें:

  • टाइप करें ctrl+c, फिर टाइप करें reset, फिर दबाएँ enter
  • टाइप करें ctrl+c, फिर टाइप करें stty sane, फिर दबाएँ enter

ctrl+cकमांड लाइन में टाइप किए गए किसी भी अन्य वर्ण को साफ़ करने के लिए है।

resetया stty saneआमतौर पर एक गड़बड़ टर्मिनल को ठीक करता है। resetऔर sttyअधिक जानकारी के लिए मैन पेज पढ़ें ।

ध्यान दें कि यदि टर्मिनल को काफी गड़बड़ किया जाता है, तो यह हो सकता है कि उम्मीद के मुताबिक भी काम नहीं करेगा ctrl+cया नहीं enter। अभी भी वर्णों को इनपुट करने के अन्य तरीके हैं, लेकिन उनमें प्राचीन काले जादू शामिल हैं। उस मामले में, आमतौर पर टर्मिनल को बंद करना और दूसरा शुरू करना आसान होता है।

एक टर्मिनल के आंतरिक कामकाज के बारे में मेरी समझ यह बताने के लिए पर्याप्त नहीं है कि यह क्यों या कैसे करता है।


4

यह viस्टड से इनपुट लेने के लिए इच्छित उपयोग नहीं है ।

वैसे भी, आप के साथ फिर से नयापन पा सकते हैं

stty sane

टर्मिनल को रीसेट किए बिना।

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