「ps」指令的哪些標誌適用於 Unix 標誌格式,哪些標誌適用於 BSD 標誌格式?

「ps」指令的哪些標誌適用於 Unix 標誌格式,哪些標誌適用於 BSD 標誌格式?

ps命令可以採用兩種格式的標誌:

  • Unix 格式,您應該在標誌前面加上破折號。
  • BSD 格式中,標誌前方不應有破折號。

我瀏覽了一下線上說明頁用於ps查看哪些標誌適用於 Unix 標誌格式以及哪些標誌適用於 BSD 標誌格式的命令,但我找不到任何內容。


編輯:這不是重複的,在另一個問題中,我問 Unix 和 BSD 標誌格式的標誌是否不同,而在這個問題中,我問 Unix 標誌格式的標誌是什麼,BSD 標誌的標誌是什麼格式。

答案1

線上說明頁不按樣式對選項進行分組,而是按功能將選項分組。您可以透過查看選項的呈現方式來區分樣式:

  • 所列的 BSD 選項不含前導破折號(a, g, T, r, x...);
  • POSIX 選項以單一前導破折號列出(-A, -a, -d, -e, -N...);
  • GNU 長選項列出時帶有兩個前導破折號 ( --deselect...)。

正如 Kusalananda 所建議的,最好只使用 POSIX 選項,並且僅在需要了解其他人對ps.

答案2

POSIX 標準描述ps實用程式概要如下:

ps [-aA] [-defl] [-g grouplist] [-G grouplist]
   [-n namelist] [-o format]... [-p proclist] [-t termlist]
   [-u userlist] [-U userlist]

由於圍繞 的“UNIX 選項”和“BSD 選項”顯然存在一些混淆ps,並且 OpenBSD、NetBSD、FreeBSD 和 macOS 甚至都沒有在其手冊中列出“BSD 選項”(無破折號標誌)ps,也許最好忘記它們並將它們視為UNIX 歷史上已結束的章節的一部分?

POSIX Rationale 部分確實ps說基於 System V 的 Unices 和基於 BSD 的 Unices 之間在實現方面存在不相容性ps(以及標準化標誌的方式背後的推理),但它從未提及 dash-less旗幟。

以供參考:

答案3

PS 支援三 (3) 種使用語法樣式:

  • UNIX 風格,可以分組且前面必須有破折號 - 例如ps -aux
  • BSD 風格,可以分組並且不能與破折號一起使用 - 例如ps aux
  • GNU 長選項,前面有兩個破折號,例如ps --aux

相關內容