标准输入输出
-
键盘:设备文件名/dev/stdin,文件描述符为0,类型为标注输入
-
显示器:设备文件名/dev/sdtout,文件描述符为1,类型为标准输出,
-
显示器:设备文件/dev/sdterr,文件描述符为2,类型为标准错误输出。
输出重定向:
输出本来是应该输出到屏幕上命令行显示的,现在改变他的输出方向输出到文件或其他设备当中。
标准输出重定向:
-
命令>文件,以覆盖的方式,把命令的正确输出输出到指定的文件或设备中。
-
命令>>文件,已追加的方式吧命令的正确输出输出到指定的文件或设备中。
不是所有的命令都可以使用输出重定向,这个命令必须得有输出才可以,否则就没有任何意义。
标注错误输出重定向:
-
错误命令 2>文件,已覆盖的方式吧命令的错误输出输出到指定的文件或设备中
-
错误命令 2>>文件,以追加的方式,把命令的错误输出输出到指定的文件或设备中。


在实际的应用中,上面的写法有一定问题,因为我们编写的时候并不能确定我们写的是正确的还是错误的,也就无法确定写入正确的文件还是错误的文件,因此这里仅作了解,用处不大。
正确输出和错误输出同时保存:
-
命令>文件2>&1:以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中,
-
命令>>文件2>&1:以追加的方式,把正确输出和错误输出都保存到同一个文件当中,
-
命令&>文件:以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中,
-
命令&>>文件:以追加的方式,把正确输出和错误输出都保存到同一个文件当中,
-
命令>>文件1 2>>文件2: 把正确的输出追加到文件1中,把错误的输出追加到文件2中,
一个特殊用法:命令 &> /dev/null:将输出丢到垃圾箱,相当于不输出到任何地方,
输入重定向:
本来我们执行某些命令的参数应该是手工来写的,现在改变它的输入方向,不再通过键盘输入,而是通过文件作为它的输入,输入重定向在实际中用的不多,一般只在为源码包打补丁的时候用到,用的很少。
以wc命令举例:
#wc [选项] [文件名]
-c 统计字节数
-w 统计单词数
-l 统计行数
# wc < file
# wc -l < file
多命令顺序执行:
多命令执行符:
-
;(分号):格式:命令1;命令2,多个命令顺序执行,命令之间没有任何逻辑联系;
-
&&:命令1&&命令2,逻辑与,当命令1正确执行,则命令2才会执行,当命令1执行不正确,则命令2不会执行,
-
||:命令1||命令2,逻辑或,当命令1执行不正确,则命令2才会执行,当命令1正确执行,则命令2不会执行。
可用【命令 && echo yes || echo no 】来判断所写的命令是否正确;
管道符:# 命令1 | 命令2,命令1的正确输出作为命令2的操作对象;
# ll -a /etc/ | more
# netstat -an | grep "ESTABLISHED"
# grep [选项] "搜索内容"
-i:忽略大小写
-n:输出行号
-v:反向查找
--color=auto:搜索出的关键字用颜色显示
