分类: LINUX
2009-10-04 01:42:08
更改终端行为或文本显示. 控制字符都是以CONTROL + key的组合键.
在脚本文件中控制字符是不起作用的.
Ctl-B
退格 (非破坏性的).
Ctl-C
中断. 终结一个前台作业.
Ctl-D
从一个shell中退出 (类似于).
"EOF" (文件结尾:end of file).它也用于表示标准输入(stdin)的结束.
在控制台或xterm 窗口输入文本时, Ctl-D删除在光标下的字符.如果没有字符存在,Ctl-D 则会登录出该会话. 在一个xterm窗口中,则会产生关闭此窗口的效果。
Ctl-G
"哔" (beep).在一些老式的打字机终端上,它会响一下铃.
Ctl-H
"杀掉" (破坏性的退格). 删除光标前的一个字符===.
1 #!/bin/bash 2 # 在一个字符串里嵌入 Ctl-H. 3 4 a="^H^H" # 两个 Ctl-H (退格). 5 echo "abcdef" # abcdef 6 echo -n "abcdef$a " # abcd f 7 #以一个空格结尾 ^ ^ 退二格. 8 echo -n "abcdef$a" # abcdef 9 # 现在没有尾部的空格 不退格了 (为什么?). 10 # 结果和预料的不一样. 11 echo; echo |
Ctl-I
水平制表符.
Ctl-J
新行(换一行并到行首).
Ctl-K
垂直制表符.
在控制台或xterm 窗口输入文本时, Ctl-K 会删除从光标所在处到行尾的所有字符。
Ctl-L
清屏 (重绘屏幕,清除前面的打印信息).这与命令作用相同.
Ctl-M
回车.
1 #!/bin/bash 2 # 多谢Lee Maschmeyer的例子. 3 4 read -n 1 -s -p $'Control-M leaves cursor at beginning of this line. Press Enter. \x0d' 5 # 是的, '0d'是Control-M的十六进制值. 6 echo >&2 # '-s'使所有被键入的字符都不回显, 7 #+ 所以需要明确地键入新行. 8 9 read -n 1 -s -p $'Control-J leaves cursor on next line. \x0a' 10 echo >&2 # Control-J 是换行. 11 12 ### 13 14 read -n 1 -s -p $'And Control-K\x0bgoes straight down.' 15 echo >&2 # Control-K 是垂直制表符. 16 17 # 展示垂直制表符作用的更好的例子是: 18 19 var=$'\x0aThis is the bottom line\x0bThis is the top line\x0a' 20 echo "$var" 21 # 这和上面的例子一样工作.但是: 22 echo "$var" | col 23 # 这使行的右端比左端更高. 24 # 这也解释了为什么我们以一个换行符开始和结束 -- 25 #+ 是为了避免屏幕显示混乱. 26 27 # 这是Lee Maschmeyer的解释: 28 # -------------------------- 29 # 在第一个垂直制表符例子中 . . . 垂直制表符使还未打印回车就直接垂直打印下来。 30 # 31 # 这只在不能“倒后”的设备里才成立,比如在Linux控制台, 32 # 33 # 垂直制表符真正的意图是能垂直地往上移,而不是往下移. 34 # 可以在打印机里用于打印上标. 35 # 这个要点的作用被用于仿效垂直制表符正确的功能. 36 37 exit 0 |
Ctl-Q
解冻 (XON).
它解冻终端的标准输入.
Ctl-S
挂起输入 (XOFF).
它冻结终端的标准输入. (用 Ctl-Q 可恢复输入.)
Ctl-U
删除从光标到行首的一行输入.在某些设置里,Ctl-U 删除整行的输入,而不管光标的位置.
Ctl-V
当输入一个文本, Ctl-V允许插入控制字符。例如,下面两个命令是相等的:
1 echo -e '\x0a' 2 echo |
Ctl-V 主要用于文本编辑.
Ctl-W
当在控制台或一个xterm窗口敲入文本时, Ctl-W 会删除从在光标处往后的第一个空白符之间的内容.在某些设置里, Ctl-W 删除光标往后到第一个非文字和数字之间的字符.
Ctl-Z
暂停一个前台作业.