注意:箭头流向便是数据的流向.linux
数字0:标准输入(standard input,简写stdin),数据从右往左方向流动 | |
数字1:标准正确输出(standard output,简写stdout),数据从左往右流动 | |
数字2:标准错误输出(standard error output,简写stderr),数据从左往右流动 | |
> 或 1> | 把正确的进行输出(标准输出),覆盖 |
>> 或 1>> | 把正确的进行输出(标准输出),追加 |
2> | 把错误的进行输出,覆盖 |
2>> | 把错误的进行输出,追加 |
< 或 0< | 通常经过文件来输入重定向,如tr命令使用较多(0通常省略不写) |
<< 或 0<< | 追加输入重定向,通常cat命令用的多,在shell脚本中(0通常省略不写) |
&> | 合并正确和错误输出,覆盖重定向 |
&>> | 合并正确和错误输出,追加剧定向 |
COMMAND > /path 2> /path2 | 正确或错误(标准输出和标准输入)输出至不一样位置 |
COMMAND > /path 2> &1 | 把错误输出导入正确输出的文件中 |
COMMAND > /path 2>> &1 | 追加 |
&>/dev/null | 正确和错误的都重定向到空 |
COMMAND > /dev/null 2>&1 | 定向到空(同上一个) |
通配符:通配符是bash的内置功能,其适用范围在命令行中的普通命令及脚本编程中,跟linux正则表达式有一些区别. git
符号 | 含义 |
######路径位置 | |
. | 当前目录 |
.. | 上一级目录 |
- | 上一次所在目录 |
~ | 用户家目录 |
######模糊匹配 | |
* | 匹配全部(正则表达式中表明任意长度的任意字符) |
? | 匹配任意单个字符,有且只有一个字符(正则表达式中表明任意单个字符) |
! | 取反 |
[] | 匹配指定范围内(中括号内)的任意单个字符 |
[^] | 匹配指定范围外(中括号以外)的任意单个字符(非) |
[!] | 取反,等价于[^] |
######引号 | |
'' | 单引号,强引用,所见即所得,不会作解释 |
"" | 双引号,弱引用,双引号中的变量或命令或转移字符会先被解释 |
`` | 反引号,引用命令,解释命令(等价于 $() 或 ${} ) |
######其余特殊符号 | |
\ | 转义字符,还原本来的意义 |
; | 多个命令之间的分隔符(-exec命令中,分号;表明bash的特殊意义) |
| | 管道COMMAND1 | COMMAND2 | COMMAND3| …后一个命令会将前一个正则表达式 命令的标准输出,当作要执行的对象shell |
$ | 1)表明普通用户的提示符; 2)$(string)表明字符串变量内容 |
# | 1)在文本中,前面加#表明行内容被注释; 2)超级管理员的提示符 |
{} | 1)能够生成序列; 2)shell脚本编程中,用做引用变量,做为变量与普通字符的编程 分隔,让变量成为一个总体bash |
注意:专用字符在命令行中通常需加中括号[]括起来,因此,下表整理成对出现.spa
字符 | 含义 |
[[:alnum:]] | 任意数字或字母,匹配大小写字母和数字,等价于字符类'[:alpha:]'与字符类'[:digit:]'的和 |
[[:alpha:]] | 任意大小写字母,匹配大小写字母,等价于字符类'[:lower:]'和字符类'[:upper:]'的和 |
[[:blank:]] | 空白字符类,包括:空格和制表符 |
[[:cntrl:]] | 控制字符 |
[[:digit:]] | [0-9] 中的任意数字 |
[[:graph:]] | 图片和图形 |
[[:lower:]] | [a-z] 任意小写字母 |
[[:print:]] | 可打印字符,字符类'[:alnum:]'与字符类'[:punct:]'和空格的和 |
[[:punct:]] | 任意标点符号 |
[[:space:]] | 任意空格字符 |
[[:upper:]] | [A-Z] 任意大写字母 |
[[:xdigit:]] | 十六进制字符 |
注意:命令行
1)逻辑运算符遵循从左往右的顺序进行运算,逻辑运算符&&和||是短路符号,符号左右两边的命令之间具备逻辑关系.对象
2)联合使用 && 和 || 的时候,先判断 逻辑与 再判断 逻辑或图片
符号 | 含义 |
&& (COMMAND1 && COMMAND2) |
与运算and.COMMAND1执行成功,没有报错,COMMAND2才会执行; 若COMMAND1执行报错,则COMMAND2不会被执行. 判断命令执行是否成功的依据是echo $? ,若结果是0, 则是命令执行成功,如果其余数值,都是表明命令执行失败. |
|| (COMMAND1 || COMMAND2) |
或运算or.当COMMAND1执行成功,没有报错,COMMAND2不会被执行; 若COMMAND1执行报错,则COMMAND2会被执行 |
! | 1)在bash中表示取反; 2)调用history最近历史命令 |
; (COMMAND1;COMMAND2) |
分号前面的命令出错也不影响后面的命令执行,即COMMAND 1; COMMAND2都会被执行 |
& (COMMAND1 & COMMAND2) |
将命令放到后台去执行;若是&两边都是命令,则前面的命令会被放到后台执行, 后面的命令也会同时执行,这二者之间没有逻辑关系,命令是并行执行的. |