1. 程式人生 > >LINUX學習—管道及IO重定向

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