Linux中重定向和管道介紹

大雄45發表於2020-01-19
導讀 中重定向和管道介紹
重定向
系統設定的輸入輸出
  • 預設輸出裝置:標準輸出,STDOUT,1
  • 預設輸入裝置:標準輸入,STDIN,0
  • 標準錯誤輸出:STDERR,2
標準輸入:鍵盤
標準輸出和錯誤輸出:顯示器
linux中的I/O重定向
  • 標準輸入 (stdin): 程式碼為0,使用<或<<;
  • 標準輸出 (stdout): 程式碼為1,使用>或>>;
  • 標準錯誤輸出(stderr): 程式碼為2,使用2>或2>>;
  • ">" ">>"
>: 覆蓋輸出 
>>:追加輸出        
# set -C  禁止對已經存在檔案使用覆蓋重定向;強制覆蓋輸出,則使用 >|# set +C  關閉上述功能
  • "2>" "2>>"
2>: 重定向錯誤輸出
2>>: 追加方式
將正確的與錯誤的分別存入不同的檔案中
# ls / /varr > /tmp/var3.out 2> /tmp/err.out# ls /varr > /tmp/var4.out 2> /tmp/var4.out
        /dev/null垃圾桶黑洞裝置
&>: 重定向標準輸出或錯誤輸出至同一個檔案(或者2>&1)
  • "<"
輸出重定向(將原來需要由鍵盤輸入的資料,改由檔案內容來取代)# tr 'a-z' 'A-Z' < /etc/fstab
  • "<<"
Here Document(代表結束的輸入字元)# cat << END# cat >> /tmp/myfile.txt << EOF
/dev/null, 軟體裝置,bit bucket,資料黑洞,將內容輸出定向到該裝置下無任何返回內容
管道

管道是將前一個 的輸出作為後一個 的輸入
命令1 | 命令2 | 命令3 | ......

# echo "hello world." | tr 'a-z' 'A-Z'# echo "redhat" | passwd --stdin hive# cut -d: -f1 /etc/passwd | sort | tr 'a-z' 'A-Z'
    # echo "Hello,World." | tee /tmp/hello.out
        # tee: 顯示內容並將內容儲存在檔案中
        # wc -l /etc/passwd | cut -d' ' -f1
練習:    1、統計/usr/bin/目錄下的檔案個數;    2、取出當前系統上所有使用者的shell,要求,每種shell只顯示一次,並且按順序進行顯示;    3、思考:如何顯示/var/log目錄下每個檔案的內容型別?    4、取出/etc/inittab檔案的第6行;    5、取出/etc/passwd檔案中倒數第9個使用者的使用者名稱和shell,顯示到螢幕上並將其儲存至/tmp/users檔案中;    6、顯示/etc目錄下所有以pa開頭的檔案,並統計其個數;    7、不使用文字編輯器,將alias cls=clear一行內容新增至當前使用者的.bashrc檔案中;

原文來自: 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2673948/,如需轉載,請註明出處,否則將追究法律責任。

相關文章