bash的常見特性及文本查看命令
阿新 • • 發佈:2017-10-01
需要 深度 過程 命令行展開 文件 強引用 設置 direct 存在
(一)bash的基礎特性
- 命令補全
- shell程序在接收到用戶執行命令的請求,分析完成之後,最左側的字符串會被當作命令;
- 命令查找機制:shell首先會在內部命令中匹配查找,如果沒有找到,則會在PATH環境變量設置的目錄中,自左向右逐個搜索目錄下的文件名
- 補全:如果給定的打頭字符串可以唯一的標識某命令程序文件,則按“tab”鍵直接補全;否則需要按兩下“tab”鍵,給出列表
- 路徑補全
- 在給定的起始路徑下,以對應路徑下的打頭字串來逐一匹配起始路徑下的每個文件。
- 如果能唯一標識,則按“tab”鍵直接補全;否則需要按兩下“tab”鍵,給出列表
- 命令行展開
- ~:展開為用戶的家目錄,或指定的用戶的家目錄
- {}:可承載一個以逗號分隔的路徑列表,並能夠將其展開為多個路徑。例如:/tmp/{a,b}相當於/tmp/a,/tmp/b
- 命令的執行狀態結果
- bash通過狀態返回值來輸出此結果
- 成功:0
- 失敗:1-255
- 命令執行完成之後,其狀態返回值會保存於bash的特殊變量“$?”中。可以用“echo $?”查看。
- 命令的返回值和命令的執行狀態返回值不是一回事兒
- bash通過狀態返回值來輸出此結果
- 引用命令的執行結果:
- $(COMMAND)或者`COMMAND`。例如mkdir $(date +%H-%M-%S)
- 引用
- 強引用:單引號‘‘,其內部的任何字串都直接顯示,不做任何替換
- 弱引用:雙引號"",其內部的
- 命令引用:反引號``或者$()
(二)目錄管理類的命令
- mkdir:創建目錄/make directories
- 命令的操作對象為路徑的基名,基名之前的路徑名必須要存在
- -p:會創建缺失的父目錄
- -v:顯示創建的詳細過程,比如創建了哪些父目錄/verbose
- -m MODE:創建目錄時直接給定權限,否則則為默認權限
- rmdir:刪除空目錄/remove empty directories
- 目錄不空會報錯
- -p:叠代刪除空目錄
- -v:顯示刪除過程
問題1:如何創建四個路徑:/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b?
答案:mkdir -pv /tmp/x/{y1/{a,b},y2}
問題2:如何創建四個路徑:a_c, a_d, b_c, b_d?
答案:mkdir -v {a,b}_{c,d}
- tree:顯示目錄的樹狀結構,例如tree /tmp/x
- -L #:指定要顯示的樹的深度
bash的常見特性及文本查看命令