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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux命令之stty

發(fā)布時間:2023/12/2 linux 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux命令之stty 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

用途說明

stty命令用于顯示和修改終端行設(shè)置(change and print terminal line settings)。

常用參數(shù)

stty命令不帶參數(shù)可以打印終端行設(shè)置,加上-a參數(shù)可以打印得更詳細些。

stty size可以顯示終端的大小,即行數(shù)和列數(shù)。

stty命令還可以更改終端行的設(shè)置,格式如下:

stty SETTING CHAR

其中,SETTING可以是如下

??? eof : 輸入結(jié)束,文件結(jié)束,默認為Ctrl+D。比如:用cat >file來創(chuàng)建文件時,按Ctrl+D來結(jié)束輸入。
??? erase : 向后刪除字符,擦除最后一個輸入字符,默認為Ctrl+?。注意默認情況下退格鍵Backspace不是刪除字符。
??? intr : 中斷當前程序,默認為Ctrl+C。
??? kill : 刪除整條命令,刪除整行,默認為Ctrl+U。
??? quit :退出當前程序,默認為Ctrl+\或Ctrl+|。
??? start : 啟動屏幕輸出,默認為Ctrl+Q。
??? stop :停止屏幕輸出,默認為Ctrl+S。
??? susp : terminal stop當前程序,默認為Ctrl+Z。這樣當前進程就會變成后臺進程了。

??? werase:刪除最后一個單詞,默認為Ctrl+W。

stty命令還有一些其他用法,如:

??? stty -echo 關(guān)閉回顯。比如在腳本中用于輸入密碼時。

??? stty echo 打開回顯。


使用示例

示例一 打印終端行設(shè)置

[root@web ~]# stty
speed 38400 baud; line = 0;
-brkint -imaxbel
[root@web ~]# stty -a
speed 38400 baud; rows 41; columns 132; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <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 -cdtrdsr
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
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

[root@web ~]#

?

示例二 打印當前終端的大小(行數(shù)和列數(shù))

[root@web ~]# stty size
41 132

示例三 設(shè)置退格鍵Backspace的刪除行為

在默認情況下,我們按退格鍵Backspace時,會在屏幕上回顯^H,而不是把前一個字符刪除。比如使用sftp/ftp/sqlplus/ij等命令時,就會碰到這種情況。我們可以使用stty命令把Backspace的行為變成刪除前一個字符。

[root@web ~]# sftp 192.168.6.12
Connecting to 192.168.6.12...
root@192.168.6.12's password:
sftp> get abc^H^H^H^H
Couldn't stat remote file: No such file or directory
File "/root" not found.
sftp> quit
[root@web ~]#
[root@web ~]# stty erase ^H
[root@web ~]# sftp 192.168.6.12
Connecting to 192.168.6.12...
root@192.168.6.12's password:
sftp> get abc
Couldn't stat remote file: No such file or directory
File "/root/abc" not found.
sftp> quit
[root@web ~]#

示例四 在vi編輯文件時按Ctrl+Q來結(jié)束終端僵死的局面

[root@web ~]# vi 1.txt
1
2
3
Ctrl+S
~

注:按了Ctrl+S之后,就會禁止屏幕輸出,從而出現(xiàn)終端僵死的情況。

這個時候,只要按Ctrl+Q就會結(jié)束這種局面,因為它會允許屏幕輸出。

Ctrl+Q

?

示例五 在bash腳本中與tty命令配合使用

在下面的腳本中,先取得終端文件名稱,以判斷腳本是否運行在交互式方式還是在管道方式。

#!/bin/sh CONSOLE_INPUT=$(tty) echo "CONSOLE_INPUT=$CONSOLE_INPUT" COMMAND_LINE="java -Xmx640m -classpath .:lib/hyjc.jar:lib/log4j-1.2.15.jar:lib/commons-logging-1.1.1.jar:lib/proxool-0.9.0RC3.jar:lib/mysql-connector-java-5.1.10-bin.jar:lib/poi-3.5-ZHY-20091107.jar:lib/jdom-1.1.jar hyjc.sql.DBCLI MhrDB.properties MhrDB" if [ "$CONSOLE_INPUT" == "not a tty" ]; then $COMMAND_LINE elif [ "$(whereis rlwrap)" == "rlwrap:" ]; then stty erase ^H $COMMAND_LINE else rlwrap -f jdb.rlwrap $COMMAND_LINE fi

?

轉(zhuǎn)自:http://codingstandards.iteye.com/blog/826924


附:Linux終端常用快捷鍵:

?

Ctrl + d???????刪除一個字符,相當于通常的Delete鍵(命令行若無任何字符,則相當于exit;處理多行標準輸入時也表示EOF )

Ctrl + h???????退格刪除一個字符,相當于通常的Backspace鍵

Ctrl + u???????刪除光標之前到行首的字符

Ctrl + k???????刪除光標之前到行尾的字符

Ctrl + c???????取消當前行輸入的命令,相當于Ctrl + Break

Ctrl + a???????光標移動到行首(Ahead of line),相當于通常的Home鍵

Ctrl + e???????光標移動到行尾(End of line)

Ctrl + f???????光標向前(Forward)移動一個字符位置

Ctrl + b???????光標往回(Backward)移動一個字符位置

Ctrl + l???????清屏,相當于執(zhí)行clear命令

Ctrl + p???????調(diào)出命令歷史中的前一條(Previous)命令,相當于通常的上箭頭

Ctrl + n???????調(diào)出命令歷史中的下一條(Next)命令,相當于通常的上箭頭

Ctrl + r???????顯示:號提示,根據(jù)用戶輸入查找相關(guān)歷史命令(reverse-i-search)

轉(zhuǎn)載于:https://www.cnblogs.com/jjzd/p/6840445.html

總結(jié)

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

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