日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux stty

發(fā)布時(shí)間:2024/8/26 linux 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux stty 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在linux/unix 平臺(tái)上的sqlplus中,如果輸錯(cuò)了字符,要想刪除,習(xí)慣性的按下backspace鍵后,發(fā)現(xiàn)非但沒(méi)有刪除想要?jiǎng)h掉的字符,還多出了兩個(gè)字符^H。當(dāng) 然,我們可以同時(shí)按下ctrl+backspace鍵來(lái)刪除,但對(duì)于習(xí)慣了用backspace來(lái)刪除的用戶(hù),這樣很不爽。這可以通過(guò)修改tty終端的設(shè) 置來(lái)實(shí)現(xiàn)backspace刪除功能。通過(guò)使用stty命令,就可以查看或者修改終端的按鍵設(shè)置。

  例如,設(shè)置backspace為刪除鍵:

  [oracle10g@linux]$ stty erase ^h

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

  [oracle10g@linux]$ stty erase ^?

  如果需要重啟后自動(dòng)設(shè)置終端,可以將上述命令加入到profile中。

  可以通過(guò)stty -a命令來(lái)查看所有的終端設(shè)置。下面是在linux下執(zhí)行的輸出:

  [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 : 輸入結(jié)束

  erase : 向后刪除字符,

  intr : 中斷當(dāng)前程序

  kill : 刪除整條命令

  quit :退出當(dāng)前程序

  start : 啟動(dòng)屏幕輸出

  stop :停止屏幕輸出;

  susp : terminal stop當(dāng)前程序。

也可以在 /etc/bashrc 加入如下SHELL

if [ -x /usr/bin/tput ]; then
????? if [ "x`tput kbs`" != "x" ]; then # We can't do this with "dumb" terminal
??????? stty erase `tput kbs`
????? elif [ -x /usr/bin/wc ]; then
??????? if [ "`tput kbs|wc -c `" -gt 0 ]; then # We can't do this with "dumb" te
????????? stty erase `tput kbs`
??????? fi
????? fi
??? fi

最后,附上stty的中文幫助
stty - 改變并打印終端行設(shè)置??

總覽

stty?[-F device] [--file=device] [SETTING]...?
stty?[-F device] [--file=device] [-a|--all]?
stty?[-F device] [--file=device] [-g|--save]??

描述

?

打印或改變終端屬性.

-a,?--all
以可讀的格式打印當(dāng)前的所有設(shè)置
-g,?--save
以終端可讀的格式打印當(dāng)前的所有設(shè)置
-F,?--file
打開(kāi)指定的設(shè)備,并用此設(shè)備作為輸入來(lái)代替標(biāo)準(zhǔn)輸入
--help
顯示幫助并退出
--version
顯示版本信息并退出

選項(xiàng)-在SETTING之前使用這些選項(xiàng)將被視為無(wú)效 星號(hào)*表明是非POSIX設(shè)置. 以下是一些系統(tǒng)定義了的可用設(shè)置:

特殊字符

* dsusp CHAR CHAR表示輸入滿(mǎn)時(shí),發(fā)一個(gè)停止信號(hào)給終端

eof CHAR
CHAR表示一個(gè)文件結(jié)束 (結(jié)束輸入)
eol CHAR
CHAR表示當(dāng)前行結(jié)束

* eol2 CHAR CHAR是另一個(gè)表示結(jié)束當(dāng)前行的字符

erase CHAR
CHAR表示擦除最后一個(gè)輸入字符
intr CHAR
CHAR表示發(fā)一個(gè)中斷信號(hào)
kill CHAR
CHAR表示擦除當(dāng)前行

* lnext CHAR CHAR表示輸入下一個(gè)字符

quit CHAR
CHAR表示發(fā)出一個(gè)退出信號(hào)

* rprnt CHAR CHAR表示刷新當(dāng)前行

start CHAR
CHAR表示在停止輸出后重新開(kāi)始輸出
stop CHAR
CHAR表示停止輸出
susp CHAR
CHAR表示發(fā)送一個(gè)終端停止信號(hào)

* swtch CHAR CHAR表示切換到不同的外殼層

* werase CHAR CHAR表示擦除已經(jīng)輸入的最后一個(gè)單詞??

特殊設(shè)置

N
把輸入和輸出的波特率設(shè)為N

* cols N 通知內(nèi)核終端有N列

* columns N 與cols N 相同

ispeed N
設(shè)置輸入速度為N

* line N 用行約束規(guī)則N

min N
用?-icanon, 設(shè)置一次完整的讀操作最小為N個(gè)字符
ospeed N
設(shè)置輸出速度為N

* rows N 通知內(nèi)核終端有N行

* size 根據(jù)內(nèi)核打印出終端的行數(shù)和列數(shù)

speed
打印出終端的速度
time N
同時(shí)用?-icanon, 設(shè)置讀超時(shí)為十分之N秒

?

控制設(shè)置

[-]clocal
關(guān)閉解調(diào)器的控制信號(hào)
[-]cread
允許接收輸入

* [-]crtscts 允許 RTS/CTS 的握手

csN
把字符長(zhǎng)度設(shè)為N, N 為[5..8]
[-]cstopb
對(duì)每字符使用兩個(gè)停止位 (一個(gè)帶有 `-')
[-]hup
當(dāng)最后一個(gè)進(jìn)程關(guān)閉終端后,發(fā)一個(gè)掛起信號(hào)
[-]hupcl
同 [-]hup
[-]parenb
在輸出中產(chǎn)生奇偶校驗(yàn)位,并要求在輸入中也有奇偶校驗(yàn)位
[-]parodd
設(shè)置奇校驗(yàn) (偶校驗(yàn)用 `-')

?

輸入設(shè)置:

[-]brkint
暫停并產(chǎn)生中斷信號(hào)
[-]icrnl
將回車(chē)解釋為換行
[-]ignbrk
忽略中斷信號(hào)
[-]igncr
忽略回車(chē)符
[-]ignpar
忽略有奇偶校驗(yàn)錯(cuò)的字符

* [-]imaxbel 對(duì)一個(gè)字符產(chǎn)生嘟叫,但不刷新已滿(mǎn)的輸入緩沖區(qū)

[-]inlcr
將換行解釋為回車(chē)
[-]inpck
打開(kāi)輸入奇偶校驗(yàn)
[-]istrip
清除輸入字符的高位(第8位)

* [-]iuclc 將大寫(xiě)字符轉(zhuǎn)換成小寫(xiě)字符

* [-]ixany 使任何字符都重新開(kāi)始輸出(而 不僅僅是重新輸出字符能實(shí)現(xiàn)此功能)

[-]ixoff
打開(kāi)發(fā)送開(kāi)始/停止字符的開(kāi)關(guān)
[-]ixon
打開(kāi)XON/XOFF的流量控制
[-]parmrk
標(biāo)記奇偶校驗(yàn)錯(cuò)誤 (使用255-0-character 字符序列)
[-]tandem
同 [-]ixoff

輸出設(shè)置:

* bsN 回退延遲, N 為 [0..1]

* crN 回車(chē)延遲, N 為 [0..3]

* ffN 換頁(yè)延遲, N 為 [0..1]

* nlN 換行延遲, N 為 [0..1]

* [-]ocrnl 將回車(chē)解釋為換行

* [-]ofdel 使用刪除字符來(lái)填充,而不是用空字符填充

* [-]ofill 使用填充字符,不使用定時(shí)延遲

* [-]olcuc 將小寫(xiě)字符轉(zhuǎn)換成大寫(xiě)

* [-]onlcr 將換行解釋為回車(chē)-換行

* [-]onlret 換行執(zhí)行一次回車(chē)

* [-]onocr 不在第一列打印回車(chē)

[-]opost
postprocess 輸出

* tabN 水平tab鍵延遲, N 為 [0..3]

* tabs 同tab0

*?-tabs?同tab3

* vtN 垂直方向tab鍵延遲。。。, N 為 [0..1]??

本地設(shè)置:

[-]crterase
將擦除字符顯示為:退格-空格-退格

* crtkill 根據(jù)echoprt和echoe的設(shè)置去除所有行

*?-crtkill?根據(jù)echoctl和echok設(shè)置去除所有行

* [-]ctlecho 在頭部符號(hào)中顯示控制字符'^c')

[-]echo
顯示輸入字符

* [-]echoctl 同 [-]ctlecho

[-]echoe
同[-]crterase
[-]echok
在一個(gè)殺死字符后顯示一個(gè)換行

* [-]echoke 同 [-]crtkill

[-]echonl
即使不顯示其它字符也換行

* [-]echoprt 向后顯示在 '' 和 '/'之間的擦除字符

[-]icanon
打開(kāi) erase, kill, werase, 和 rprnt 這些特殊字符
[-]iexten
打開(kāi) 非POSIX 特殊字符
[-]isig
打開(kāi)中斷,退出和掛起這些特殊字符
[-]noflsh
在中斷和退出這些特殊字符后禁止刷新

* [-]prterase 同 [-]echoprt

* [-]tostop 停止試圖寫(xiě)終端的后臺(tái)作業(yè)

* [-]xcase 與icanon同時(shí)使用, 表示用`'退出大寫(xiě)狀態(tài)

綜合設(shè)置:

* [-]LCASE 同 [-]lcase

cbreak
同?-icanon
-cbreak
同 icanon
cooked
同 brkint ignpar istrip icrnl ixon opost isig icanon, eof 和 eol 字符被設(shè)為默認(rèn)值
-cooked
同 raw
crt
同 echoe echoctl echoke
dec
同 echoe echoctl echoke?-ixany?intr ^c erase 0177 kill ^u

* [-]decctlq 同 [-]ixany

ek
將擦除,殺死字符設(shè)為它們的默認(rèn)值
evenp
同 parenb?-parodd?cs7
-evenp
同?-parenb?cs8

* [-]lcase 同 xcase iuclc olcuc

litout
同 fB-parenb?-istrip?-opost?cs8
-litout
同 parenb istrip opost cs7
nl
同?-icrnl?-onlcr
-nl
同 icrnl?-inlcr?-igncr?onlcr?-ocrnl?-onlret
oddp
同 parenb parodd cs7
-oddp
同?-parenb?cs8
[-]parity
同 [-]evenp
pass8
同?-parenb?-istrip?cs8
-pass8
同 parenb istrip cs7
raw
同?-ignbrk?-brkint?-ignpar?-parmrk?-inpck?-istrip?-inlcr?-igncr?-icrnl?-ixon?-ixoff?-iuc lc-ixany?-imaxbel?-opost?-isig?-icanon?-xcase?min 1 ti me 0
-raw
同 cooked
sane
同 cread?-ignbrk?brkint?-inlcr?-igncr?icrnl?-ixoff?-iuclc?-ixany?imaxbel opost?-olcuc?-ocrnlonlcr?-onocr?-onlret?-ofill?-ofdel?nl0 cr0 tab0 bs0 vt0 ff 0 isig icanon iexten echo echoe echok?-echonl?-noflsh?-xcase?-tostop?-echoprt?echoctl echoke, 所有特殊字符使用缺省值.

本命令處理連接到標(biāo)準(zhǔn)輸入的終端行.如不帶參數(shù),則輸出波特率, 行的約束規(guī)則,以及與健全的stty相背離的設(shè)置.在設(shè)置中, CHAR 是逐字讀取的, 或是象 ^c, 0x37, 0177 或127這樣的編碼; 特殊值 ^- 或未定義被用來(lái)禁止特殊字符.??

與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Linux stty的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。