Linux中重定向和管道介紹

Linux中重定向和管道介紹
重定向
系統設定的輸入輸出
  • 默認輸出設備:標準輸出,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 | ......html

# 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文件中;

本文地址:https://www.linuxprobe.com/refre-gd-he.htmllinux

相關文章
相關標籤/搜索