I/O重定向与管道
一,I/O重定向
I/O重定向,即输入/输出重定向,是指把命令行的输入重定向为从文件中获取内容,也可以把命令行的输出结果重定向到文件中。
1.1 输出重定向
输出重定向分为正确输出与错误输出。
正确输出:1>,1>>等价于>,>>,1可省略。
错误输出:2>,2>>。
其中,“>”表示覆盖,“>>”表示追加。
【例1】输出重定向(覆盖),具体如下。
【例2】输出重定向(在尾部追加),具体如下。
【例3】错误输出重定向,具体如下。
【例4】正确结果与错误结果都输出到相同位置,具体如下。
【例5】正确结果与错误结果都输出重定向到相同位置,具体如下。
【例6】正确结果保留在文件list.txt,错误结果丢到/dev/null,具体如下。
1.2 输入重定向
输入重定向与输出重定向异曲同工,下面以具体实例加以说明。
【例1】使用grep命令过滤root,没有改变输入端,默认为键盘,接着把输入重定向到/etc/passwd。
【例2】使用dd命令从/dev/zero中读取数据并写入到file01.txt文件,每次写入1MiB,一共写入两次。
使用输入重定向与输出重定向的方式也可以实现同样的功能。
【例3】使用at命令创建一个计划任务,从现在开始5分钟后创建用户linux,按组合键Ctrl+d结束。
若同时创建多个用户,以此方法从键盘输入会十分烦琐,使用输入重定向则会非常方便。
二,进程管道
管道实际上也是一种重定向,重定向字符控制输出到文件,管道控制输出到其他程序。
管道的作用是把上一个进程的输出作为下一个进程的输入,利用管道可以把若干个命令连接在一起。
【例1】将/etc/passwd中的用户按UID数值大小排序并显示前3行。
其中,“-t”指定字段分隔符,“-k”指定字段,“-n”表示按数值大小排序。
【例2】统计出最占CPU的5个进程。
【例3】打印当前所有IP。
三,总结
输入/输出重定向用于规定输入信息的来源或输出信息的保存,管道用于命令之间,从而提高命令输出值的处理效率。