LINUX學習—管道及IO重定向
管道和重定向:> < >> <<
- 標準輸入:stdin 0
- 標準輸出:stdout 1
- 標準錯誤輸出:stderr 2
I/O重定向:
改變資料輸入和輸出的方式;
>:輸出重定向,原有內容會被覆蓋掉,也叫覆蓋輸出重定向;
>>:追加輸出,可保留原來檔案中的內容,不會覆蓋掉,二者均會在檔案不存在的時候建立檔案;
2>:重定向錯誤輸出;
2>>:追加方式
&>:重定向標準輸出或錯誤輸出至同一個檔案;
ls /varr >/tmp/var3.out 2>/tmp/err.out
<:輸入重定向(cat、tr)
<<EOF:代表在此處生成文件,並以EOF結束
set -C:會禁止對已存在檔案進行覆蓋重定向,強制覆蓋輸出,則使用>|;
set +C:關閉上述功能;
管道
前一個命令的輸出,作為後一個命令的輸入 (可組合小命令完成複雜任務) 命令1的輸出 | 命令2的輸入 | 命令3的輸入 | …
tee
用於將資料重定向到檔案,另一方面還可以提供一份重定向資料的副本作為後續命令的stdin。簡單說就是將資料重定向到給定檔案和螢幕上.>
-a:向檔案中重定向時使用追加模式
練習:
1. 統計/urs/bin/目錄下檔案的個數;
ls /usr/bin |wc -l
2. 取出當前系統上所有使用者的shell,要求,每種shell只顯示一次,並且按順序進行顯示;
cut -d: -f7 |sort -u
3. 思考:如何顯示/var/log目錄下每個檔案的內容型別?
file /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