命令行界面通用規範
我想知道在哪裡可以找到並了解有關 Linux 和 bash 中使用的命令行界面的一般概念?
到目前為止,我只是從經驗中找到了一些這樣的資訊,例如
對於 cat,沒有任何進一步的參數,它接受標準輸入。但是您可以使用特殊名稱顯式指定 STDIN
-
,這兩種方式是等效的。cat
也可以接受文件名作為cat filename
. 所以是-
為了填寫一個應該用於文件名的參數?這種用法-
對於其他命令也很常見嗎?在
chardet <<<somestring
,<<<
表示一個字元串用作標準輸入,與 . 相同echo somestring | chardet
。這種用法<<<
也很常見嗎?在
cut -c 1-3,20,25- employees
, 中,1-3,20,25-
為參數指定數字範圍的方法在其他命令中也很常見嗎?最後但並非最不重要的一點是,這些一般概念是否僅在 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
。--
表示選項的結束。例如, inrm -- -a
,-a
不是一個選項,而是一個操作數,即要操作的文件,因此該命令會刪除名為 的文件-a
。- Lone
-
代表標準輸入,其中需要輸入文件。它代表需要輸出文件的標準輸出。GNU 實用程序和其他工具也支持形式的“長選項”
--name
。一些實用程序違反一般約定,並採用帶有單個前導破折號的多字母選項:-name
.重定向是一個 shell 功能,因此您可以在 shell 手冊中找到它。
<<<
使用字元串作為標準輸入是 ksh 擴展,bash 和 zsh 也支持。只要 shell 支持它,它就可以用於任何命令。