行首.
在正则表达式中, "^" 表示定位到文本行的行首.
修改终端或文本显示的行为. . 控制字符以CONTROL + key 这种方式进行组合(同时按下). 控制
字符也可以使用8进制 或16进制表示法来进行表示, 但是前边必须要加上转义符.
控制字符在脚本中不能正常使用.
Ctl-B
退格(非破坏性的), 就是退格但是不删掉前面的字符.
Ctl-C
break. 终结一个前台作业.
Ctl-D
从一个shell中登出(与exit很相像).
"EOF" (文件结束). 这也能从stdin中终止输入.
在console或者在xterm 窗口中输入的时候, Ctl-D将删除光标下字符. 当没有字符时, Ctl-
D 将退出当前会话, 在一个xterm窗口中, 则会产生关闭此窗口的效果.
Ctl-G
"哔" (beep). 在一些老式的打字机终端上, 它会响一下铃.
Ctl-H
"退格"(破坏性的), 就是在退格之后, 还要删掉前边的字符.
1 #!/bin/bash
2 # Embedding Ctl-H in a string.
3
4 a="^H^H" # 两个 Ctl-H's (backspaces).
5 echo "abcdef" # abcdef
6 echo -n "abcdef$a " # abcd f
7 # Space at end ^ ^ 两次退格.
8 echo -n "abcdef$a" # abcdef
9 # 结尾没有空格 没有 backspace 的效果了(why?).
10 # 结果并不像期望的那样.
11 echo; echo
Ctl-I
水平制表符.
Ctl-J
重起一行(换一行并到行首). 在脚本中, 也可以使用8进制表示法 -- '\012' 或者16进制
表示法 -- '\x0a' 来表示.
Ctl-K
垂直制表符.
当在console或者xterm 窗口中输入文本时, Ctl-K将会删除从光标所在处到行为的全部字
符. 在脚本中, Ctl-K的行为有些不同, 具体请参见下边的Lee Maschmeyer的例子程序.
Ctl-L
清屏(清除终端的屏幕显示). 在终端中, 与clear 命令的效果相同. 当发送到打印机上时,
Ctl-L会让打印机将打印纸卷到最后.
Ctl-M
回车.
1 #!/bin/bash
2 # Thank you, Lee Maschmeyer, for this example.
3
4 read -n 1 -s -p $'Control-M leaves cursor at beginning of this
line. Press Enter. \x0d'
5 # 当然, '0d' 就是二进制的回车.
6 echo >&2 # '-s'参数使得任何输入都不将回显出来.
7 #+ 所以, 明确的重起一行是必要的.
8
9 read -n 1 -s -p $'Control-J leaves cursor on next line. \x0a'
10 # '0a' 等价于Control-J, 换行.
11 echo >&2
12
13 ###
14
15 read -n 1 -s -p $'And Control-K\x0bgoes straight down.'
16 echo >&2 # Control-K 是垂直制表符.
17
18 # 关于垂直制表符效果的一个更好的例子见下边:
19
20 var=$'\x0aThis is the bottom line\x0bThis is the top line\x0a'
21 echo "$var"
22 # 这句与上边的例子使用的是同样的办法, 然而:
23 echo "$var" | col
24 # 这将造成垂直制表符右边的部分比左边部分高.
25 # 这也解释了为什么我们要在行首和行尾加上一个换行符 -- 26 #+ 这样可以避免屏幕显示混乱.
27
28 # Lee Maschmeyer 的解释:
29 # -------------------------- 30 # 在这里[ 第一个垂直制表符的例子中] . . .
31 #+ 这个垂直制表符使得还没回车就直接打印下来.
32 # 这只能在那些不能" 后退" 的设备中才行,
33 #+ 比如说Linux的console.
34 # 垂直制表符的真正意义是向上移, 而不是向下.
35 # 它可以用来让打印机打印上标.
36 # col 工具可以模拟垂直制表符的正确行为.
37
38 exit 0
Ctl-Q
恢复(XON).
在一个终端中恢复stdin.
Ctl-S
挂起(XOFF).
在一个终端中冻结stdin. (使用Ctl-Q可以恢复输入.)
Ctl-U
删除光标到行首的所有字符. 在某些设置下, 不管光标的所在位置Ctl-U都将删除整行输
入.
Ctl-V
当输入字符时, Ctl-V允许插入控制字符. 比如, 下边的两个例子是等价的:
1 echo -e '\x0a'
2 echo <Ctl-V><Ctl-J>
Ctl-V主要用于文本编辑.
Ctl-W
当在控制台或一个xterm窗口敲入文本时, Ctl-W将会删除当前光标到左边最近一个空格间
的全部字符. 在某些设置下, Ctl-W将会删除当前光标到左边第一个非字母或数字之间的全
部字符.
Ctl-Z
暂停前台作业.