命令列中常見命令用法及explainshell.com的用法

kari發表於2019-03-16

常見命令用法

ls

ls 為 列出有關檔案的資訊,有以下常見用法:
ls [OPTION]... [FILE]...

  • -a, --all 不要忽略以.開頭的目錄
  • -l 用列表來表示

cat

cat 為 將檔案內容連線到標準輸出,有以下常見用法:
cat [OPTION]... [FILE]... 如果沒有FILE,或者FILE是 - ,則讀取標準輸入。

  • -A, --show-all 全部顯示
  • -b, --number-nonblank 標記非空行
  • -n, --number 標記所有行
  • -E, --show-ends 在每行行末顯示$
  • -s, --squeeze-blank 抑制重複的空輸出行

mv

mv 為 將檔案重新命名或者移動至某目錄,有以下常見用法:
mv [OPTION]... [OLDNAME]...[NEWNAME]
mv [OPTION]... [SOURCE]... [DIRECTORY]

  • -f, --force 在覆蓋之前不提示

touch

touch 為 將每個檔案的訪問和修改時間更新為當前時間或者建立一個檔案,有以下常見用法:
touch [OPTION]... FILE...

  • -a 僅更改訪問時間
  • -m 僅更改修改時間

explainshell.com 的使用方法

explainhell是一個工具(帶有Web介面),能夠解析手冊頁,提取選項並通過將每個引數與手冊頁中的相關幫助文字相匹配來解釋給定的命令列。

explainhell由以下元件構建:

  • 將給定手冊頁從原始格式轉換為html(manpage.py)的手冊頁閱讀器
  • 分類器遍歷手冊頁中的每個段落並將其分類為包含選項(algo / classifier.py)
  • 一個選項提取器,用於掃描已分類的段落並查詢選項(options.py)
  • 儲存後端,將已處理的手冊頁儲存到mongodb(store.py)
  • 遍歷命令的AST(由bashlex解析)並在上下文中將每個節點與相關幫助文字(matcher.py)匹配的匹配器

在查詢解釋時,它:

  • 將查詢解析為AST
  • 訪問AST中的有趣節點,例如:
    • 命令節點 - 這些節點代表一個簡單的命令
    • shell相關節點 - 這些節點代表shell解釋的內容,例如'|','&&'
  • 對於每個命令節點,我們檢查是否知道如何解釋當前程式,然後檢查其餘的令牌,嘗試將每個令牌與已知選項列表進行匹配
  • 返回使用Flask呈現的匹配列表
    命令列中常見命令用法及explainshell.com的用法

相關文章