linux管道及重定向

这篇博客详细介绍了Linux中的管道及重定向概念。包括输出重定向的覆盖与追加,错误输出处理,以及在脚本中的应用。还探讨了输入重定向,并通过多个案例展示了如何使用进程管道进行命令链式操作,如排序、统计和过滤。最后,讨论了参数传递工具Xargs的使用,演示了如何高效地处理文件和命令。
摘要由CSDN通过智能技术生成

一 .管道及重定向

I/O重定向
I/O  Input/Output  Redirection

标准输入、标准输出、标准错误 

输出重定向及综合案例

输入重定向及结合案例

标准输入、标准输出、标准错误
file descriptors (FD,文件描述符 或  Process I/O channels): 进程使用文件描述符来管理打开的文件
[root@youngfitn ~]# ls /proc/$$/fd 
0  1  2  3  4

0, 1, and 2, known as standard input, standard output, and standard error

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QGtEpuit-1584621260360)(image\2.png)]

输出重定向 (覆盖,追加)

正确输出: 1> 1>> 等价于 >覆盖 >> 追加 命令结果能够正确的显示

错误输出: 2> 2>> 命令结果不能正确的显示或者命令错误

​ 如果不加012 ,则>默认是1 使用时,会将正确的接受,错误的报错

1.1. 案例1:输出重定向(覆盖)
 [root@youngfitn ~]# date 1> date.txt
 [root@youngfitn ~]# date > date.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YGRQVa0Y-1584621260361)(image\3.png)]

1.2.案例2:输出重定向(追加)
[root@youngfitn ~]# date >> date.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-brmBRy7e-1584621260361)(image\4.png)]

1.3. 案例3:错误输出重定向
[root@youngfitn ~]# ls /home/  /aaaaaaaaa >list.txt
ls: cannot access /aaaaaaa: No such file or directory

[root@cuichengjie ~]# cat list.txt
/home/:
cuichengjie4

如果不加012 ,则>默认是1     使用时,会将正确的接收,错误的报错

ls: 无法访问/aaaaaaaaa: 没有那个文件或目录

[root@youngfitn ~]# ls /home/  /aaaaaaaaa >list.txt 2>error.txt

[root@cuichengjie ~]# cat list.txt  //接受了正确的结果
/home/:
cuichengjie4
[root@cuichengjie ~]# cat error.txt //接收了错误的结果
ls: cannot access /aaaaaaa: No such file or directory

list会接收正确的结果,error会接收错误的结果,

//重定向到不同的位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HeFHqykS-1584621260361)(image\5.png)]

1.4.正确和错误都输入到相同位置
[root@youngfitn ~]# ls /home/  /aaaaaaaaa &>list.txt	//混合输出,将正确和错误的内容一同输入到list里
[root@cuichengjie ~]# cat list.txt  //将正确和错误de
ls: cannot access /aaaaaa: No such file or directory
/home/:
cuichengjie4

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wjVib6B5-1584621260361)(image\6.png)]

1.5. 正确和错误都输入到相同位置
 [root@youngfitn ~]# ls /home/  /aaaaaaaaa >list.txt 2>&1			    //重定向到相同的位置   ,与上面的结果相同

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BecJl5D6-1584621260362)(image\7.png)]

$?是返回上一次命令返回的值,如果是0则上条命令成功,如果不是则代表失败。
-ep 在if语句中是 等于  的意思

1.6.脚本中使用重定向
[root@youngfitn ~]# vim ping1.sh 
ping -c1 10.18.40.100

if [ $? -eq 0 ];then       

  echo "10.18.40.100 is up."

else        

  echo "10.18.40.100 is down!" 

fi

[root@youngfitn ~]# chmod +x ping1.sh

[root@youngfitn ~]# ./ping1.sh  ./是当前目录

1.7.脚本中使用重定向
[root@youngfitn ~]# vim ping1.sh

ping -c1 10.18.40.100 &>/dev/null

f [ $? -eq 0 ];then      

   echo "10.18.40.100 is up." 

else        

   echo "10.18.40.100 is down!"

fi

案例8:脚本中使用重定向

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值