一、简述
重定向就是将原本要输出到屏幕的数据信息重新定向到某个指定的文件中。在屏幕输出很重要信息的时候而且我们希望保存这些信息的时候就需要用到重定向;后台执行中的程序,我们不希望他干扰屏幕正常输出结果的时候;定时任务的执行结果希望可以保存下来时;一些执行命令,我们已经知道他可能出现错误信息想将它丢弃时;错误日志与正确日志需要分别输出到不同的文件保存时;这些场景都需要用到重定向。
二、标准输入、标准输出、错误输出
当程序运行起来后变为进程,会同时打开三个文件,这三个文件分别代表的是标准输入(/dev/pts/0)、标准输出(/dev/pts/1)和错误输出(/dev/pts/2)。
三、重定向与标准输入、标准输出、错误输出的关系
重定向就是用改变标准输出或者错误输出的一个指向
1. 1>
标准输出重定向(覆盖)
2. 1>>
标准输出重定向(追加)
3. 2>
标准错误输出重定向(覆盖)
4. &>
标准输出和标准错误输出重定向(覆盖)
5. 2>/dev/null
将标准错误输出重定向到黑洞设备
四、其他符号
< 输入重定向 (从文件中获取内容)
; 命令1;命令2 无论前者命令成功还是失败都有执行后者命令
&& 命令1&&命令2 前者命令执行成功,后者命令才会执行
|| 命令1||命令2 前者命令执行失败,后者命令才会执行
& 将程序放入后台执行
五、进程管道符
管道符能够让我们进一步掌握命令之间的搭配使用方法,进一步提高命令输出值的处理效率。简单来说管道符的作用就是将管道符左边的标准输出传递给右边命令的标准输入。
例如:ps -ef | grep sshd
将 ps -ef 命令的结果当作 grep sshd 的过滤对象。