2020-3-18 重定向 > 管道技术 tee xargs

1.什么是重定向

将原本要输出到屏幕的信息 重新定向到某个文件或者黑洞

2.为什么要使用重定向

  • 屏幕输出的信息很重要,且希望保存重要信息
  • 后台执行中的程序,不希望他干扰屏幕的输出结果
  • 系统的例行命令,例如定时任务的执行结果,希望保存下来
  • 一些执行命令,我门已知他可能出现的错误信息,将他直接丢弃时
  • 错误日志与正确的日志需要分别输出至不通的文件保存

3.标准输入 与 输出

名称 文件描述符 作用
标准输入(stdin) 0 默认是键盘也可以是文件输入
标准输出(stdout) 1 默认输出到屏幕
错误输出(stderr) 2 默认输出到屏幕

4.输出重定向

输出重定向的主要方式:

类型 操作符号 用途
1 标准覆盖输出重定向 > 将程序输出的正确结果输出到指定的文件中,会覆盖文件原有内容
2 标准追加输出重定向 >> 将程序输出的正确结果已追加的方式输出到指定文件
3 错误覆盖输出重定向 2> 将程序输出的错误结果输出到指定的文件中,会覆盖文件原有内容
4 错误追加输出重定向 2>> 将程序输出的错误结果已追加的方式输出到指定文件
5 混合重定向 &> 正确输出和错误输出重定向于同一个文件
6 >a 2>&1

5.管道技术

管道操作符 | 主要用来连接左右两个命令,将左侧的标准输出stdout,交给右侧命令的标准输入stdin

注:无法传递标准错误输出至后者

例1: 将/etc/passwd 中的用户按 UID 大小排序

[root@wangjc ~]# cat /etc/passwd |awk -F ":" '{print $3}'|sort -n

例2: 统计当前/etc/passwd 中用户使用的 shell 类型

[root@wangjc ~]# cat /etc/passwd |awk -F ":" '{print $7}'|sort|uniq -c |sort -nr
     16 /sbin/nologin
      9 /bin/bash
      1 /sbin/shutdown
      1 /sbin/halt
      1 /bin/sync

管道技术中的 tee 命令

将|操作符前命令结果通过 tee命令 截取一份输出至指定文件 并将|前的命令输出传递给|右面命令的输入

选项 -a 追加方式

[root@wangjc ~]# ifconfig ens32 |grep "netmask"|awk '{print $2}'
10.0.0.200
[root@wangjc ~]# ifconfig ens32 |grep "netmask"|tee /root/wjc/ip.txt|awk '{print $2}'
10.0.0.200
[root@wangjc ~]# cat /root/wjc/ip.txt
        inet 10.0.0.200  netmask 255.255.255.0  broadcast 10.0.0.255

管道技术中的 xargs

参数的传递 将 | 前的命令结果作用于 命令的参数

[root@wangjc wjc]# ls                     #显示当前路径下文件
file1.txt  ip.txt                     
[root@wangjc wjc]# ls |xargs rm -f         #将当前路径下的文件 作为rm的参数执行删除
[root@wangjc wjc]# ls

你可能感兴趣的:(2020-3-18 重定向 > 管道技术 tee xargs)