侧边栏壁纸
博主头像
小周的个人博客 博主等级

行动起来,活在当下

  • 累计撰写 90 篇文章
  • 累计创建 11 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

管道符与重定向命令

Administrator
2026-07-21 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

1、管道符

  • 管道符“|”:将命令的输出结果交给另外一条命令作为参数继续处理

[root@test ~]# head -10 /etc/passwd |tail -5
[root@test ~]# head -10 /etc/passwd |tail -5 |wc -l
5

[root@test ~]# cat -n /etc/passwd |head -10|tail -5
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin

[root@test ~]# ifconfig ens32 |head -2
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.50 netmask 255.255.255.0 broadcast 192.168.0.255

2、重定向

  • 重定向操作:将前面命令的输出结果,写入到其他的文本文件中

  • 重定向的表示符号

    • > #重定向输出(覆盖)

    • >> #重定向输出(追加)

    • << #输入重定向(追加)

    • > 只收集正确的输出结果

    • 2> 只收集错误的输出结果(覆盖)

    • 2>> 只收集错误的输出结果(追加)

    • &> 正确错误都收集(覆盖)

    • &>> 正确错误都收集(追加)

#将命令的输出结果以覆盖的方式重定向到文件中,(>附带创建文件功能)
[root@test ~]# ifconfig ens32 |head -2 > /opt/ens32.bak
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.50 netmask 255.255.255.0 broadcast 192.168.0.255
[root@test ~]# cat /etc/hostname > /opt/ens32.bak
[root@test ~]# cat /opt/ens32.bak
test
[root@test ~]# free -h > /opt/free.bak
[root@test ~]# cat /opt/free.bak
total used free shared buff/cache available
Mem: 972M 414M 123M 15M 435M 336M
Swap: 2.0G 0B 2.0G

#将命令的输出结果以追加的方式重定向到文件中
[root@test ~]# cat /etc/hostname >> /opt/free.bak
[root@test ~]# cat /opt/free.bak
#重定向输入(>覆盖)以EOF开始,以EOF结束,中间写入内容
[root@test opt]# cat > xxxx.txt <<EOF
> hello
> Linux
> EOF

#追加重定向输入(>>最佳)
[root@test opt]# cat >> xxxx.txt <<EOF
> 你好
> EOF

#“>”只收集正确的输出结果,不收集错误的输出结果
[root@test ~]# ls xxooooxx > /opt/xx.txt
ls: 无法访问xxooooxx: 没有那个文件或目录

#“2>”只收集错误的输出结果,不收集正确的输出结果
[root@test ~]# ls xxooooxx 2> /opt/xx.txt
[root@test ~]# cat /opt/xx.txt
ls: 无法访问xxooooxx: 没有那个文件或目录

#“2>”以覆盖的方式将输出结果重定向到文件中
[root@test ~]# cat /etc/abc 2> /opt/ens32.bak
[root@test ~]# cat /opt/ens32.bak
cat: /etc/abc: 没有那个文件或目录

#“2>>”以追加的方式将输出结果重定向到文件中
[root@test ~]# ls /etc/abcd 2>> /opt/ens32.bak
[root@test ~]# cat /opt/ens32.bak
cat: /etc/abc: 没有那个文件或目录
ls: 无法访问/etc/abcd: 没有那个文件或目录

#“&>”以覆盖的方式将正确输出与错误输出重定向到文件中
[root@test ~]# lscat &> /opt/abc.txt
[root@test ~]# cat /opt/abc.txt
[root@test ~]# ls /etc/passwd &> /opt/pass.bak
[root@test ~]# cat /opt/pass.bak
[root@test ~]# free -h &> /opt/pass.bak
[root@test ~]# cat /opt/pass.bak

#“&>”以追加的方式将正确输出与错误输出重定向到文件中
[root@test ~]# ifconfig ens32 | head -2 &>> /opt/pass.bak
[root@test ~]# cat /opt/pass.bak

#以覆盖方式将正确输出与错误输出重定向到不同文件中
[root@test ~]# ll -d /root/ bcd >a.txt 2>b.txt
[root@test ~]# cat a.txt
dr-xr-x---. 24 root root 4096 3月 28 18:07 /root/
[root@test ~]# cat b.txt
ls: 无法访问bcd: 没有那个文件或目录

3、echo命令与sleep命令

  • echo命令用于输出指定的字符串和变量

  • 命令格式:echo [-选项] [参数]

[root@test ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@test ~]# echo xxoo
xxoo

[root@test ~]# echo abc
abc
[root@test ~]# echo 男人好难
男人好难

[root@test ~]# echo 123
123
[root@test ~]# cat /etc/hostname
test

[root@test ~]# echo localhost > /etc/hostname
[root@test ~]# cat /etc/hostname
localhost
  • sleep命令可以用来将目前动作延迟一段时间

  • 命令格式:sleep 时间

  • 常用选项: s 秒 m 分钟 h 小时 d 日

[root@test ~]# sleep 3

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区