1、输出重定向
在linux中,因为用户的权限不同,所以访问某些文件或者目录会被拒绝而形成错误输出,这些错误的输出也会显示出来。一般正确输出的编号为1,错误输出的编号为2。如下图,在普通用户student下访问"/etc/passwd"文件,就会出现不同的输出。这时候就需要用到输出管理来重定向输出。
可以用命令">""2>""&>"来重定向正确、错误、全部的输出。如输入命令"find /etc -name passwd >right",是把正确的输出重新定向到right文件里,错误的输出会直接显示出来。
输入命令"find /etc -name passwd 2>error",是把错误的输出重新定向到error文件里。
输入命令"find /etc -name passwd &>all",是把全部的输出重定向到all文件里。
值得注意的是,">"重定向的时候会覆盖原有的文件。如果想要不覆盖原有文件,则需要将">"改为">>",例如输入"find /etc -name passwd >>right"就是在不覆盖原文件right的前提下将正确输入重新定向到right文件下。
2、管道
为了命令的简化,也为了方便,有时候需要用到管道,管道的作用是将前一条命令的输出变成管道后命令的输入,例如想要查看"/etc"下有多少个文件和目录,使用"ls /etc"然后去数这是不现实的,如果使用命令"ls /etc | wc -l"命令,就可以统计了。这个命令就是通过管道"|"将前一个命令"ls /etc"的输入重新输入到"wc -l"中,统计出"/etc"下目录和文件的数量。
如果需要复制输出到指定位置,则需要用到"tee"。例如需要将上述命令中的统计结果复制到"output"文件中,则输入命令"ls /etc | wc -l | tee output"即可实现。
以上介绍只是输入输出管理的基本操作,还需要在后面的学习和工作中学习更多应用方式。