在Linux终端命令行中,当命令执行错误或失败,都会有提示信息,按下[ctrl]+c键会中断命令,这是怎么做到的呢?
这是因为登陆终端的时候,bash会自动取得一些终端的输入环境的设置。
1、stty
命令:stty [-a] [按键意义 按键]
说明:stty -a可以列出当前环境中所有的按键列表
各按键所代表的意义 | |
eof | end of file,代表结束输入 |
erase | 向后删除字符 |
intr | 送出一个interrupt信号给当前正在运行的程序 默认为[ctrl]+c,值为^C |
kill | 删除当前命令行的所有文字 |
quit | 送出一个quit信号给当前正在运行的程序 |
start | 在某个进程停止后,重新启动它的输出 |
stop | 停止目前屏幕上的输出 |
susp | 送出一个terminal stop信号给正在运行的程序 |
默认的一些按键
Ctrl+C | 终止目前的命令 |
Ctrl+D | 输入结束 |
Ctrl+M | 就是Enter |
Ctrl+S | 暂停屏幕的输出 |
Ctrl+Q | 恢复屏幕的输出 |
Ctrl+U | 在提示符下,将整行命令删除 |
Ctrl+Z | 暂停目前的命令 |
设置按键
例:stty erase ^h 表示使用[ctrl]+h来进行字符的删除
2、set
命令:set [-uvxhHmBC]
参数:
-u:默认不启用,启用后,当使用为设置的变量时,会显示错误信息
-v:默认不启用,启用后,在讯息被输出前,会先显示信息的原始内容
-x:默认不启用,启用后,在命令被执行前,会先显示命令内容(前面后++符号)
-h:默认启用,与历史命令有关
-H:默认启用,与历史命令有关
-m:默认启用,与工作管理有关
-B:默认启用,与[]的作用有关
-C:默认不启用,使用>号时,若文件存在时,改文件不会被覆盖