すべての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など)を使用してスクリプトをパッケージ化し、必要な他のプログラムやパッケージへの依存関係を宣言することです。これは少しの作業が必要ですが、ユーザーに何が欠けているかだけでなく、どのパッケージをインストールする必要があるかを知らせるより使いやすいエラーメッセージが表示されることを意味します。
追加情報:
答え2
非組み込みLinuxシステムでは、通常、ほとんどのGNUユーティリティを使用できます。
...を加えたユーティリティLinuxスイートルームとプロセスファミリー。これは/bin/sh
常にbashではなく、パフォーマンスが低下するシェルの多くのフォークの1つです。禁煙健康増進協会。
これLinux標準ライブラリすべての標準準拠システムで期待される機能を含む共通ユーティリティセットを定義します。また、ほとんどを期待することができますPOSIX 指定ユーティリティ。 1つの注目すべき例外は、多くのディストリビューションがpax
基本インストールの一部ではないことです。
作業を簡単にしたい場合は、パッケージのインストールを依頼してくださいlsb_release
。多くのディストリビューションには、LSBに必要なすべての依存関係を抽出するパッケージがあります。
組み込みシステムでは何でも可能です。組み込みLinuxシステムは通常実行されます。忙しい箱しかし、多くのユーティリティと機能はオプションなので、入手できるものはほとんどありません。
答え3
すべてではありませんが、ほとんどのLinuxディストリビューションには一連のコマンドがあり、Unixディストリビューションでもこれを提供します。これらは以下によって作られるPOSIX規格。
参照するほとんどのコマンド(cd
、、、、、、など)mkdir
がここに属します。例外はWhiteWinterWolfの正しいコメントです。ls
echo
grep
sed
awk
ping