歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

Stty使用技巧一則


Unix系統的命令很多,但是巧妙使用命令的方法更多。隨著經驗的積累和觀察學習其他用戶的實踐,我們也可學會解決特殊問題的方法。這裡談談自己使用Unix系統中stty命令的一些體會,希望能與你共享。
   1.stty(set tty,設置tty)命令用於檢查和修改當前注冊的終端的通信參數。Unix系統為鍵盤的輸入和終端的輸出提供了重要的控制手段,可以通過stty命令對特定終端或通信線路設置選項。可以在stty命令中使用-a查看當前注冊終端的設置情況。
$ stty -a 
speed 38400 baud;  ispeed 38400 baud;  ospeed 38400 baud;  line = 0(tty);
rows = 24; columns = 80; ypixels = 0; xpixels = 0;
intr = DEL; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = ^@;
swtch = ; susp = ; start = ^Q; stop = ^S;
-parenb -parodd cs8 -cstopb hupcl cread -clocal -loblk
-ortsfl -ctsflow -rtsflow
-ignbrk brkint ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc
ixon ixany -ixoff
isig icanon -xcase echo -echoe echok -echonl -noflsh
-iexten -tostop -xclude
opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel
-isscancode
-autoe -ed_emacs -ed_vi -ed_history
   需要時,這裡顯示的各種選擇都可以重新配置。每種終端選項都有自己的名字(如ixon),其中大多數要麼被設置要麼被清除。在stty中相應選項前冠以負號(-),該選項被清除(禁止);如果無負號,該選項被設置。
   當希望修改各選擇的值時,應在stty命令中正確書寫相應選項。如命令$ stty -ixon, 將流控制設置為OFF,而命令$ stty ixon 則將其置為ON。
   在stty命令中可以同時設置多個選項: $ stty ixon 1200 該命令將終端設置為1200波特,並將流控制置為ON。 
   當選項的列表較長時,應當小心所做的修改造成會話的混亂。典型的情況下,終端在設置不正確時完全不能工作。經常出現的現象是列輸出顯示或用戶的擊鍵不能被shell正確接受。有時NEWLINE可能只顯示或走一行但不回行,即用戶輸入的NEWLINE符不能被shell正確讀取。
   建立新注冊標識的過程通常建立了正確的stty選項,在日常使用中很少需要修改。但如果變量TERM的設置不正確或用戶希望使用新的終端或通信渠道(如局域網),則需要修改stty的選項。如果你在某個機器中注冊後終端操作正常,但後來因故發生了混亂,那麼最佳的解決方法是先注銷然後再向系統注冊。因為注冊時系統會重新設置相應選項。還有一種不太嚴格的解決辦法是: 
   $ stty sane 
   命令sane最常出現在大多數終端的stty選項的集合中。它並不改變通信信道的速率,但當終端發生混亂時,通常能夠產生有益的效果。命令sane可能使全屏幕應用程序(如vi)不能正確工作,而且在設置了選項sane之後,如果不能解決任何問題,就應立即注銷,然後再注冊。如果終端在注冊後依然不能正確工作,用戶的注冊可能是不成功的。 如果終端已經混亂,NEWLINE鍵不能結束命令行,可以用CTRL-J代替NEWLINE直到用戶執行stty sane。此時,再用CTRL-J終止stty sane,使系統恢復正常。
   stty命令的幾項主要選項功能為: 
   選項parenb使終端進行奇偶校驗,-parenb則是禁止校驗; 
   選項cs5、cs6、cs7和cs8分別將字符大小設為5、6、7和8比特; 
   選項300、600、1200、2400、4800、9600和19200設置波特率; 
   cstopb和-cstopb分別設置兩個或一個停止位; 
   tabs使系統使用制表符而不是空格序列,因此減少了輸出量,選項-tabs僅使用空格,當終端不能正確處理制表符(tab)時應使用該項。
2. stty還可用於控制一些具有特殊控制功能的鍵。系統可能已經使用CTRL-D作為文件結束符,但你可能喜歡使用CTRL-C。因此可以使用stty命令改變之:
$ stty eof c 
其中c可以是你喜歡的其它特殊控制字符可以直接輸入控制字符,在其前面冠以反斜線和脫字符( ^)。命令 $ stty eof ^c 將CTRL-C設置為文件結束符。這種語法形式還可以用於修改刪除符(通常為退格鍵BackSpace)和中斷符(通常為DEL鍵)。
   若希望將刪除符改為BACKSPACE,可以使用下列命令:$ stty erase ^h 可以設置一個會話期,使得當自己鍵入一個退格鍵時,系統用退格、刪除和退格序列響應。此時可以看到用退格鍵覆蓋的字符從顯示中消失了,這樣更符合計算機的慣例。
   使用命令 $ stty echoe 可使這一特性設置為ON。終端方式及其管理是Unix系統中比較困難的內容之一,系統的用戶手冊中有stty選項的全部清單。在進行嘗試之前,應當查閱手冊,仔細分析,以免給你的工作帶來麻煩。
Copyright © Linux教程網 All Rights Reserved