Linux命令之stty

stty命令用于显示和修改终端行设置(change and print terminal line settings)

语法

stty [选项] [参数] [设置]

选项

-a:以容易阅读的方式打印当前的所有配置
-g:以stty可读方式打印当前的所有配置

常用参数

size	可以显示终端的大小,即行数和列数
eof : 输入结束,文件结束,默认为Ctrl+D。比如:用cat >file来创建文件时,按Ctrl+D来结束输入。
erase : 向后删除字符,擦除最后一个输入字符,默认为Ctrl+?。注意默认情况下退格键Backspace不是删除字符。
intr : 中断当前程序,默认为Ctrl+C。
kill : 删除整条命令,删除整行,默认为Ctrl+U。
quit :退出当前程序,默认为Ctrl+\或Ctrl+|。
start : 启动屏幕输出,默认为Ctrl+Q。
stop :停止屏幕输出,默认为Ctrl+S。有时候终端突然僵死了,可能是不小心按了Ctrl+S的缘故,因为我们习惯性的按Ctrl+S来保存文件。
susp : terminal stop当前程序,默认为Ctrl+Z。这样当前进程就会变成后台进程了。
werase:删除最后一个单词,默认为Ctrl+W。

stty命令还有一些其他用法如下:

在命令行下,禁止输出大写的方法:

stty iuclc     #开启
stty -iuclc    #恢复

在命令行下禁止输出小写:

stty olcuc    #开启
stty -olcuc   #恢复

打印出终端的行数和列数:

stty size

改变Ctrl+D的方法:

stty eof "string"

系统默认是Ctrl+D来表示文件的结束,而通过这种方法,可以改变!

屏蔽显示:

stty -echo   #禁止回显
stty echo    #打开回显
输入密码的脚本片段:stty -echo; read var; stty echo; 或 read -s var

测试方法:

stty -echo;read;stty echo;read

忽略回车符:

stty igncr     #开启
stty -igncr    #恢复

定时输入:

timeout_read()
{
	timeout=$1
	old_stty_settings=`stty -g`  #save current settings
	stty -icanon min 0 time 100  #set 10seconds,not 100seconds
	eval read varname            #=read $varname
	stty "$old_stty_settings"    #recover settings
}
#更简单的方法就是利用read命令的-t选项:
read -t 10 varname

评论

评论正在提交中...请稍后
评论提交成功...