1.基本概念
#標准輸出:命令執行正確後,所回傳的正確信息代碼為1
#標准錯誤輸出:命令執行錯誤,所回傳的錯誤信息代碼為2
#標准輸入,代碼為0
2.重定向常用符號使用方法
cmd1 | cmd2 #將cmd1d標准輸出作為cmd2的標准輸入
> filename #將標准輸出重定向到文件filename中,若是filename中原有內容,便會被新的內容覆蓋。
>>filename #將標准輸出追加到filename文件中。
< filename #將filename文件的內容作為標准輸入
<< EOF #連續輸入一些內容,當輸入EOF時表示輸入結束,EOF可以為任意字符串
1> filename :#以覆蓋的方法將正確的數據輸出到filename文件中
1》filename #以追加的方法將正確的數據輸出到filename文件中
2> filename #以覆蓋的方法將錯誤的數據輸出到filename文件中
2》 filename #以追加的方法將錯誤的數據輸出到filename文件中
> filename 2>&1 #將正確的數據和錯誤的數據輸出到同一個文件
&> filename #同上
>file1 2>file2 #正確輸出到file1,錯誤的輸出到file2
3.舉例:
[root@zhu2 ~]# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin #管道的使用
[root@zhu2 ~]# cat zhu.txt
dan yuan ren chang jiu,
qian li gong chan juan.
[root@zhu2 ~]# cat zhu.txt > jiang.txt
[root@zhu2 ~]# cat jiang.txt
dan yuan ren chang jiu,
qian li gong chan juan. #重定向
[root@zhu2 ~]# echo "zhu jiang tao" > jiang.txt && cat jiang.txt
zhu jiang tao #覆蓋
[root@zhu2 ~]# echo "hao are you" >>jiang.txt && cat jiang.txt
zhu jiang tao
hao are you #追加
[root@zhu2 ~]# caa jiang.txt
-bash: caa: command not found
[root@zhu2 ~]# caa jiang.txt >zhuzhu
-bash: caa: command not found
[root@zhu2 ~]# caa jiang.txt 2>zhuzhu
[root@zhu2 ~]# cat zhuzhu
-bash: caa: command not found#標准錯誤輸出
[zhu@zhu2 ~]$ find /home -name .bashrc > 88.txt
find: /home/zhuzhu: 權限不夠
[zhu@zhu2 ~]$ find /home -name .bashrc > 88.txt 2>99.txt
[zhu@zhu2 ~]$ ll
總計 12
-rw-rw-r-- 1 zhu zhu 18 10-23 15:36 88.txt
-rw-rw-r-- 1 zhu zhu 33 10-23 15:36 99.txt
#標准正確輸出和錯誤輸出存到不同的文件
########################################################
[zhu@zhu2 ~]$ find /home -name .bashrc &>8899.txt
[zhu@zhu2 ~]$ find /home -name .bashrc >8888.txt 2>&1
[zhu@zhu2 ~]$ cat 8899.txt
/home/zhu/.bashrc
find: /home/zhuzhu: 權限不夠
[zhu@zhu2 ~]$ cat 8888.txt
/home/zhu/.bashrc
find: /home/zhuzhu: 權限不夠
#標准正確輸出和錯誤輸出存到同一文件
[root@zhu2 ~]# cat <<zhu
> ni shuo wo lia chang xiang yi
> ni ke zhi dao wo de xin
> zhu #輸到此處,自動結束相當於ctrl+d
ni shuo wo lia chang xiang yi
ni ke zhi dao wo de xin