你可以用控制字符(Ctrl/Control系列组合键)执行一些特殊功能,例如停止和开始屏幕输出,删除整个命令行,或停止执行一个命令。 当然这些控制字符可以用stty命令进行重定义
控制字符 关键字 目的
Control +c intr 中止当前运行的命令
Control +d eof 删除当前字符,指到文件的结尾,或者退出终端
Control +u kill 删除光标左边(不含光标)所有的字符
Control +w werase 删除命令行的最后一个单词
Control +s stop 中止屏幕输出
Control +q start 恢复屏幕输出,解除Control +s的操作
Control +a 光标跳到当前行头(bash)
Control +e 光标跳到当前行尾(bash)
Control +k 删除光标右边(含光标)所有的字符(bash)
Control +z 暂停当前命令,准备用bg转到后台继续执行(bash)
在bourne shell的stty指令中,erase/werase/kill 分别表示:删除一个字符(delete)/最后一个单词(Ctrl-w)/当前行(Ctrl-u),最常用的自定义如下:
- l
stty
erase ^H -------erase表示删除一个字符,^H表示敲下Backspace键,默认用Delete键
- l
stty
werase ^? -------wereae表示删除最后一个单词,^? 表示敲下Delete键
- l
stty
kill ^[ -------kill表示删除当前行,^[ 表示敲下Esc键,默认用Ctrl-u
- l
stty ek -------把erase和kill恢复成默认值(Delete和Ctrl-u)
- l
stty -echo -------关闭命令的回显,即键入的任何字符均不在屏幕显示,示例:
stty -echo
echo “plz enter the passwd:” 关闭回显并不影响echo命令
read passwd 当你键入密码时,屏幕不会显示你键入了哪些字符
echo “the passwd is $passwd”
stty echo 恢复回显