数据流重定向以及管道命令

我们一般执行一个命令的话,执行结果都会默认直接输出到屏幕上,数据流重定向呢就是将此类信息

传送到其他的文件或者设备中去,请看例子:

原本ll命令执行之后,屏幕上回显示该目录下所有文件的信息,但当我们执行 ll > show 的话,

就会将ll命令的执行结果输出到当前目录下的show文件中去(如果该文件不存在就创建它),后续

cat show 这个命令也证实了这一点。

1.命令执行的过程

</<<                                         //标准输入,代码为0
>/>>                                         //标准输出,代码为1,两个符号为数据累加,一个符号为覆盖
2>/2>>                                       //错误输出,代码为2,两个符号为数据累加,一个符号为覆盖

 2.管道命令(|)

①less命令

通常我们都会遇到一个问题,比如ll一个目录的时候,如果这个目录下有很多文件/目录,那标准输出到屏幕

上的信息瞬间将屏幕填满了,直接就看不到第一行

此时,我们可以通过 ll | less,使得标准输出的信息可以翻页显示:

此时,上下键可以使得屏幕滚动显示!

②cut命令

echo $PATH | cut -d ':' -f 3               //对于$PATH变量以:为分隔符,取第三项
echo $PATH | cut -d ':' -f 3,5             //对于$PATH变量以:为分隔符,取第三项和第五项

export | cut -c 12-                        //以字符为单位取出固定字符区间

③grep命令

last | grep [options] 'str' filename                   //从filename文件中找有字符串str的行

-a                                                     //将binary文件以text文件的方式查找数据
-c                                                     //计算找到“str”的次数
-i                                                     //忽略大小写
-n                                                     //输出行号
--color=auto                                           //将关键字加上颜色显示

④其他

cat /etc/passwd | sort                           //排序
cat /etc/passwd | sort | uniq [-ci]              //重复数据仅列出一个,c计数,i忽略大小写
cat /etc/passwd | wc [-lwm]                      //显示文件里有多少行、字、字符

⑤tee命令

同时输出到屏幕和文件中

ls | tee show | more                      //将ls输出的信息存一份到show文件(后续再存的话会覆盖)
ls | tee -a show | more                      //将ls输出的信息存一份到show文件(后续再存的话会累加)

原文地址:https://www.cnblogs.com/eco-just/p/9576611.html