在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

linux管道符的作用是什么

153次阅读
没有评论

共计 3622 个字符,预计需要花费 10 分钟才能阅读完成。

本文丸趣 TV 小编为大家详细介绍“linux 管道符的作用是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux 管道符的作用是什么”文章能帮助大家解决疑惑,下面跟着丸趣 TV 小编的思路慢慢深入,一起来学习新知识吧。

在 linux 中,管道符“|”的作用是连接多条指令,前一条指令的输出流会作为后一条指令的操作对象,其命令格式为“指令 1 | 指令 2 | …”,该命令的后一条指令,必须能够接收标准输入流命令才能执行。管道符主要用于多重命令处理,前面命令的打印结果作为后面命令的输入。

管道是 Linux 中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入。常说的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间,这是它与有名管道的最大区别。

有名管道叫 named pipe 或者 FIFO(先进先出),可以用函数 mkfifo() 创建。

linux 中的 | 管道符

| 管道符的作用是连接多条指令,前一条指令的输出流会作为后一条指令的操作对象,其命令格式为“指令 1 | 指令 2 | …”,该命令的后一条指令,必须能够接收标准输入流命令才能执行。

管道命令的操作符是:”|”,它只能处理由前面一条指令传出的正确输出信息,对错误信息是没有直接处理能力的。然后,传递给下一条指令,作为操作对象。

语法:

 指令 1  |  指令 2  | …

管道符主要用于多重命令处理,前面命令的打印结果作为后面命令的输入。简单点说就是,就像工厂的流水线一样,进行完一道工序后,继续传送给下一道工序处理…

举个栗子:对 hello.sh 文件进行排序去重以后找出包含 better 的行

命令为:cat hello.sh | sort | uniq | grep better’

查看文本

排序

去重

过滤

【1】第一道工序——查看文本

首先使用 cat 命令查看文本,打印到屏幕上内容即为 cat 命令的输出结果

[root@linuxforliuhj test]# cat hello.sh hello this is linux
be better
be better
i am lhj
hello this is linux
i am lhj
i am lhj
be better
i am lhj
have a nice day
have a nice day
hello this is linux
hello this is linux
have a nice day
zzzzzzzzzzzzzz
dddddddd
gggggggggggggggggggg[root@linuxforliuhj test]#

【2】第二道工序——排序

将前面 cat 命令输出的结果通过管道丢给 sort 命令,所以 sort 命令是对前面 cat 命令输出的文本进行排序

[root@linuxforliuhj test]# cat hello.sh | sortbe better
be better
be better
dddddddd
gggggggggggggggggggg
have a nice day
have a nice day
have a nice day
hello this is linux
hello this is linux
hello this is linux
hello this is linux
i am lhj
i am lhj
i am lhj
i am lhj
zzzzzzzzzzzzzz[root@linuxforliuhj test]#

【3】第三道工序——去重

前面介绍 uniq 的文章中提到,sort 跟 uniq 结合使用才能有效去重,所以通过管道将 sort 处理后输出的文本丢给 uniq 处理,所以 uniq 处理的是排序好的文本,可以进行有效去重

[root@linuxforliuhj test]# cat hello.sh | sort | uniqbe better
dddddddd
gggggggggggggggggggg
have a nice day
hello this is linux
i am lhj
zzzzzzzzzzzzzz[root@linuxforliuhj test]#

【4】第四道工序——过滤

最后一步过滤则同样是将前面命令即 uniq 命令处理后输出的文本进行过滤

[root@linuxforliuhj test]# cat hello.sh | sort | uniq | grep  better be better[root@linuxforliuhj test]#

重点来了!

重点来了!

重点来了!

以上的 cat、sort、uniq、grep 等命令均支持管道符,是因为这些命令均可从标准输入中读取要处理的文本(即从标准输入中读取参数);而对于部分命令,例如 rm、kill 等命令则不支持从标准输入中读取参数,只支持从命令行中读取参数(即 rm 命令后面必须指定删除的文件或者目录,kill 命令后面必须要指定杀死的进程号等)

