当前课程知识点:Linux系统管理 >  用好重定向和管道 >  重定向 >  Video

返回《Linux系统管理》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《Linux系统管理》慕课在线视频列表

Video课程教案、知识点、字幕

各位同学

大家好

在本讲中我们将要学习如何使用管道

本质上来说

管道就是一种特殊的输入输出重定向

就是将一个命令的标准输出重定向为

另一个命令的标准输入

在Linux环境中

完成复杂的任务往往需要构造命令管道

管道操作符是“|”

在键盘上位于大括号键的右边

构造命令管道很简单

只要使用管道操作符将命令连起来就可以了

命令1的标准输出作为命令2的输入

然后命令2的标准输出作为命令3的输入

以此类推

命令N输出作为最终输出方直接显示在屏幕上

必须要提醒大家的是

管道操作符右边的命令

必须能够接收标准输入流才行

能够接受标准输入流的命令并不多

一般都是一些文本处理命令

常用的有grep cut head tail

Less more wc tr sort等等

其中一些命令

如Head tail less more

我们已经在“查看文本文件”一讲中介绍过了

另一些命令如sort tr

则在“重定向”一讲中已经介绍过了

在本讲中我们还会接触到

其中的grep cut和wc命令

接下来我们就举例来说明管道这个东西

例子一很常用

是对命令的输出进行分页查看

我们将ls命令的输出

作为文件查看命令less的输入

这使得我们可以逐页逐行的查看

ls –al /etc命令的输出

例子二 涉及到一个新命令叫做grep

grep是一个非常强大的文本搜索工具

可以使用正则表达式来匹配文本

关于什么是正则表达式

如果您有兴趣的话

可以参考这些链接

我们在这里只需要知道

grep是一个文本查找命令

后面可以跟两个参数

参数1是查找的关键字文本

参数2是查找的目标文件

例子二结合了grep和管道

将ls –l /etc命令输出作为grep的输入

用于查找ls命令输出中带有ssh字样的行

例子三是对文本进行提取和统计处理

涉及到两个新命令wc和cut

cut是文本切割命令

cut用于切割文本文件或者标准输出中的

指定列并输出

cut可以用-c选项按字符列切割文本

-c选项后面紧跟的数字表示切割的字符列序号

可以切割多列

数字之间用逗号隔开即可

我们这里命令的表示

切割输出当前用户家目录下的install.log的前两列字符

我们可以打开install.log 进行验证

确实是这样的

cut也可以联用 -d 和 -f 选项

按指定分隔符分隔开的文本来切割文本

其中-d选项后面紧跟的符号表示分隔符

-f 选项后面紧跟的数字表示切割的字段序列号

我们这里命令的表示

切割输入/etc/passwd 文件的第一个字段

字段是用冒号隔开的

wc则是一个文本统计命令

wc 可以统计文本文件或者标准输出中的

文本行数 单词数和字节数

wc加上 -l 选项表示仅仅统计文本行数

例三构建的管道命令比较长

目的是用于统计当前用户家目录下所有目录文件的数目

我们逐一来进行解释

首先是用ls –l ~命令以长格式

列出家目录中所有的文件

接着用cut -c1命令切割并输出文本中每一行的第一字符列

因此切下的字符就是表示文件类型的字符

接下来我们用grep 查找其中带有“d”字符的行并输出

最后我们使用了wc 统计了输出的行数

因为d表示目录文件

因此最终wc的输出

就是当前用户家目录下目录文件的数目

我们使用了4个命令

通过管道进行协同完成这个较为复杂的任务

这个例子很好地体现了unix 程序设计的三原则

一 一次只做一件事 并做到最好

二 能够与其他程序协同工作

三 能够处理文本流

最后

我们要提醒大家的是

管道不会传递错误输出

如我们统计/bin和/sbin目录下的所有文件数目

但我们不小心将sbin写成了sbni

而这个sbni目录是不存在的

因此ls将会输出错误信息

显然这个错误信息直接输出到了终端

而没有传递给wc

如果我们在使用管道的时候

不想看到命令的错误输出

可以将其重定向到/dev/null文件中

如果您不知道/dev/null文件是什么

可以查看“重定向”一讲

至此我们就将Linux中的管道介绍完了

谢谢大家观看

下次见

Linux系统管理课程列表:

初识Linux

-Linux那些事儿

--Linux那些事儿

-选择合适的Linux版本

--微视频

-建立一台虚拟机

--微视频

-安装Linux系统

--微视频

-与Linux进行交互

--微视频

-用好帮助文档man

--Video

-关闭和重启Linux

--微视频

-初识Linux--初识Linux测试

管好文件

-切换创建和删除目录

--微视频

-列出文件和文件属性

--Video

-拷贝、剪切、删除和创建文件

--Video

-文件链接

--Video

-归档压缩文件

--Video

-查找文件

--Video

-通配符

--Video

-查看文本文件

--Video

-管好文件--用好文件测试01

-管好文件--用好文件测试02

用好重定向和管道

-重定向

--Video

-管道

--Video

-用好重定向和管道--用好重定向和管道测试

用好vi

-vi 入门

--Video

-vi 初探

--Video

-用好vi--用好vi测试

管好用户

-用户和用户组

--Video

-查看用户

--Video

-切换用户身份

--Video

-创建、修改和删除用户

--Video

-创建、修改和删除用户组

--Video

-部分让渡根用户权限

--Video

-用户管理配置文件

--Video

-管好用户--管好用户测试

管好硬盘

-查看硬盘

--Video

-分区和格式化硬盘

--Video

-手动挂载和卸载分区

--Video

-开机自动挂载分区

--Video

-管好硬盘--管好硬盘测试

管好网络

-查看和操纵网络接口

--Video

-配置TCP/IP网络参数

--Video

-管好网络--管好网络测试

管好软件包

-用RPM管理软件

--Video

-用yum管理软件

--Video

-为yum配置软件源

--Video

-管好软件包测试--作业

管好进程和服务

-查看进程

--Video

-操纵进程

--Video

-查看和操纵系统服务

--Video

-管好进程和服务--管好进程和服务测试

管好远程联机服务器

-用SSH协议远程联机

--Video

-为SSH服务器配置密钥认证登录

--Video

-管好远程联机服务器--管好远程联机服务器测试

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。