すべてのLinuxシステムで使用できる標準コマンドが何であるかを知りたいです。
たとえば、debian/ubuntu/redhat/suse/arch/slackwareなどがある場合は、常に次のコマンドを見つけることができます。
cd、mkdir、ls、echo、grep、sed、awk、pingなど
上記のコマンドのいくつかはシェルに組み込まれていますが、他のコマンドはそうではありませんが、まだ常に存在することを知っています(これまでの知識と経験によると)。
一方、gawk、parted、Tracerouteなどのコマンドは、他のLinuxディストリビューションにデフォルトでインストールされません。
さまざまなウェブ検索を行いましたが、正確な回答が見つかりませんでした。
目的は、スクリプトで使用されているコマンドがシステムで利用可能であるかどうか、いくつかの完全性チェックを実行するシェルスクリプトを作成することです。そうでない場合は、ユーザーに必要なバイナリをインストールするように求められます。
ベストアンサー1
残念ながら、どんなものでも利用できるという保証はありません。
しかし、ほとんどのシステムではGNUコアツール。これだけでも約105個のコマンドが提供されます。おそらく組み込みシステムでない限り、おそらくこれに頼ることができます。忙しい箱代わりに。
また、信じることができます強く打つ、予約されたこと、GNU findutils、GNU grep、アーカイブ、IP ルート 2、アイチルス、人データベース、モジュール初期化ツール、ネットワークツール、パスワード(パスワードまたは影)、プロセス、アスファルトとユーティリティLinux。
一部のプログラムはリリースごとに若干の違いがある場合があります。たとえば、次のようになり/usr/bin/awk
ます。愚かなまたは首。 /bin/sh
可能スプリントまたはPOSIXモードの配布。一部の古いシステム/usr/bin/host
ではバインディングバージョンだから、使用する方が良い破棄。
いくつかの標準を探している場合は、Linux標準ライブラリでいくつかの標準を定義します。一般的な手順ただし、すべてのディストリビューションが標準に準拠していると主張するわけではなく、一部のディストリビューションはオプションのLSB互換パッケージがインストールされている場合にのみそうします。例えば、一部のシステムlsb_release
デフォルトのインストールには含まれていないことがわかりました。
さらに、POSIX 標準化されたコマンドのリスト役に立つかもしれません。
問題を解決するもう1つの方法は、各ディストリビューションのパッケージングツール(Red HatのRPM、DebianのDEBなど)を使用してスクリプトをパッケージ化し、必要な他のプログラムやパッケージへの依存関係を宣言することです。これは少しの作業が必要ですが、ユーザーに何が欠けているかだけでなく、どのパッケージをインストールする必要があるかを知らせるより使いやすいエラーメッセージが表示されることを意味します。
追加情報: