Linux-重定向与管道
重定向与管道
- 重定向指定特定的输入输出
- 管道则将上一个命令的结果重定向到下一个命令
1、标准输入与输出

进程从标准输入中得到数据,将正常输出打印至屏幕终端,错误的信息也打印至屏幕终端
进程使用文件描述符(file description)来管理打开的文件

⭐以cat命令为例,是从命令行给出的文件中读取数据,并将这些数据直接送到标准输出 cat /etc/password

⭐cat不带参数就是标准输入,从键盘输入中读取,再打印一遍出来

Linux查看标准输⼊输出设备 ls -l /dev/std*
2、输出重定向
⭐标准输出的方向就是重定向

⭐标准输出重定向(覆盖)
ifconfig ens33 > abc ( ifconfig ens33网卡的文件输出到文件abc)

如果abc文件不存在,就会创建一个文件;如果存在,就会覆盖这个文件
⭐标准输出重定向(追加)

⭐错误输出重定向(追加)
符合的输入到a,不符合的输出到b

⭐标准输出和标准错误输出,重定向到同⼀个⽂件, 混合输出
find /etc -name "*.conf" &>ab
cat ab
⭐正确和错误输出到相同位置//重定向到相同的位置
ls /root /error >ab 2>&1
⭐重定向到空设备/dev/nul
ls /root /error >ab 2>/dev/null
ls /root /error >ab &>/dev/null
案例
脚本ping.sh中输出重定向到空设备/dev/nul,那么执行之后,只会显示echo的内容


3、输入重定向
🍄grep 'root' < /etc/passwd 从/etc/passwd 中过滤root

🍄cat >file.txt
echo "111" >file1.txt

🍄EOF是END Of File的缩写,表示自定义终止符.
既然自定义,那么EOF就不是固定的,可以随意设置别名


4、进程管道技术
管道操作符号 "|" 连接左右两个命令, 将左侧的命令的标准输出, 交给右侧命令的标准输⼊

案例
🍄/etc/passwd文件按第三列降序,显示最上面的十行
sort -t":" -k3 -n /etc/passwd -r
-t表示以“:”作为分隔符
-k3表示操作第三列
-r分类是降序
-n, --numeric-sort 根据字符串数值比较
sort -t":" -k3 -n /etc/passwd -r | head -n 10 (一个管道)


🍄统计出最占CPU的5个进程 ps aux --sort=-%cpu |head -6

🍄打印当前所有 IP
ip addr |grep 'inet ' |awk '{print $2}' |awk -F"/" '{print $1}'

浙公网安备 33010602011771号