什么是管道?

● 每周一言

如果有不一样,就努力不让它一样。

导语

一说到管道,我们可能想到的是超级玛丽的下水道,亦或是曾经流行一时的小游戏flappy bird。而这里要讲的是计算机中的管道,确切的说是linux操作系统中的管道。那么,linux中的管道是什么?有什么作用?

管道

对于从事互联网行业的人来说,管道技术几乎每天都会用到。在计算机世界中,由于进程之间相互独立,信息无法交互。而计算机中的管道,就是一种解决进程间信息交互问题的手段。

什么是管道?_第1张图片

管道类型分为两种:匿名管道和命名管道。

匿名管道指不带名字标识的管道,用于父进程与其子进程之间的通信。命名管道则是带有名字标识符的管道,支持任意两个进程之间的通信。

我们知道,计算机的信息通信方式分为单工通信、半双工通信及全双工通信三种,而管道属于半双工通信。半双工通信可以实现双向通信,但不能在两个方向上同时进行,必须交替进行。

什么是管道?_第2张图片

当然,对于平常的bash和shell命令使用,是涉及不到匿名管道和命名管道这两个概念的,这两类管道一般出现在系统编程当中。

在bash和shell中,通常用“|” 在两个命令之间创建管道,这个“|”叫管道命令符

“|”管道命令符的作用是串联起一组命令的输入输出数据流。简单来讲就是,前一个命令执行后不回显结果,而是把结果通过“|”传递给后一个命令,以此类推直到没有管道符后终止命令,并回显最终结果。

什么是管道?_第3张图片

比如命令:cat example.txt | wc -l。先按行读文件通过管道传递给wc命令计数。当然,这里也可以直接 wc -l example.txt 计数。

以上便是计算机中管道的介绍,敬请期待下节内容。

结语

感谢各位的耐心阅读,后续文章于每周日奉上,敬请期待。欢迎大家关注小斗公众号 对半独白

什么是管道?_第4张图片

你可能感兴趣的:(计算机算法与概念)