Linux 笔记之输出重定向和特殊符号

输出重定向

标准输入输出

设备   | 设备文件名   | 文件描述符   | 类型
键盘   | /dev/stdin  | 0           | 标准输入
显示器 | /dev/sdtout | 1           | 标准输出
显示器 | /dev/sdterr | 2           | 标准错误输出

输出重定向到文件

类型                 | 符号              | 作用
------------------------------------------------------------------------------------
                     | 命令>文件         | 以覆盖的方式把正确输出,输出到文件或设备中
标准输出重定向        |--------------------------------------------------------------
                     | 命令>>文件        | 以追加的方式把正确输出,输出到文件或设备中
------------------------------------------------------------------------------------
                     | 错误命令 2> 文件  | 以覆盖的方式把错误输出,输出到文件或设备中
标准错误输出重定向    |---------------------------------------------------------------
                     | 错误命令 2>> 文件 | 以追加的方式把错误输出,输出到文件或设备中

同时保存正确和错误输出

命令>文件 2>&1         | 以覆盖的方式,把正确和错误输出保存在同一个文件中
命令>>文件 2>&1        | 以追加的方式,把正确和错误输出保存在同一个文件中
命令&>文件             | 以覆盖的方式,把正确和错误输出保存在同一个文件中
命令&>>文件            | 以追加的方式,把正确和错误输出保存在同一个文件中
命令>>文件1 2>>文件2   | 把正确输出追加到文件1,把错误输出追加到文件2中

输入重定向

wc [选项] 文件名
  -c  //统计字节数
  -w  //统计单词数
  -l  //统计行数

特殊符号

多命令顺序执行

多命令执行符    | 格式           | 作用
;              | 命令1;命令2    | 多个命令顺序执行,没有任何逻辑关系
&&             | 命令1&&命令2   | 逻辑与,1正确执行则2才执行,1不能执行则2也不执行
||             | 命令1||命令2   | 逻辑或,1不能执行则执行2,1执行2不会执行

管道符

命令1 | 命令2    //管道符,命令1的正确输出作为命令2的操作对象
  例如:netstat -an | grep ESTABLISHED | wc -l    //统计服务器在线人数

通配符

通配符  | 作用
?       | 匹配一个任意字符
*       | 匹配任意字符
[]      | 匹配括号中的任意一个字符,例如:[ab]匹配可以是a,可以是b
[-]     | 匹配括号中的任意一个字符,- 代表一个范围,例如:[a-z]
[^]     | 逻辑非,不匹配括号内的一个字符,例如:[^0-9]

其它特殊符号

特殊符号  | 作用
''       | 单引号中的所以字符都没有特殊含义
""       | 双引号中的特殊符号都没有特殊含义,但是"$","`","\"是例外,拥有"调用变量的值","引用命令","转义符"含义
``       | 反引号,反引号括起来的是系统命令,在bash中会执行它,它$()作用一样,推荐使用$()
$()      | 和反引号一样
#        | shell脚本中,#开头的行代表注释
$        | 用于调用变量的值,如需要调用变量name的值是,需要用$name的方式得到变量的值
\        | 转义符,跟在\后的特殊符号将失去特殊含义,变为普通字符
添加新评论