第7章:重定向
第7章:重定向/7.1 重定向标准输出
- 语法: > 具体的文件名
- 举例:
[root@zabbix ~]# ls -l > ls-output.txt
[root@zabbix ~]# vi ls-output.txt
-rw-r--r--. 1 root root 10 Aug 21 03:42 ln_123
-rw-r--r--. 1 root root 0 Aug 27 01:42 ls-output.txt
drwxr-xr-x. 2 root root 21 Aug 21 03:52 me
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
lrwxrwxrwx. 1 root root 15 Aug 21 03:36 s_ln_123 -> wys_bak/123.txt
- 语法: >> 文件名
- 举例:
[root@zabbix /]# ll -l >> /root/ls-output.txt
[root@zabbix ~]# vi ls-output.txt
-rw-r--r--. 1 root root 10 Aug 21 03:42 ln_123
-rw-r--r--. 1 root root 0 Aug 27 01:46 ls-output.txt
drwxr-xr-x. 2 root root 21 Aug 21 03:52 me
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
lrwxrwxrwx. 1 root root 15 Aug 21 03:36 s_ln_123 -> wys_bak/123.txt
lrwxrwxrwx. 1 root root 8 Aug 21 03:37 s_ln_dir -> wys_bak/
drwxr-xr-x. 7 root root 4096 Aug 21 04:50 wys_bak
drwxr-xr-x. 8 root root 4096 Apr 24 16:10 app
lrwxrwxrwx. 1 root root 7 May 21 11:03 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 May 31 12:20 boot
drwx--x--x. 3 root root 19 May 3 17:00 cutome-path
drw-------. 9 root root 4096 May 31 16:04 data
drwxr-xr-x. 19 root root 3220 Aug 16 01:10 dev
drwxr-xr-x. 2 root root 90 Apr 16 10:03 dockercmd
drwxr-xr-x. 4 root root 32 Apr 13 11:21 docker-hub
drwxr-xr-x. 101 root root 8192 Aug 14 17:40 etc
drwxr-xr-x. 8 root root 88 Aug 14 17:40 home
lrwxrwxrwx. 1 root root 7 May 21 11:03 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 May 21 11:03 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 11 12:59 media
第7章:重定向/7.2 重定向标准错误
第7章:重定向/7.3 重定向标准输出和标准错误
- 覆盖式:
- 旧版:
- 语法:> 文件名 2>&1
- 举例:
[root@zabbix ~]# ls -l /aa /bin/usr /bin/temp/ . /root/mylog > ls-output.txt 2>&1
[root@zabbix ~]# vi ls-output.txt
ls: cannot access /aa: No such file or directory
ls: cannot access /bin/usr: No such file or directory
ls: cannot access /bin/temp/: No such file or directory 先输出错误
-rw-r--r--. 1 root root 7166 Jun 7 18:33 /root/mylog 再输出正确的
-rw-r--r--. 1 root root 10 Aug 21 03:42 ln_123
-rw-r--r--. 1 root root 159 Aug 27 02:08 ls-output.txt
drwxr-xr-x. 2 root root 21 Aug 21 03:52 me
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
lrwxrwxrwx. 1 root root 15 Aug 21 03:36 s_ln_123 -> wys_bak/123.txt
- 新版:
- 语法:&> 文件名
- 举例:
[root@zabbix ~]# ls -l /aa /bin/usr . &> ls-output.txt
[root@zabbix ~]# vi ls-output.txt
ls: cannot access /aa: No such file or directory
ls: cannot access /bin/usr: No such file or directory 先输出错误
-rw-r--r--. 1 root root 10 Aug 21 03:42 ln_123
-rw-r--r--. 1 root root 103 Aug 27 02:10 ls-output.txt
drwxr-xr-x. 2 root root 21 Aug 21 03:52 me
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
lrwxrwxrwx. 1 root root 15 Aug 21 03:36 s_ln_123 -> wys_bak/123.txt
- 旧版:
- 追加式:
第7章:重定向/7.4 不产生输出:/dev/null
-
-
- 命令: 2> /dev/null
- 举例:
[root@zabbix ~]# ls -l /aa /bin/usr . 2> /dev/null
.:
total 409920
-rw-r--r--. 1 root root 10 Aug 21 03:42 ln_123
-rw-r--r--. 1 root root 492 Aug 27 02:25 ls-output.txt
drwxr-xr-x. 2 root root 21 Aug 21 03:52 me
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
lrwxrwxrwx. 1 root root 15 Aug 21 03:36 s_ln_123 -> wys_bak/123.txt
lrwxrwxrwx. 1 root root 8 Aug 21 03:37 s_ln_dir -> wys_bak/
drwxr-xr-x. 7 root root 4096 Aug 21 04:50 wys_bak
-
第7章:重定向/7.5 拼接多个输出
- 举例1:错误输出到文件1 标准错误到文件2
- 语法: 1>文件2 2> 文件1
- 举例:
[root@zabbix ~]# ls -l /aa /bin/usr . 2> err-output.txt 1> ls-output.txt
[root@zabbix ~]# vi err-output.txt
ls: cannot access /aa: No such file or directory
ls: cannot access /bin/usr: No such file or directory
[root@zabbix ~]# vi ls-output.txt
-rw-r--r--. 1 root root 103 Aug 27 02:32 err-output.txt
-rw-r--r--. 1 root root 10 Aug 21 03:42 ln_123
-rw-r--r--. 1 root root 0 Aug 27 02:32 ls-output.txt
drwxr-xr-x. 2 root root 21 Aug 21 03:52 me
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
lrwxrwxrwx. 1 root root 15 Aug 21 03:36 s_ln_123 -> wys_bak/123.txt
- 举例2:不需要错误输出 标准错误到文件2
- 语法: 1>文件2 2> /dev/null
- 举例:
[root@zabbix ~]# ls -l /aa /bin/usr . 2> /dev/null 1> ls-output.txt
[root@zabbix ~]# vi ls-output.txt
-rw-r--r--. 1 root root 10 Aug 21 03:42 ln_123
-rw-r--r--. 1 root root 0 Aug 27 02:31 ls-output.txt
drwxr-xr-x. 2 root root 21 Aug 21 03:52 me
-rw-r--r--. 1 root root 7166 Jun 7 18:33 mylog
-rw-r--r--. 1 root root 419737600 May 14 11:32 mysql.tar.gz
lrwxrwxrwx. 1 root root 15 Aug 21 03:36 s_ln_123 -> wys_bak/123.txt
第7章:重定向/7.6 cat 命令
第7章:重定向/7.7 管道
- 作用:将一个命令的标准输出作为另外一个命令的标准输入
- 格式:command1|command2
- 举例:
- command1:产生标准输出
[root@zabbix ~]# ls -l /usr/bin
-rwxr-xr-x. 2 root root 185488 Apr 11 13:24 zipinfo
-rwxr-xr-x. 1 root root 12040 Jun 10 2014 zipmerge
-rwxr-xr-x. 1 root root 95984 Nov 6 2016 zipnote
-rwxr-xr-x. 1 root root 100096 Nov 6 2016 zipsplit
-rwxr-xr-x. 1 root root 11880 Jun 10 2014 ziptorrent
-rwxr-xr-x. 1 root root 2041 Apr 11 08:01 zless
-rwxr-xr-x. 1 root root 2859 Apr 11 08:01 zmore
- command2:需要一个标准输入
- command1|command2
[root@zabbix ~]# ls -l /usr/bin|less
-rwxr-xr-x. 1 root root 41480 Apr 11 12:35 [
-rwxr-xr-x. 1 root root 107856 Aug 3 2017 a2p
-rwxr-xr-x. 1 root root 52720 Apr 21 02:11 ab
-rwxr-xr-x. 1 root root 11336 Apr 27 22:53 abrt-action-analyze-backtrace
-rwxr-xr-x. 1 root root 11320 Apr 27 22:53 abrt-action-analyze-c
-rwxr-xr-x. 1 root root 1345 Apr 27 22:53 abrt-action-analyze-ccpp-local
-rwxr-xr-x. 1 root root 6821 Apr 27 22:53 abrt-action-analyze-core
- command1:产生标准输出
第7章:重定向/7.8 过滤器/7.8.1 sort:可能重复排序
- 作用:在管理( 第7章:重定向/7.7 管道)的基础上,将一个命令标准输出(可能多个)经过处理后(比如排序)再作为另外一个命令的输入
- 格式:commond1|sort|commond2
- 举例:
[root@zabbix ~]# ls /bin /usr/bin |sort|less
abrt-action-analyze-xorg
abrt-action-check-oops-for-hw-error
abrt-action-check-oops-for-hw-error
abrt-action-generate-backtrace
abrt-action-generate-backtrace
abrt-action-generate-core-backtrace
abrt-action-generate-core-backtrace
abrt-action-install-debuginfo
abrt-action-install-debuginfo
abrt-action-list-dsos
:
第7章:重定向/7.8 过滤器/7.8.2 uniq:去除重复的排序
第7章:重定向/7.8 过滤器/7.8.3 wc:统计行数、字数、字节数
- 格式:commond1|过滤器1|过滤器2|wc
- 关于wc 命令
- 举例:
[root@zabbix ~]# ls /bin /usr/bin |sort|uniq|wc
第7章:重定向/7.8 过滤器/7.8.4 grep 过滤
第7章:重定向/7.8 过滤器/7.8.5 head/tail 过滤
- head命令
- tail命令
- 在管道中使用head/tail
[root@zabbix ~]# ls /bin /usr/bin |head -n 5 输出前面5个文件