BSD 风格和 Unix 风格的命令行选项有什么区别?

BSD 风格和 Unix 风格的命令行选项有什么区别?

我尝试用谷歌搜索,但无济于事。有人能帮我吗?

答案1

这取决于程序。 ps是您最常遇到的 - 在 BSD 环境中长大的人会输入,ps auwwx而在 System V 环境中长大的人会输入,ps -ef尽管ps现在已经支持这两种类型的选项。

答案2

或多或少,请参见:

还担心:

区分大小写,例如

mailx -R  [email protected] .....  # GNU/Linux
mailx -r  [email protected] .....  # Unix

某些口味需要选项,但其他口味不需要,例如

/usr/bin/echo -e "This\nis a\n test"  # GNU/Linux
/bin/echo        "This\nis a\n test"  # Unix

附加选项例如

last -y  # BSD  - include year
last -a  # GNU/Linux - include hostname

答案3

平台间的主要差异之一是位置参数。大多数命令行实用程序都会强制标志位于位置参数之前。也就是说,在 GNU 系统上,以下操作是可以的:

ls / -la

在 BSD 上,这些通常无效。显然,这还不是两者之间的差异,但它是让我在两者之间切换时感到困惑的差异之一。

相关内容