linux命令行学习(16):管道(pipeline)


一、管道及使用

管道是一种shell特性。命令从标准输入读取数据,并将数据发送到标准输出的能力,就是管道特性。

使用管道操作符“I”(竖线)可以把一个命令的标准输出传送到另一个命令的标准输入中。具体格式如下:

Command 1 I command2 ...

可以用多个|联结多条命令。

不同命令使用管道相联结,可以实现很多功能。

以下举例叙述。

二、用管道功能分页输出命令结果

less命令可以接受标准输入,因此可以用less命令接受任意命令的输出,并发送到标准输出。因此可以用来验证管道功能。

由于less命令是分布输出的,这样就可以实现任何命令结果的分页输出。否则,有的命令输出很多,我们就看不到前面的输出了。

例如:

$ Is -l /usr/bin | less

会分页显示Is -l /usr/bin的输出。当Is -l /usr/bin的输出很多时,这样做就是必要的,除非我们对命令结果不关心。

注意,这时,用回车是一行一行地显示,而用翻页键可以一页一页地翻。page up是向前翻,page down是向后翻。

这个例子中,使用管道联结了两个命令。

三、使用管道输出排序后的结果

假设要把/bin和/usr/bin目录下的所有可执行程序合并成一个列表,并且按照顺序排列,最后再查看这个列表。

$ Is /bin /usr/bin | sort | less

由于我们指定了两个目录(/bin和/usr/bin) , Is的输出将包含两个排好序的列表,每个对应一个目 录。

通过在管道中包含sort命令,我们改变输出数据,从而产生一个排好序的列表。

这个例子,使用管道联结了三个命令。

四、删除输出中的重复行

将ls的输出先排序,然后删除重复行,再分页显示:

$ Is /bin /usr/bin | sort | uniq | less

这个例子,使用管道联结了四个命令。

五、显示输出的行数

查看已排好序的列表中的条目数:

$ Is /bin /usr/bin | sort | uniq | wc -l

ls的输出,被sort排序,再用uniq删除重复行,之后用wc计算出行数。wc的选项-l使得只报告行数(l为line的首字母)。

这个例子,使用管道联结了四个命令,其中wc使用了选项。这个例子说明,被联结的命令可以使用操作对象(此例中的ls)和选项(此例中的wc)。

六、显示指定的文件

在用管道联结grep命令,可以实现显示指定的文件的功能。

例如,要显示目录/bin和/usr/bin中文件名中包含zip的文件,则可以像下面这样:

$Is /bin /usr/bin | sort | uniq | grep zip

这个例子,使用管道联结了四个命令,其中grep使用了选项。

七、显示输出的前后部分

显示输出的前面5行:

$ Is /usr/bin | head -n 5

显示输出的后面5行:

$ Is /usr/bin | tail -n 5

八、将tee命令用在管道中

tee命令,它接收标准输入并输出到标准输出中去。tee命令最好用在管道中。这样,它接收前面命令的输出,并向下传送。看下面的例子:

$ Is /usr/bin | tee ls.txt | grep zip

ls的输出结果被送到tee,其将它复制到ls.txt中,同时送给grep作为输入。因此上面的由管道联结的命令组将/usr/bin的文件信息复制到文件ls.txt中,同时将其中含有zip的行显示在屏幕上。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容