資料流重導向&命令執行判斷&管線命令(pipe)

書籤 : 資料流重導向 ; 命令執行判斷 ; 管線命令

資料流重導向

standard input(stdin) : 標準輸入,執行指令前所輸入的資料,使用<或<<
< : 將原本需要由鍵盤輸入的資料改用檔案內容取代
<< : 結束的輸入字元

standard output(stdout) : 標準輸出,指令執行所回傳的正確訊息,使用>或>>
standard error output(stderr) : 標準錯誤輸出,指令執行失敗所回傳的錯誤訊息,使用2>或2>>

input練習

output練習


命令執行判斷 :  ;  ,  &&  ,  ||

cmd1 ; cmd2 : 隔開不同指令,可使不同指令接續進行

cmd1 && cmd2 :
若cmd1執行完畢且正確執行,則開始執行cmd2
(cmd1執行錯誤時,cmd2則不執行。)

cmd1 || cmd2 :
若cmd1執行完畢且正確執行,則不執行cmd2 ;
若cmd1執行完畢且錯誤,則開始執行cmd2


管線命令  | 
僅能處理上一個指令所傳遞的 standard output,對於 standard error output 會做忽略,而在管線後面接的指令必須選擇能接受 standard input 的資料的指令才予以進行。
(如less,head等為能接受standard input的指令 ; ls,cp,mv 等指令則無法進行管線命令)

指令
1. cut : 將一份資料進行分解
           -d : 後面接上分隔字元(與 -f 一起使用預設 : 空白字元)
           -f  : 依據 -d 分割的片段,使用 -fn取出第n個片段
           -c : 以字元為單位,取出固定字元區間

2. grep : 分析資訊,將需要的資訊擷取出來

3. sort : 將資料進行排列
           -t  : 分隔符號(與 -k 一起使用預設 : [TAB]鍵)
           -k  : 依據 -t 分隔的區間,使用 " -k n " 取出第n個區間

4. uniq : 將重複的資料僅列出一項顯示
           -i  : 忽略大小寫字元的不同
           -c  : 計算重複資料的數量

5. wc : 選項與參數
           -l  : 顯示行數
           -w  : 顯示字數
           -m  : 顯示字元

6. tr : 刪除或替換一段訊息中的文字
           -d  : 刪除訊息當中 ' x ' 的字串
           -s  : 取代字元


/etc/passwd (檔案結構)

結構 範例與說明
帳號名稱
密碼 (密碼資料改放至 /etc/shadow中以免密碼資料被竊取)
UID (使用者識別碼)
0 : 系統管理員
1~999 : 系統帳號
(1~200為distributions 自行建立的系統帳號,201~999為可使用的系統帳號)
1000~ : 可登錄帳號
GID (與 /etc/group 有關,規範群組名稱)
家目錄
Shell(殼程式)

每週進度