那什么样的命令支持管道,什么样的命令不支持管道呢?
一般情况下,处理文本的命令,例如 sort、uniq、grep、awk、sed 等命令均支持管道;像 rm、ls 这类的不是处理文本的命令均不支持管道

[root@linuxforliuhj test]# cat hello.sh | sortbe better
be better
be better
dddddddd
gggggggggggggggggggg
have a nice day
have a nice day
have a nice day
hello this is linux
hello this is linux
hello this is linux
hello this is linux
i am lhj
i am lhj
i am lhj
i am lhj
zzzzzzzzzzzzzz[root@linuxforliuhj test]#

sort 后面没有参数时,则对管道符丢给它的前一个命令的输出结果进行处理(即前一个命令的标准输出作为本次命令的标准输入)

[root@linuxforliuhj test]# lsbeifen.txt hello.sh mk read.ln read.sh read.txt sub.sh[root@linuxforliuhj test]# ls | grep read.shread.sh[root@linuxforliuhj test]# ls | grep read.sh | rmrm: missing operand
Try  rm --help  for more information.[root@linuxforliuhj test]#

当 rm 后面不指定删除的文件时,则会报错丢失参数,所以,rm 等命令不支持从标准输入读取参数,只支持在命令行指定参数,即指定删除的文件。

标准输入和命令行参数那个优先?

有如下两个文件

[root@linuxforliuhj test]# cat a.txt aaaa
bbbb[root@linuxforliuhj test]# cat b.txt 1111333344442222[root@linuxforliuhj test]#

执行命令:cat a.txt | sort

[root@linuxforliuhj test]# cat a.txt | sortaaaa
dddd[root@linuxforliuhj test]#

当 sort 的命令行参数为空时,默认使用前一个命令的输出结果作为本次命令的输入

执行命令:cat a.txt | sort b.txt

[root@linuxforliuhj test]# cat a.txt | sort b.txt 1111222233334444[root@linuxforliuhj test]#

可以看到,当 sort 的命令行参数(此处为 b.txt)不为空时,sort 不会读取标准输入里的参数,而时读取命令行参数

执行命令:cat a.txt | sort b.txt –

[root@linuxforliuhj test]# cat a.txt | sort b.txt -1111222233334444aaaa
dddd[root@linuxforliuhj test]#

– 表示标准输入,即命令 cat a.txt 的输出,相当与对文件 b.txt 和标准输入一起进行排序,相当于 sort a.txt b.txt

[root@linuxforliuhj test]# sort a.txt b.txt1111222233334444aaaa
dddd[root@linuxforliuhj test]#

读到这里,这篇“linux 管道符的作用是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注丸趣 TV 行业资讯频道。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-02-04发表,共计3622字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 成人在线小视频 | 尤里与露珠韩剧在线观看中文版 | 老女人性| 国产精品久久免费 | 精品爆乳一区二区三区无码av | 大屁股熟女一区二区三区 | 中文字幕在线高清 | 天天摸夜夜添狠狠添2018 | 欧美成成人免费 | 国产免费一区二区视频 | 久女女热精品视频在线观看 | 欧美日韩1区2区 | 亚洲日韩欧美一区久久久久我 | 精品香蕉99久久久久网站 | 亚洲福利视频在线 | 在线亚洲精品国产成人二区 | 性久久久久久 | 国产午夜精品久久理论片 | 99精品国产三级在线观看 | 99国产欧美久久精品 | 中文字幕第六页 | 手机看片久久国产免费 | 国产精品一亚洲av日韩av欧 | 欧美亚洲国产精品久久蜜芽直播 | 欧美一区在线观看视频 | 男人v天堂 | 插我舔内射18免费视频 | 又湿又紧又大又爽a视频国产 | 欧美一级片 在线播放 | 国产精品国产三级区别第一集 | 内射干少妇亚洲69xxx | 四虎国产精品永久在线无码 | 欧美丰满一区二区免费视频 | 欧美日韩中文字幕在线视频 | 毛片无码免费无码播放 | 中文字幕av日韩精品一区二区 | 亚洲欧洲综合在线 | 推川悠里在线 | 亚洲色图欧美偷拍 | 中文在线а√天堂 | 少妇厨房愉情理伦片免费 |