文章目录
一、重定向
标准输入、标准正确输出、标准错误输出
进程在运行的过程中根据需要会打开多个文件,每打开一个文件会有一个数字标 识。这个标识叫文件描述符。 进程使用文件描述符来管理打开的文件(FD----file descriptors). 文件描述符:每打开一个程序都会有文件描述
0,标准输入(键盘)
1,标准输出
2,标准错误,
3+,进程在执行过程中打开的其他文件。
&:表示正确错误混合输出
二、输出重定向 (覆盖,追加)
----覆盖 >> ----追加 正确输出: 1> 1>> 等价于 > >> 错误输出: 2> 2>>
2.1. 案例1:输出重定向(覆盖)
[root@youngfit ~]# date 1> date.txt #正确输出–覆盖 # 注意:如果 > 前面什么都不加默认为1,标准正确输出。
> 2.2.案例2:输出重定向(追加)
[root@youngfit ~]# date >> date.txt #正确输出–追加
2.3. 案例3:错误输出重定向
[root@youngfit ~]# ls /home/ /aaaaaaaaa >list.txt ls: cannot access /aaaaaaaaa: No such file or directory 错误
[root@youngfit ~]# ls /home/ /aaaaaaaaa >list.txt 2>error.txt #重定向到不同的位置
[root@youngfit ~]# cat error.txt ls: cannot access /aaaaaaaaa: No such file or directory
2.4.正确和错误都输入到相同位置
[root@youngfit ~]# ls /home/ /aaaaaaaaa &>list.txt #混合 输出到相同文件
2.5.重定向到空设备/dev/null 相当于垃圾站
[root@youngfit ~]# ls /home/ /aaaaaaaaa >list.txt 2>/dev/null #空设备,将错误的输出丢掉
[root@youngfit ~]# ls /home/ /aaaaaaaaa &>/dev/null #空设 备,将正确与错误的输出丢掉
echo会将输入的内容送往标准输出(打印) echo 内容 >> 文件名或脚本里面
2.6.脚本中使用重定向 实战一(没有使用重定向)
[root@youngfit ~]# vim ping1.sh
#!/bin/bash
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@youngfit ~]# chmod +x ping1.sh 加个权限执行脚本
[root@youngfit ~]# ./ping1.sh #执行文件(执行脚本)
PING 10.18.40.100 (10.18.40.100) 56(84) bytes of data. — 10.18.40.100 ping statistics —
1 packets transmitted, 0 received, 100% packet loss, time 0ms 10.18.40.100 is down!
实战二(使用重定向)
四、管道 |
实战案例
sort 参数详解
实战案例三
[root@youngfit ~]# netstat -lntp | awk ‘NR==3 {print $4}’ | awk -F’:’ ‘{print $2}’
22
五、参数传递:xargs -i
对:ls cp rm 管道不能执行。所以通过xargs。
实战案例一
实战二