LinuxコマンドはUnixコマンドと互換性がありますか?


21

私はいくつかのコマンドは、例えば、ことを見つけるlspwd、両方のLinuxおよびUNIXシステム上で使用することができます。

  • すべてのLinuxコマンドをUnixシステムで使用でき、すべてのUnixコマンドをLinuxで使用できるということですか?
  • または、すべてのLinuxコマンドをUnixで実行できますが、すべてのUnixコマンドをLinuxで実行できるわけではありません。
  • または、すべてのUnixコマンドをLinuxで実行できますが、すべてのLinuxコマンドをUnixで実行できるわけではありませんか?
  • または、LinuxとUnixの両方で実行できるコマンドと、両方に独自のコマンドがある場所を示すリファレンスがありますか?

28
「POSIX」について読んでください。
ダニエルアンダーソン

1
これは「Linux」コマンドではなく、GNUコマンドであることに注意してください。GNUツールは、たとえば、FreeBSDにインストールできます。
new123456

2
ヘック、GNUツールはUnixにもインストールできます。
MSalters

回答:


37

Daniel AnderssonのPOSIXに関するコメントはここでの本当の答えです。シェルコマンドとシステムコールの両方の観点から、UNIXライクシステムのコアを定義するPOSIXと呼ばれる標準があります。理論的には、POSIX仕様に準拠したソフトウェアを作成すれば、UNIX、Linux、BSDなどのシステムでコンパイルして実行できるはずです。

http://pubs.opengroup.org/onlinepubs/009695399/mindex.htmlは、POSIXを構成するものに関して決定的な答えを提供しますが、実際の目的には有用な答えではありません。Linuxシステムと他のUNIX系システムの一般的な違いについては、他の誰かが適切なコマンドリファレンスを持っている可能性があります。

特定の例:Linuxの「killall」は、特定の名前を持つすべてのプロセスを強制終了します。Solarisでは、システムをシャットダウンします。間違ったものを使用しないことが重要です。


10
@ tchrist-もしあなたが本当にそう思うなら、Mac OS Xで「sudo apt-get」とタイプして、それがあなたにどれだけ遠くまで行くかを見てください。
デビッドロビンソン

7
@tchristは、Ted WongがLinuxについて言及したとき、GNU / Linuxとしても知られているオペレーティングシステムについて明らかに話していました;)
ジョアンポルテラ

4
実際、私が理解しているように、Mac OS Xは認定されたUnixであり、達成されたLinuxバリアントはごくわずかです(もしあれば)。これは明らかに、非常に基本的な基準に対する認証の問題にすぎません。
ビルK

2
@tchrist Lは inux I S N OT U NI X
デイブ

4
@Dave Bah。不自由にならないでください。スペードのAスペード、コールcatAをcat、そして他のどの名前によるバラはまだ甘いと臭いものことを覚えておいてください。あなたをWindowsボックスにつないで、Unixが何でないかを学びましょう。しかし、LinuxはもちろんUnixです。
tchrist

18

現在、ほとんどのLinuxディストリビューションには、多くの重要なGNUソフトウェアとGNUツールチェーンが付属しています。GNUは、後にLinuxカーネルとペアになったUnixのFree-as-Free-Freedomコピーを書き換えるプロジェクトでした。lsUnixマシンで使用するときは、オリジナルを使用しています/オリジナルは何になりlsます。lsGNU / Linuxで使用する場合ls、最初と同じように書かれたGNU を使用していますls。ただし、すべてのGNUソフトウェアが対応するUnixソフトウェアとまったく同じというわけではありません。Unixが本質的にBSDになった今、GNU / LinuxディストリビューションにもそのツールのBSDバージョンが含まれている可能性があります。例えば、bsdtartar気にしています。

tl; dr:これらはまったく同じコードではありませんが、ほとんどの部分がまったく同じになるように意図されています。


2
違いについてpsは、私が考えることができる最も厄介な例です。異なるシステム(Linux、AIX、およびSolaris)上の異なるスイッチ。また、異なる出力形式。ただし、そのコマンドの目的はすべてのシステムで同じです。
エルモ

5

あなたが話しているUNIX(BSD、System V ...)を指定しませんでした。ユニバーサル(UNIX)の答えはありません。各UNIXバリアントには独自のカスタムコマンドがあり(たとえばMac OS Xを使用)、UNIXの間でも異なるコマンドがあります。通常、古いコマンド(ls、pwd、cd、cp、mv、rm ...など)は、すべてのUNIXフレーバー(Linuxを含む)で同じである傾向があります。



4

最初に考慮する必要があるのは、コマンドが実際には小さなプログラムであるということです。その意味では、毛を分割する場合、必ずしもオペレーティングシステムの一部ではありません。古いものと古典的なものは長い間存在しており、ほとんどの* nixシステムに含まれています。OSがどの程度「完全」であるかは、パッケージに付属するものによって異なります。

起動可能なほとんどのリカバリ/緊急CDの例として、スリムなLinuxディストリビューションが含まれています。これらのシステムでは、ほとんどの場合必要ないため、いくつかの典型的なコマンドが搭載されていない場合があります。


3

solarisでは/usr/gnu/bin、パスに追加するか交換するだけで/usr/bin、コマンドセットは非常に似たものになります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.