2008-09-23 21 views
18

मैं की तरह कुछ करते हैं: मेरे टर्मिनल मेंमेरे टर्मिनल में बाइनरी डेटा का एक गुच्छा डंप करने के बाद मेरे कीस्ट्रोक पागल पात्रों में क्यों बदलते हैं?

$ cat /bin/ls 

, मैं समझता हूँ कि मैं क्यों बाइनरी डेटा का एक समूह देखते हैं, निष्पादन योग्य ls का प्रतिनिधित्व। लेकिन बाद में, जब मैं अपना प्रॉम्प्ट वापस लेता हूं, तो मेरे स्वयं के कीस्ट्रोक पागल लगते हैं। मैं "ए" टाइप करता हूं और मुझे एक अजीब विकर्ण रेखा मिलती है। मैं "बी" टाइप करता हूं और मुझे डिग्री का प्रतीक मिलता है।

ऐसा क्यों होता है?

+1

[यह लिंक] (http://bbs.archlinux.org/viewtopic.php?pid=423358#p423358) अब तक का सबसे अच्छा जवाब मैंने देखा है। – raldi

उत्तर

3

आपको खोल में पाइप किए गए कुछ नियंत्रण वर्ण मिल रहे हैं जो शैल को अपने व्यवहार को बदलने और चीजों को अलग-अलग प्रिंट करने के लिए कह रहे हैं।

43

क्योंकि आपके बाइनरी डेटा में कहीं कुछ नियंत्रण अनुक्रम थे जो आपके टर्मिनल को अनुरोध के रूप में व्याख्या करते हैं, उदाहरण के लिए, ड्रॉ करने के लिए उपयोग किए गए वर्ण सेट को बदलें। तुम इतनी तरह सामान्य करने के लिए सब कुछ को बहाल कर सकते हैं:

reset 
2

VT100 काफी मानक आदेश टर्मिनल खिड़कियों के लिए इस्तेमाल किया सेट है, लेकिन बहुत सारे एक्सटेंशन नहीं है। कुछ नियंत्रण चरित्र सेट का इस्तेमाल किया गया, कीबोर्ड मैपिंग, आदि

जब आप इस तरह के टर्मिनल में बहुत से बाइनरी वर्ण भेजते हैं, तो बहुत सी सेटिंग्स बदलती हैं। कुछ टर्मिनलों में सेटिंग को डिफ़ॉल्ट रूप से 'साफ़' करने के विकल्प होते हैं, लेकिन सामान्य रूप से वे केवल बाइनरी डेटा के लिए नहीं बनाए जाते थे।

वीटी 100 और इसके उत्तराधिकारी लिनक्स को एक साधारण टर्मिनल प्रोग्राम में रंगीन पाठ (जैसे रंगीन एलएस लिस्टिंग) में प्रिंट करने की अनुमति देते हैं।

-Adam

-1

तुम सच में अपने टर्मिनल के लिए बाइनरी डेटा डंप करना चाहिए, तो आप ज्यादा बेहतर भाग्य होगा यदि आप less की तरह एक पेजर, जो इसे एक से थोड़ा अधिक पठनीय प्रारूप में प्रदर्शित करेगा करने के लिए यह पाइप। (आप भी strings और od में रुचि हो सकती है, दोनों उपयोगी यदि आप बाइनरी फ़ाइलें के साथ लगभग नगण्य रहे हैं हो सकता है।)

+0

यह "क्यों" का उत्तर नहीं देता है, तो शायद यह सवाल पर एक टिप्पणी होनी चाहिए। – tzot

3

टर्मिनल नियंत्रण कोड के रूप में यह पर फेंके गए बाइनरी डेटा की व्याख्या करने की कोशिश करेंगे, और खुद को ऊपर मिथ्या अर्थ लेना प्रक्रिया में, तो आपको अपनी टीटीआई को स्वच्छ करने की जरूरत है।

रन:

stty sane 

और चीजों को सामान्य करने के लिए वापस होना चाहिए। यहां तक ​​कि अगर आप इसे टाइप करते समय कमांड को खराब लगते हैं, तो वास्तविक वर्ण सही तरीके से संग्रहीत किए जा रहे हैं, और जब आप रिटर्न दबाते हैं तो कमांड लागू किया जाएगा।

आप stty कमांड here के बारे में अधिक जानकारी प्राप्त कर सकते हैं।

echo -e '\017' 

अपने बैश और पात्रों को सामान्य करने के लिए वापस आ जाएगी:

11

बस एक कॉपी-पेस्ट करते हैं।

<Ctrl-V><Ctrl-O><Enter> 

और जब यह शिकायत है कि यह या तो एक < Ctrl-V> < Ctrl-हे> नहीं मिल सकता है उम्मीद है कि अपने टर्मिनल की स्थिति सामान्य करने के लिए वापस आ जाएगी: आप पार्टी नहीं चला, तो निम्न कीस्ट्रोक्स कोशिश या < Ctrl-O> चलाने के लिए आदेश।

< Ctrl-एन>, या चरित्र 14 -मुझे एक विशेष ग्राफिक्स मोड, जहां अक्षर और संख्या प्रतीकों के साथ बदल दिया जाता है करने के लिए स्विच करने के लिए अपने टर्मिनल आदेश के लिए भेजा। < Ctrl-O>, या वर्ण 15, चीजों को सामान्य पर वापस बहाल करता है।