管道与重定向

Bash的标准输入设备是键盘、鼠标、手写板等设备,标准输入设备为显示器

一般我们通过键盘输入命令并执行,系统将返回信息显示在屏幕上,默认不管是正确的还是错误的信息,都将输出至显示器。

标准输入为0,标准输入为1,错误输出为2


管道符 |   :  可以将多条命令连接在一起使用,把一个命令的标准输出作为另一个命令的标准输入

ifconfig  eth0  |   grep  “inet  addr”   过滤含IP地址的行

echo   “pass”  |   passwd  --stdin   root   设置root密码为pass


重定向<、>、<<、>>):

>   将正确输出覆盖至文件               >>  将正确输出追加至文件

2>  或2>>  将错误输出副高或追加至文件

&>   将正确输出和错误输出导入到文件里

2>&1   将正确输入和错误输出导入到文件

mail   -s  test    xx@gmail.com   <  list.txt     发一封主题为test,内容为list.txt里的内容,接收人为xx@gmail.com的邮件。


ls  -l  abc  install.log               #install.log存在,abc不存在

ls   -l   abc   install.log    2>  error.txt  只将错误信息导入文件里

ls    -l    abc  install.log   >  correct.txt   只将正确信息导入文件里

ls   -l   abc    install.log    &>  all.txt  不管是正确信息和错误信息都导入到文件里

ls   -l   abc    install.log    >>  all   2>&1  不管是正确信息和错误信息都追加至文件里


重定向使用技巧:

1.修改20个账户密码,要显示20个成功的提示信息,然而大量成功提示信息对于我们而言是无意义的信息,要将其

屏蔽,让错误信息显示出来

/dev/null,这个特殊设备就像太阳黑洞,任何让里面写入都将永远消失,无意义的信息都可以导入到/dev/null设备里

echo  "pass"  |  passwd  --stdin  root  >>  /dev/null


2.在深夜里,很多服务器负载最低时,开始执行计划任务脚本,白天,管理员会查看那些命令执行成功,那些命令出了问题,可以将正确输出与

错误输出保存到两个不同的文件。

id     tom   >>  user      2>> error

判断tom用户是否存在,存在把用户信息导入到user文件里,不存在把错误信息导入至error文件里


tee

双向重导向

重定向会将数据流整个传送给文件,因此我们除非去读取该文件,否则就无法利用这个数据流,而双向重定向tee会利用这个数据流

tee会同时将数据流分送到文件去与屏幕(screen);而输出到屏幕的,其实就是stdout, 

              tee

                                  -a      file       以累加(append)的方式,将数据加入file当中!

[root@www  ~] last   |  tee  last.list  | cut   -d  " " -f1


[root@www  ~]  ls  -l  /home  | tee  ~/homefile   | more


[root@www  ~] ls -l  /  | tee  -a  ~/homefile    | more

tee 后接的文件会被覆盖,若加上-a这个选项则能将信息累加

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值