对于Pipe管道之爱 - jessfraz

栏目: 服务器 · 发布时间: 5年前

内容简介:我最常用的shell命令是"|"。这称为管道。简而言之,"|"允许一个程序(左侧)的输出成为另一个程序的输入(在右侧)。这是一种将两个命令连接在一起的方法。例如,如果我要运行以下内容:

我最常用的 shell 命令是"|"。这称为管道。

简而言之,"|"允许一个程序(左侧)的输出成为另一个程序的输入(在右侧)。这是一种将两个命令连接在一起的方法。

例如,如果我要运行以下内容:

echo "hello"

输出hello。

但如果我运行:

echo "hello" | figlet

这个figlet程序是改变了hello字符,看上去像卡通。

这是一种非常直率的描述某些东西的方式,在我看来,这是一种出色的软件设计,但我会在一秒钟之内学会。

让我们回到管道的起源。

根据 doc.cat-v.org/unix/pipes/ ,管道的起源早在Unix之前 就已存在 。管道可以追溯到1964年Doug McIlroy的这篇笔记。

     - 10 -
    Summary--what's most important.

To put my strongest concerns into a nutshell:

1. We should have some ways of coupling programs like
garden hose--screw in another segment when it becomes when
it becomes necessary to massage data in another way.
This is the way of IO also.

2. Our loader should be able to <b>do</b> link-loading and
controlled establishment.

3. Our library filing scheme should allow <b>for</b> rather
general indexing, responsibility, generations, data path
switching.

4. It should be possible to get <b>private</b> system components
(all routines are system components) <b>for</b> buggering around with.

                                                M. D. McIlroy
                                                October 11, 1964 

Doug McIlroy将Unix哲学记录为:

  1. 让每个程序只做好一件事。要做新的任务,宁可重新构建而不是在旧程序上添加新的“功能”使旧程序复杂化。
  2. 期望每个程序的输出成为另一个尚未知的程序的输入。不要使用无关信息来混淆输出。避免严格的柱状或二进制输入格式。不要坚持互动输入。
  3. 设计和构建软件,甚至是操作系统,要及早尝试,最好在几周内完成。不要犹豫扔掉笨拙的部分并重建它们。
  4. 工具优先于不熟练的帮助,这样可减轻编程任务,即使你不得不绕道去构建工具(磨刀不误砍材工)。

我喜欢Unix的是“做好一件事”和“期望每个程序的输出成为另一个程序的输入”的理念。

这种理念建立在 工具 的使用上。这些工具可以单独使用,也可以组合使用以完成工作。这与用于解决特定问题的一切或一次性程序的单片程序形成鲜明对比。

我们在上面看到的echo默认将信息输出到终端。例如,cat将“连接”(它的同名)文件并将结果打印到终端。 在Unix中 阅读 程序设计时 ,我意识到将工具的输出打印到用户终端实际上​​是特例。

当用户将cat通过“|”输出重定向到某个其他程序时, cat功能变得比原作者预想的要多得多。在我看来,这是最精彩的 设计模式 之一。

一方面,程序简单,做好一件事就可以轻松搞定。然而,美丽的部分是,与|程序这样的操作员相结合, 成为更大规划中的一步。原作者 cat甚至不需要了解什么更大的计划。这就是它的美妙之处在于“|”它可以通过将小而简单的程序组合在一起来解决问题。

我喜欢软件设计,它能够创造性,价值观简单,并且不会将用户放在盒子里。管道是保持程序简单同时实现可扩展性的关键元素。与"|"结合的简单程序变得远远超过原作者梦寐以求的程度。

我希望这篇文章可以帮助你学习一些东西,如果不是的话,只需要把它管道化到: /dev/null


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法之道

算法之道

邹恒明 / 机械工业出版社 / 2010-2 / 39.00元

《算法之道》追求的目标是算法背后的逻辑,是一本启示书,而不是一本包罗万象的算法大全。因此,《算法之道》甄选了那些最能够展现算法思想、战略和精华,并能够有效训练算法思维的内容。《算法之道》将算法的讨论分为五大部分:算法基础篇、算法设计篇、算法分析篇、经典算法篇、难解与无解篇。每一个部分分别讨论算法的一大方面:基础、设计、分析、经典和难解问题。 《算法之道》既可以作为大学本科或研究生的算法教材或......一起来看看 《算法之道》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具