内容简介:我最常用的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哲学记录为:
- 让每个程序只做好一件事。要做新的任务,宁可重新构建而不是在旧程序上添加新的“功能”使旧程序复杂化。
- 期望每个程序的输出成为另一个尚未知的程序的输入。不要使用无关信息来混淆输出。避免严格的柱状或二进制输入格式。不要坚持互动输入。
- 设计和构建软件,甚至是操作系统,要及早尝试,最好在几周内完成。不要犹豫扔掉笨拙的部分并重建它们。
- 工具优先于不熟练的帮助,这样可减轻编程任务,即使你不得不绕道去构建工具(磨刀不误砍材工)。
我喜欢Unix的是“做好一件事”和“期望每个程序的输出成为另一个程序的输入”的理念。
这种理念建立在 工具 的使用上。这些工具可以单独使用,也可以组合使用以完成工作。这与用于解决特定问题的一切或一次性程序的单片程序形成鲜明对比。
我们在上面看到的echo默认将信息输出到终端。例如,cat将“连接”(它的同名)文件并将结果打印到终端。 在Unix中 阅读 程序设计时 ,我意识到将工具的输出打印到用户终端实际上是特例。
当用户将cat通过“|”输出重定向到某个其他程序时, cat功能变得比原作者预想的要多得多。在我看来,这是最精彩的 设计模式 之一。
一方面,程序简单,做好一件事就可以轻松搞定。然而,美丽的部分是,与|程序这样的操作员相结合, 成为更大规划中的一步。原作者 cat甚至不需要了解什么更大的计划。这就是它的美妙之处在于“|”它可以通过将小而简单的程序组合在一起来解决问题。
我喜欢软件设计,它能够创造性,价值观简单,并且不会将用户放在盒子里。管道是保持程序简单同时实现可扩展性的关键元素。与"|"结合的简单程序变得远远超过原作者梦寐以求的程度。
我希望这篇文章可以帮助你学习一些东西,如果不是的话,只需要把它管道化到: /dev/null
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 速度不够,管道来凑——Redis管道技术
- Golang pipline泛型管道和类型管道的性能差距
- Linux 管道那些事儿
- mongodb 聚合管道
- Redis管道
- Clojure 集合管道函数练习
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First PHP & MySQL(中文版)
Lynn Beighley、Michael Morrison / 苏金国、徐阳 / 中国电力 / 2010-6 / 98.00元
通过《深入浅出PHP&MySQL(影印版)》,你将学习:准备好把你的静态HTML网页提升到下一个层次并使用PHP和MySQL建立数据库驱动的网站了吗?《深入浅出PHP& MysQL》是一本快捷实用的指南,让你的动态网站快速运行。自己动手建立实际应用程序,从视频游戏高分留言板到在线交友网站。当你完成后,你将可以进行验证表单、使用会话ID和cookies工作、执行数据库查询和联接、处理文件I/0操作等......一起来看看 《Head First PHP & MySQL(中文版)》 这本书的介绍吧!