Linux之bash基礎特性三
命令別名 命令:# alias 定義別名: (1)alias 不加引數直接使用 顯示當前shell程序所有可使用的命令別名 (2)alias NAME='VALUES' 定義命令別名 注意:在命令列中定義的別名,僅對當前shell程序有效;如果想永久有效,則要定義在配置檔案中 配置檔案的修改生效範圍 僅對當前使用者有效:~/.bashrc 對所有使用者有效:/etc/bashrc 重新讀取配置檔案:source /path/to/config——file 撤銷別名 命令:# unalias 別名名 【note:如果別名同原命令名稱相同,則如果要執行原命令,可以使用"\COMMAND" 】
glob檔案(夾)萬用字元 萬用字元: * 任意長度的任意字元 ? 任意單個字元 [] 匹配指定範圍內的單個字元 [1-9] 匹配單個數字 [a-z] 不區分字母的大小寫 [A-Z] 匹配任意單個大寫字元 ^ 匹配指定範圍外的字元 [^] 匹配指定範圍外的單個字元 特殊字符集: [:digit:]:任意數字,相當於0-9 [:lower:]:任意小寫字母 [:upper:]: 任意大寫字母 [:alpha:]: 任意大小寫字母 [:alnum:]:任意數字或字母 [:space:]:匹配空格字元 [:punct:]:標點符號 【注意: ls /mnt/a[[:digit:]]b == ls /mnt/a*b (注意:在使用特殊字元的時候,需要加兩個中括號)】
I/O重定向 (1)理解三種輸入/輸出模式 標準輸入:keyborad, 0 標準輸出:monitor, 1 標準錯誤輸出:monitor, 2 (2)輸出重定向 【>,>>】 命令格式:# COMMAND > NEW_POS, COMMAND >> NEW_POS >:覆蓋重定向,目標檔案中的原有內容會被清除 >>: 追加重定向,新內容會追加至目標檔案尾部 # set -C: 禁止將內容覆蓋輸出至已有檔案中 強制覆蓋:>| # set +C: 2>: 覆蓋重定向錯誤輸出資料流 2>>: 追加重定向錯誤輸出資料流
合併標準輸出和錯誤輸出為同一個資料流進行重定向: &>:覆蓋重定向 &>>:追加重定向 COMMAND > /path/to/file.out 2> &1 COMMAND >> /path/to/file.out 2>> &1 (3)輸入重定向 【<】,一般情況下,輸入重定向只使用一個小於號 tr命令:轉換或刪除字元 tr [OPTION]... SET1 [SET2] 用法: tr abc ABC FILE tr -d "abc" FILE
管道 語法:COMMAND1 | COMMAND2 | COMMAND3 |... 【Note:最後一個命令會在當前shell程序的子shell程序中執行】
tee命令:【一路輸入產生兩路輸出,但是tee是覆蓋輸出的】 tee [OPTION]... [FILE]... tee命令常用引數 格式:tee 只輸出到標準輸出,因為沒有指定檔案 格式:tee file 輸出到標準輸出的同時,儲存到檔案file中。如果檔案不存在,則建立;如果已經存在,則覆蓋之 格式:tee -a file 輸出到標準輸出的同時,追加到檔案file中。如果檔案不存在,則建立;如果已經存在,則在原始檔後面追加內容 格式:tee - 輸出到標準輸出兩次;如果後面接檔案,則會覆蓋輸出一次。 格式:tee file1 file2 - 輸出到標準輸出兩次,同時儲存到file1和file2中