shell 中常见的控制字符和特殊字符总结
控制字符:
修改终端或文本显示的行为.控制字符以CONTROL + key这种方式进行组合(同时按下). 控制字符也可以使用8进制或16进制表示法来进行表示, 但是前边必须要加上转义符.控制字符在脚本中不能正常使用.
Ctl-B
退格(非破坏性的), 就是退格但是不删掉前面的字符.
Ctl-C
break. 终结一个前台作业.
Ctl-D
从一个shell中登出(与exit很相像).在console或者在xterm窗口中输入的时候, Ctl-D将删除光标下字符. 当没有字符时, Ctl-D将退出当前会话, 在一个xterm窗口中, 则会产生关闭此窗口的效果
Ctl-G
"哔" (beep). 在一些老式的打字机终端上, 它会响一下铃.
Ctl-H
"退格"(破坏性的), 就是在退格之后, 还要删掉前边的字符.
Ctl-K
垂直制表符.
当在console或者xterm窗口中输入文本时, Ctl-K将会删除从光标所在处到行尾的全部字符. 在脚本中, Ctl-K的行为有些不同, 具体请参见下边的Lee Maschmeyer的例子程序.
Ctl-L
清屏(清除终端的屏幕显示). 在终端中, 与clear命令的效果相同.
Ctl-M
回车.
Ctl-Q
恢复(XON).在一个终端中恢复stdin.
Ctl-S
挂起(XOFF).在一个终端中冻结stdin. (使用Ctl-Q可以恢复输入.)
Ctl-U
删除光标到行首的所有字符. 在某些设置下, 不管光标的所在位置Ctl-U都将删除整行输入.
Ctl-W
当在控制台或一个xterm窗口敲入文本时, Ctl-W将会删除当前光标到左边最近一个空格间的全部字符. 在某些设置下, Ctl-W将会删除当前光标到左边第一个非字母或数字之间的全部字符.
Ctl-Z
暂停前台作业.
特殊字符
$$
进程ID变量. 这个$$ 变量 保存了它所在脚本的进程 ID
"
部分引用[双引号, 即"]. "STRING"将会阻止(解释)STRING中大部分特殊的字符.
'
全引用[单引号, 即']. 'STRING'将会阻止STRING中所有特殊字符的解释. 这是一种比使用"更强烈的形式.
()
可用于初始化数组:Array=(element1 element2 element3)
{}
cat {file1,file2,file3} > combined_file把file1, file2, file3连接在一起, 并且重定向到combined_file中.
{} \;
路径名. 一般都在find命令中使用. 这不是一个shell内建命令.";"用来结束find命令序列的-exec选项. 它需要被保护以防止被shell所解释.
[ ]
条件测试.条件测试表达式放在[ ]中.
数组元素.在一个array结构的上下文中, 中括号用来引用数组中每个元素的编号.
字符范围.用作正则表达式的一部分, 方括号描述一个匹配的字符范围.
` `
测试.测试表达式放在` `中.
> &> >& >> < <>
重定向.
scriptname >filename 重定向scriptname的输出到文件filename中. 如果filename存在的话, 那么将会被覆盖.
command &>filename 重定向command的stdout和stderr到filename中.
command >&2 重定向command的stdout到stderr中.
scriptname >>filename 将scriptname的输出追加到文件filename中. 如果filename不存在的话,将会被创建.
[i]<>filename 打开文件filename用来读写, 并且分配文件描述符i给这个文件. 如果filename不存在, 这个文件将会被创建.
\<, \>
正则表达式中的单词边界 .bash$ grep '\<the\>' textfile
|
管道. 分析前边命令的输出, 并将输出作为后边命令的输入. 这是一种产生命令链的好方法.
>|
强制重定向(即使设置了noclobber选项 -- 就是-C选项). 这将强制的覆盖一个现存文件.
||
或-逻辑操作. 在一个条件测试结构中, 如果条件测试结构两边中的任意一边结果为true的话,||操作就会返回0(代表执行成功).
&
后台运行命令. 一个命令后边跟一个& 表示在后台运行.
&&
与-逻辑操作. 在一个条件测试结构中, 只有在条件测试结构的两边结果都为true的时候, &&操作才会返回0(代表sucess).
~
home目录[波浪号, 即~]. 相当于$HOME内部变量. ~bozo是bozo的home目录, 并且ls ~bozo将列出其中的内容. ~/就是当前用户的home目录, 并且ls ~/将列出其中的内容.
~+
当前工作目录. 相当于$PWD内部变量.
~-
先前的工作目录. 相当于$OLDPWD内部变量.
转载于:https://blog.51cto.com/asange/1387613