当前课程知识点: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进行交互
--微视频
-用好帮助文档man
--Video
-关闭和重启Linux
--微视频
-初识Linux--初识Linux测试
-切换创建和删除目录
--微视频
-列出文件和文件属性
--Video
-拷贝、剪切、删除和创建文件
--Video
-文件链接
--Video
-归档压缩文件
--Video
-查找文件
--Video
-通配符
--Video
-查看文本文件
--Video
-管好文件--用好文件测试01
-管好文件--用好文件测试02
-重定向
--Video
-管道
--Video
-用好重定向和管道--用好重定向和管道测试
-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
-管好远程联机服务器--管好远程联机服务器测试