易學筆記-Linux命令-第7章:重定向
第7章:重定向
第7章:重定向/7.1 重定向標準輸出
- 語法: > 具體的檔名
- 舉例:
[[email protected] ~]# ls -l > ls-output.txt
[[email protected] ~]# 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
- 語法: >> 檔名
- 舉例:
[[email protected] /]# ll -l >> /root/ls-output.txt
[[email protected] ~]# 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
- 舉例:
[[email protected] ~]# ls -l /aa /bin/usr /bin/temp/ . /root/mylog > ls-output.txt 2>&1
[[email protected] ~]# 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
- 新版:
- 語法:&> 檔名
- 舉例:
[[email protected] ~]# ls -l /aa /bin/usr . &> ls-output.txt
[[email protected] ~]# 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
- 舉例:
[[email protected] ~]# 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
- 舉例:
[[email protected] ~]# ls -l /aa /bin/usr . 2> err-output.txt 1> ls-output.txt
[[email protected] ~]# vi err-output.txt
ls: cannot access /aa: No such file or directory
ls: cannot access /bin/usr: No such file or directory
[[email protected] ~]# 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
- 舉例:
[[email protected] ~]# ls -l /aa /bin/usr . 2> /dev/null 1> ls-output.txt
[[email protected] ~]# 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:產生標準輸出
[[email protected] ~]# 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
[[email protected] ~]# 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
- 舉例:
[[email protected] ~]# 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 命令
- 舉例:
[[email protected] ~]# 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
[[email protected] ~]# ls /bin /usr/bin |head -n 5 輸出前面5個檔案
第7章:重定向/7.8 過濾器/7.8.6 tee:重定向管道輸出結果到檔案
- 格式:commond1|....|tee 檔名1|tee 檔名2|commond...|
- 說明:tee 可以插入到管道的任意一個過程,捕捉管道最近的一次輸出,插入的位置不一樣捕捉輸出的結果也不一樣
- 舉例: