1. 程式人生 > >bash的常見特性及文本查看命令

bash的常見特性及文本查看命令

需要 深度 過程 命令行展開 文件 強引用 設置 direct 存在

(一)bash的基礎特性

  • 命令補全
    • shell程序在接收到用戶執行命令的請求,分析完成之後,最左側的字符串會被當作命令;
    • 命令查找機制:shell首先會在內部命令中匹配查找,如果沒有找到,則會在PATH環境變量設置的目錄中,自左向右逐個搜索目錄下的文件名
    • 補全:如果給定的打頭字符串可以唯一的標識某命令程序文件,則按“tab”鍵直接補全;否則需要按兩下“tab”鍵,給出列表
  • 路徑補全
    • 在給定的起始路徑下,以對應路徑下的打頭字串來逐一匹配起始路徑下的每個文件。
    • 如果能唯一標識,則按“tab”鍵直接補全;否則需要按兩下“tab”鍵,給出列表
  • 命令行展開
    • ~:展開為用戶的家目錄,或指定的用戶的家目錄
    • {}:可承載一個以逗號分隔的路徑列表,並能夠將其展開為多個路徑。例如:/tmp/{a,b}相當於/tmp/a,/tmp/b
  • 命令的執行狀態結果
    • bash通過狀態返回值來輸出此結果
      • 成功:0
      • 失敗:1-255
    • 命令執行完成之後,其狀態返回值會保存於bash的特殊變量“$?”中。可以用“echo $?”查看。
    • 命令的返回值和命令的執行狀態返回值不是一回事兒
  • 引用命令的執行結果:
    • $(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的常見特性及文本查看命令