使用stty修改終端設置 stty 用法!


linux/unix平台上的 sqlplus中,如果輸錯了字符,要想刪除,習慣性的按下backspace鍵后,發現非但沒有刪除想要刪掉的字符,還多出了兩個字符^H。當然,我們 可以同時按下ctrl+backspace鍵來刪除,但對於習慣了用backspace來刪除的用戶,這樣很不爽。這可以通過修改tty終端的設置來實現 backspace刪除功能。通過使用stty命令,就可以查看或者修改終端的按鍵設置。

例如,設置backspace為刪除鍵:

[oracle10g@linux]$ stty erase ^h

如果要改回使用ctrl+backspace為刪除鍵

[oracle10g@linux]$ stty erase ^?
 
[轉載注]在設置backspace時,最好先在shell提示符下按一下backspace鍵試一下,如果顯示^h就設置成stty erase ^h, 如果^?就用stty erease ^?

如果需要重啟后自動設置終端,可以將上述命令加入到profile中。

可以通過stty -a命令來查看所有的終端設置。下面是在linux下執行的輸出:

[oracle10g@linux]$ stty -a
speed 38400 baud; rows 66; columns 132; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

其中:

  • eof : 輸入結束
  • erase : 向后刪除字符,
  • intr : 中斷當前程序
  • kill : 刪除整條命令
  • quit :退出當前程序
  • start : 啟動屏幕輸出
  • stop :停止屏幕輸出;
  • susp : terminal stop當前程序。

-------------------

下面是我的.bashrc下面的相關設置

# Terminal-related commands, tput, tset, stty, etc should not be
# executed by vuelogin or dtlogin. These login environments set $VUE
# and $DT accordingly.
#
if [ ! "$VUE" -a ! "$DT" ]; then
  # Terminal specific commands...
  #tty -s && stty intr ^c susp ^z kill ^X erase ^h quit ^\\ eof ^d
  tty -s && stty intr ^c susp ^z kill ^X erase ^? quit ^\\ eof ^d

 

 

 

 

符部分其他用法:

1. stty  size  打印終端行數和列數

2,在命令行下禁止輸出小寫
stty olcuc #開啟
stty -olcuc#恢復

3,打印出終端的行數和列數
stty size

4,改變ctrl+D的方法:
stty eof "string"
系統默認是ctrl+D來表示文件的結束,而通過這種方法,可以改變!
 
5,屏蔽顯示
stty -echo #禁止回顯
stty echo #打開回顯
測試方法:
stty -echo;read;stty echo;read

6,忽略回車符
stty igncr #開啟
stty -igncr#恢復

7 .利用它設置我們的串口打印操作信息。
stty -F /dev/ttyS0 speed 115200 cs8 -parenb -cstopb  -echo
解釋:通過stty設置/dev/ttyS0串口, 波特率為115200 ,數據位cs8,奇偶校驗位-parenb,停止位-cstopb,同時-echo禁止終端回顯。

二:用法

1. stty  size  打印終端行數和列數

2,在命令行下禁止輸出小寫
stty olcuc #開啟
stty -olcuc#恢復

3,打印出終端的行數和列數
stty size

4,改變ctrl+D的方法:
stty eof "string"
系統默認是ctrl+D來表示文件的結束,而通過這種方法,可以改變!
 
5,屏蔽顯示
stty -echo #禁止回顯
stty echo #打開回顯
測試方法:
stty -echo;read;stty echo;read

6,忽略回車符
stty igncr #開啟
stty -igncr#恢復

7 .利用它設置我們的串口打印操作信息。
stty -F /dev/ttyS0 speed 115200 cs8 -parenb -cstopb  -echo
解釋:通過stty設置/dev/ttyS0串口, 波特率為115200 ,數據位cs8,奇偶校驗位-parenb,停止位-cstopb,同時-echo禁止終端回顯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM