2012-04-04 42 views
0

甚至不知道如何解釋這一點,但我連接到遠程計算機並執行一個命令輸出各種東西到標準輸出大約10分鐘。 (我基本上是在一個工具上運行一些實驗)。在執行過程中的一段時間之後,正在輸出的英文字符會變成下面的字符,並且即使在執行完成後仍保持這樣的狀態。下面是我在命令行中輸入echo「what hell」,然後輸出結果。除非我使用ssh,否則這不會發生。究竟是怎麼回事?在Unix中有史以來最奇怪的錯誤

°┤⎽␋⎺┼02% ␊␌␤⎺ "┬␤▒├ ├␤␊ ␤␊┌┌" 
┬␤▒├ ├␤␊ ␤␊┌┌ 
°┤⎽␋⎺┼02% 
+0

在發生這種情況時,在命令行中執行:** reset **,看看它是否解決了問題。 – karlphillip 2012-04-04 01:09:18

+0

不幸的是,它不.. – Cemre 2012-04-04 01:09:54

回答

3

一般來說,向您的終端輸出可能包含二進制數據的任意文本是不安全的。它可能包括終端逃生等。

您可以添加這對管道刪除一切,但打印的ASCII字符:

somecommand | tr -cd '\11\12\15\40-\176' 
2

你的終端不只是顯示文本,除其他事項外它響應,影響終端設置,可以更改字體,字符集,大小和其他東西不同的轉義序列。

當您輸出二進制數據時,無論是故意的還是由於某些錯誤(例如打印出未初始化的數組)而導致的,其中一些二進制數據恰好是終端解釋的特殊代碼。

+0

是的,輸出大多是二進制數據,因爲它是一個低級別的工具,所以我認爲這是絕對如此。是否有可能阻止我的終端響應這種輸出? (在OS X中) – Cemre 2012-04-04 01:18:26

2

另一個技巧是嘗試echo按Ctrl-V按Ctrl-O。^O字符移出VT100樣式終端的替代字符集。

如果這不起作用(並且所有其他答案都不起作用),關閉您的終端並重新連接。

+0

啊,這工作很好,它恢復正常了!我正在使用OS X,是否有可能以某種方式改變我的終端的風格? – Cemre 2012-04-04 01:17:12

+2

不,終端與VT100兼容,我不認爲有任何其他選擇。只要避免直接發送二進制數據到您的終端。我經常通過少量的('| less')來將控制字符重新格式化爲更可讀的內容。 – 2012-04-04 01:18:48