UNIX系統的命令很多,下面講解stty. 該命令是一個用來改變並列印終端行設定的常用命令。
1、stty(set tty,設定tty)命令用於檢查和修改當前註冊的終端的通訊參數。
UNIX系統為鍵盤的輸入和終端的輸出提供了重要的控制手段,可以通過stty命令對特定終端或通訊線路設定選項。
可以在stty命令中使用-a查看當前註冊終端的設定情況。
$ stty -a
Speed 9600 baud; line =0;intr= DEL;quit = ^;erase = ^h;kill =^U; eof = ^d;start=^q;stop=^s
-parenb -parodd cs8 -cstopb -hupcl cread -clocal -loblk
-ignbrk brkint ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc
ixon ixany -ixoff
isig icanon -xcase echo echoe echok -echonl -noflsh
opost -olcuc onlcr -ocrnl -onocr onlret ofill ofdel tab3
需要時,這裡顯示的各種選擇都可以重新設定。每種終端選項都有自己的名字(如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)時應使用該項。