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}'

 

 

posted @ 2023-04-02 14:59  仰望神明  阅读(317)  评论(0)    收藏  举报