linux sqlite工具按刪除鍵無效問題處理和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 # andVUE # andDT accordingly.
#
if [ ! "VUE"−a!"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禁止終端回顯。

 

轉:https://www.cnblogs.com/the-tops/p/5621207.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章