Shell

命令行界面通用規範

  • July 9, 2011
  1. 我想知道在哪裡可以找到並了解有關 Linux 和 bash 中使用的命令行界面的一般概念?

  2. 到目前為止,我只是從經驗中找到了一些這樣的資訊,例如

  3. 對於 cat,沒有任何進一步的參數,它接受標準輸入。但是您可以使用特殊名稱顯式指定 STDIN -,這兩種方式是等效的。cat也可以接受文件名作為cat filename. 所以是-為了填寫一個應該用於文件名的參數?這種用法-對於其他命令也很常見嗎?

  4. chardet <<<somestring,<<< 表示一個字元串用作標準輸入,與 . 相同echo somestring | chardet。這種用法<<< 也很常見嗎?

  5. cut -c 1-3,20,25- employees, 中,1-3,20,25-為參數指定數字範圍的方法在其他命令中也很常見嗎?

  6. 最後但並非最不重要的一點是,這些一般概念是否僅在 bash、Linux 和 Unix 或使用 getopt 作為命令行解析器的軟體中通用?

我建議閱讀有關 unix 或 Linux shell 和命令行用法的書,以了解基本用法並了解一些高級功能。然後,您可以轉到參考文件。

具體命令的用法在他們的手冊中有描述。將在您的系統上man cat顯示該命令的手冊。cat手冊頁通常是參考資料,而不是教程,儘管它們通常包含範例。在 Linux 上,cat --help顯示一條簡潔的用法消息(用於在您已經了解基礎知識並希望為特定任務找到選項時快速閱讀)。

POSIX標準指定了每個 unix 系統都應該支持的最小命令、選項和 shell 功能集。大多數目前系統大體上都支持POSIX:2004(也稱為 Single UNIX version 3 和 Open Group Base Specifications issue 6)。GNU軟體(Linux 上的實用程序)通常對這個最小集合有很多擴展。

命令行參數有一些通用約定。POSIX 指定了大多數實用程序遵循的實用程序約定,特別是:

  • 選項由-後跟一個字母組成;-ab是 的簡寫-a -b
  • --表示選項的結束。例如, in rm -- -a,-a不是一個選項,而是一個操作數,即要操作的文件,因此該命令會刪除名為 的文件-a
  • Lone-代表標準輸入,其中需要輸入文件。它代表需要輸出文件的標準輸出。

GNU 實用程序和其他工具也支持形式的“長選項” --name。一些實用程序違反一般約定,並採用帶有單個前導破折號的多字母選項:-name.

重定向是一個 shell 功能,因此您可以在 shell 手冊中找到它。<<<使用字元串作為標準輸入是 ksh 擴展,bash 和 zsh 也支持。只要 shell 支持它,它就可以用於任何命令。

引用自:https://unix.stackexchange.com/questions/16336