BSDツールにはさまざまな特徴があると思います。たとえば、BSDls
ツールはFreeBSD、OpenBSD、およびNetBSD(またはmacOS)では同じツールではありません。
「異なる機能」とは、さまざまな方法で動作することを意味します(ls
FreeBSDのBSDツールはこのフラグを受け入れることができますが、OpenBSDでは-A
そうではありません)。-A
しかし、GNUツールもさまざまな形で提供されていますか?たとえば、GNUls
とbash
GNUnano
ツールはすべてのオペレーティングシステムでまったく同じように機能しますか?
答え1
私が言ったようにhttps://unix.stackexchange.com/a/506429/5132、Linuxベースのオペレーティングシステムは、必ずしも同じプログラムを使用するわけではありません。かなり基本的ないくつかのプログラムにはいくつかの実装があることが知られています。
これには以下が含まれますが、これらに限定されません。
ifconfig
2つの実装があり、そのうちの1つは次のとおりです。GNU inetutilsもう一つが入っています。NET-3ネットワークツール。今は3つありますが、3つ目は私のものです。 (望むよりhttps://unix.stackexchange.com/a/504084/5132.)su
2つの実装があり、そのうちの1つは次のとおりです。ユーティリティLinuxもう一つが入っています。影。 Debian は 2018 年に 1 つから別のものに切り替え、この WWW サイトのいくつかの古い質問と回答に誤りをもたらしました。 (望むよりhttps://unix.stackexchange.com/a/460769/5132たとえば、su vs su - (Debian で): PATH はなぜ同じですか?".)- このコマンドを取得できる場所は数多くあります(実際にはDebian / Ubuntuでは4つ)
mailx
:GNU Mailutils、BSD mailx、NMH、およびs-nail。違いはコマンドライン構文にあります。 (望むよりhttps://unix.stackexchange.com/a/489510/5132.) vi
異なる場合がある Heirloom/Traditionalvi
(vi
Arch Linuxのデフォルトバージョンですが、Debian Linuxではまったくパッケージとして使用できないオリジナルのBill Joyバージョン)、互換モードVIMのBram MoolenaarのSTEVIE派生、Keith Bosticのバージョンも異なる場合があります。 VIMはElvisのnviから派生した。
これはタイプ間の違いではありません。牛に似た一種の栄養厳密に言えばツールです。 Linuxベースのオペレーティングシステムのツールいいえ完全にGNUプロジェクトからのものです。これらのオペレーティングシステムには、GNUではなくツールセットのツールもあります。
また、Linuxベースのオペレーティングシステムは機能面でも異なります。同じツールセット、また。それらはすべて自己変形ローカル修正セットで作られました。いくつかの例:
- systemdは、LinuxベースのオペレーティングシステムのDebianおよびFedoraファミリとは異なり、Arch Linuxで構築されました。特に、van Smoorenburg
rc
互換性メカニズムをほとんど(すべてではない)除外する構成オプションで構築されています。 (望むよりhttps://unix.stackexchange.com/a/389298/5132、https://unix.stackexchange.com/a/451966/5132とhttps://unix.stackexchange.com/a/471871/5132.) - Debian Linux では、GNU coreutils は次のようになります。
--ips
このコマンドには追加のオプションがありますwho
。 (望むよりhttps://unix.stackexchange.com/a/24279/5132.)conv=notrunc
いつdd
コマンドを発行するかを指示しますoflag=append
。
- Debian Linuxでは、Bourne Againシェルには、
clear_console
Greg Wooledge(et al。)がxyr画面を消去するように強制する多くのメカニズムの1つである(誤ってパッケージ化された)コマンドが付属しています。 (望むよりhttps://unix.stackexchange.com/a/451150/5132.) grotty
Debian LinuxおよびArch Linuxでは、ISO 8613-6:1994およびECMA-48:1976(1968年の(非常に)古いTTY-37制御シーケンスの代わりに)から「新しい」端末制御シーケンスをエクスポートする基本機能が無効になりました。 。場合によっては、Arch Linuxでは、単一引用符とハイフンがLatin-1アポストロフィとマイナス記号に変換されることがあります。- さまざまなLinuxベースのオペレーティングシステムは、ncursesが「広い」か「狭い」かによって異なります。
nano
Debian Linuxでは、GNUの「小さい」バージョンはDebianパッチのためにメニューレイアウトが異なります。- Arch Linuxでは、Heirloom / Traditional
vi
は元のバージョンとは異なるさまざまな方法でデフォルトでパッチされています。これには、ファイルを保存するための別のディレクトリと、Bill Joyが彼のADMにはなかったキーボードキー編集のサポートが含まれていました。このキーは3Aで使用されます。端末(例、PgUpおよびPgDn、参照https://vi.stackexchange.com/q/9313/19613)。 - さまざまなLinuxベースのオペレーティングシステムは、さまざまな方法で即座にOpenSSHを構成します。たとえば、Arch Linuxはシャットダウン
ChallengeResponseAuthentication
してからオフにPrintMotd
し、UsePAM
再びオンにします。 Debian Linux 対応幅広いパッチセット。
など。
追加読書
- スヴェングクス(2017-08-07)。 」
vi
クローンとホームページ」。vi
ページ数。 guckes.net。 - ジョナサンデボインポラード(2016)。nosh ユーザー空間仮想端末のマンページのイタリック体と色。スナックパック。
答え2
このls
ユーティリティは-A
BSDのすべてのオプションを受け入れます。これは標準のPOSIXオプションです。
デフォルトのBSDツールは各BSDプロジェクトで独立して開発および維持されていますが、いくつかの実装の詳細は時々プロジェクト間で共有されます(たとえば、バグを修正したり、新しい機能を実装したり、時にはGNU拡張を実装したりするなど)。
nano
coreutils、editor、bash
shell(3つの個別プロジェクト)などのGNUツールは、独自のプロジェクトとして個別に開発および維持されています。したがって、他の実装が現れる可能性はほとんどありません。
しかし、2つの間にはまだ違いがあります。これらのツールのリリースbash
そして、通常、あるUnixのシェルが他のUnixのシェルとまったく同じであるとは期待できません。また、すべての機能を完全にサポートしていない、または通常Linuxで実装されていない機能をサポートしていない一部の環境では、修正されたGNUツールのバリエーションが表示されることがあります。
最も明確な例はbash
シェルバージョン3.2に付属のmacOSで、最新バージョンは5.0.xです。
何が期待できるかしなければならない期待は基本ユーティリティです。標準POSIXユーティリティGNU、BSD、またはユーティリティの他の実装にかかわらず、POSIX規格で指定されているとおりに動作する必要があります。繰り返しますが、これは本当ですいいえほとんどのGNU coreutilsユーティリティでサポートされている「長いオプション」など、これらのユーティリティの非標準拡張は、他の実装でサポートまたはサポートされていない可能性があり、ユーティリティのバージョンによって異なる動作をする可能性があります。