どちらを選択するか-BSDまたはUnixスタイルのコマンドが利用可能な場合は?


14

コマンドにpsは多くのパラメーターがあります。特に、UnixとBSDスタイルのフラグを選択するオプションを使用するためです。ここで私の論点が得られれば幸いです。

だから、そのようなオプションが利用可能な場合、すべてのLinuxシステム間で最大の互換性を得るためにどのオプションを選択すべきですか?(最大互換性は、たとえば優先順位の1つです)

Unixスタイルが非常に明白であることは知っていますが、何らかの理由でBSDコマンドにはより読みやすい情報(たとえば、CPUの列などの列タイトル)が含まれています。もちろん、私が間違っているなら私を修正してください、しかし、それは私が感じたことです。

回答:


17

ほとんどすべてのLinuxが、のようなオリジナルのコアUnixコマンドのGNUバージョンを使用していpsます。

あなたの目標はLinux間の互換性のみであるため、答えは「それは問題ではない」ということです。

Linuxの組み込みおよびその他の非常に小さなバリアントは、通常、GNUツールの代わりにBusyBoxを使用しますが、の場合ps、BusyBoxのバージョンはあまりに削られているためAT&Tish でも BSDish でもないため、実際には答えには影響しません。

時間の経過とともに、他のUnixyシステムはps互換性の違いを減らしてきました。Mac OS X — BSD Unixから間接的派生し、一般的にはまだBSD Unixと最もよく似た動作をするMac OS X は、AT&Tish psフラグとBSDish フラグの両方を受け入れます。

Solaris / OpenIndianaもこのように動作しますが、BSDとAT&Tの歴史が混在しているため、これはそれほど驚くことではありません。

FreeBSD、OpenBSD、およびNetBSDは、まだBSDスタイルに排他的です。

Unixボックスが古いほど、1つのスタイルのフラグしか受け入れない可能性が高くなります。そのようなボックスの違いについては、今と同じ方法でペーパーすることができます。GNUツールがインストールされていない場合は、GNUツールをインストールします。

とはいえ、まだトラップがあります。ps一般に、出力は、移植性が必要なスクリプトでは解析されるべきではありません。たとえば、Unixyシステムは使用可能な列、OSが非ルートユーザーに表示できるデータ量などが異なるためです。

(ところで、「BSD vs. Unix」ではなく、「BSD vs. AT&T」であることに注意してください。BSDUnixは、まだUNIX®です。BSDUnixは、元のAT&Tブランチと直接的な開発の歴史を共有しています。 :AT&Tとその後継者は、その歴史のいくつかの時点でBSDの革新を持ち帰りました。この統一は、The Open Groupとその前身の努力によるものです。


これは素晴らしい説明(および回答)ですが、質問の助けにはなりません:どのスタイルを学ぶべきですか?
ヤール

@Jarl:最初にPOSIXを学びます。それはどこでも利用可能です。次に、最もよく使用するシステムで使用されている奇妙なバリアントを学習します。残りは無視してください。
ウォーレンヤング

ps引数スタイルの場合、POSIXはどれですか(BSDまたはUnix)?
Jarl

@Jarl:仕様を参照してください。一般的に、POSIXはBSDよりもSysVishに依存します。POSIXは経済的に駆動され、当時の主要な商用UnixはすべてSystem Vの派生物であったためです。
ウォーレンヤング

0

疑わしい場合は、SysV構文を使用してください。これは多くの人々によって合意されており、事実上の標準です。BSDスタッフは先史時代のものか、分岐したブランチの一部です(SysVは、すべての異種の行を1つの屋根の下に置くことでUnix戦争を終わらせる努力でした)。


Solaris、* BSD、OSXなどではなく、Linuxのデファクトスタンダード
-chiggsy

確かにそれはあった(Solarisのための標準である、出てくる覚えて最初のSysV)。少なくともIBMのAIXおよびHP-UXに準拠しています。BSDは、過ぎ去った時代からのホールドアウトです。
フォンブランド

SolarisがSysVであるということは正しい、私のエラー。
チグジー

3
賛成ですが、BSDへの軽par的な言及には疑問があります。物事を正しい方法でやり続けることは悪いことではありません。
チグジー

1
-1:最初に、デジュレ標準を意味すると思います。SysVスタイルオプションを事実上の標準と見なすには、FreeBSD、OpenBSD、NetBSDなどのいくつかの存在事実を無視する必要があります。その「先史時代」の議論で、それらを存在から手放すことはできません。第二に、Solarisがいたではないそれは最初のシステムV. かもしれないの最初の商用出荷されているSVR4が、SVR1はVaxenとPDP-11用に開発されました
ウォーレンヤング
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.