第六章、管道及IO重定向
04_03_管道及IO重定向
計算機組成:
運算器、控制器: CPU
存儲器:RAM
輸入設備/輸出設備
程序:指令和數據
控制器:指令
運算器:
存儲器:
地址總線:內存尋址
數據總線:傳輸數據
控制總結:控制指令
寄存器:CPU暫時存儲器
I/O: 硬盤,
程序
INPUT設備、OUTPUT設備
系統設定
默認輸出設備:標準輸出,STDOUT, 1
默認輸入設備:標準輸入, STDIN, 0
標準錯誤輸出:STDERR, 2
標準輸入:鍵盤
標準輸出和錯誤輸出:顯示器
I/O重定向:
Linux:
>: 覆蓋輸出
>>:追加輸出
set -C: 禁止對已經存在文件使用覆蓋重定向;
強制覆蓋輸出,則使用 >|
set +C: 關閉上述功能
2>: 重定向錯誤輸出
2>>: 追加方式
&>: 重定向標準輸出或錯誤輸出至同一個文件
<:輸入重定向
<<:Here Document,在此處生成文檔
cat >> /tmp/myfile.txe << EOF,可以在腳本中生成文檔
管道:前一個命令的輸出,作爲後一個命令的輸入
命令1 | 命令2 | 命令3 | ...
tee:
既保存文檔,又輸出到屏幕
練習:
1、統計/usr/bin/目錄下的文件個數;
# ls /usr/bin | wc -l
2、取出當前系統上所有用戶的shell,要求,每種shell只顯示一次,並且按順序進行顯示;
# cut -d: -f7 /etc/passwd | sort -u
3、思考:如何顯示/var/log目錄下每個文件的內容類型?
4、取出/etc/inittab文件的第6行;
# head -6 /etc/inittab | tail -1
5、取出/etc/passwd文件中倒數第9個用戶的用戶名和shell,顯示到屏幕上並將其保存至/tmp/users文件中;
# tail -9 /etc/passwd | head -1 | cut -d: -f1,7 | tee /tmp/users
6、顯示/etc目錄下所有以pa開頭的文件,並統計其個數;
# ls -d /etc/pa* | wc -l
7、不使用文本編輯器,將alias cls=clear一行內容添加至當前用戶的.bashrc文件中;
# echo "alias cls=clear" >> ~/.bashrc