UNIX入门 2-2 管道

利用管道符号“|”,可以把一个命令的标准输出连接到另一个命令的标准输入。

例如,利用管道吧ls和wc两个命令连接到一起,

ls /usr | wc -w

 

管道的常见用法是为滤通程序提供原始数据,由滤通程序读取来自标准输入的数据,按照指定的检索原则和模式,从

输入数据中提取期望、包含给定字符串的数据。在UNIX系统中,grep就是这样一个常见的滤通程序。

例如,为了从ps命令输出的众多进程中找出某个特定的进程,可以使用管道连接ps和grep命令。

ps -ef | grep cron

 

另一个常见的用法是利用管道把进程的输出数据传递给sort命令,使之按照一定的排序原则进行排序,最终输出排序

后的结果。

who | sort

 

利用管道可以把多个命令组合到一起,吧命令的标准输出一次传递到下一个命令的标准输入,最终得到经过多个命令

依次处理的结果。

command1 | command2 | command3 > output-file

 

例1,为了获取cron的进程ID,一边使用kill命令终止该进程,可以利用管道连接下列命令。

首先从进程中提取与cron有关的进程,然后删除可能存在的“grep cron”进程,最后再使用awk命令截取位于第2个字段的进程ID。

ps -ef | grep cron | grep -v grep | awk '{print $2}'

 

例2,若想复制和备份一个完整的目录,俄可以利用管道,足额和使用find和cpio两个命令,把当前目录下的所有目录和文件按照原有目录

层次结果复制到一个新的目录位置。

cd sourcedir

find . -print | cpio -pcdmu newdir

 

例3,三管道使用程序tee。tee命令的主要功能是通过标准输入接受并显示数据,同时把数据存储到指定的文件中。因此,可以利用tee命令,在显示一个命令输出数据的同时,吧输出结果存储到一个指定的文件中,以便将来再检查。例如,为了限制并保存当前所有注册用户的列表文件,可以使用下列命令。

who | tee userlist

 

执行完后,会产生一个新的文件userlist

执行 ls -l userlist 可以查看该文件已经生成。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值