GNU/Linux >> Linux の 問題 >  >> Linux

私が見ているマニュアルページが正しいかどうかを知る方法は?

たとえば、

[fakename]$ type echo
echo is a shell builtin

しかし、man echo echoのGNUcoreutilsバージョンを教えてください 。私が見ているマニュアルページが正しいかどうかを判断する最も簡単な方法は何ですか。つまり、直接呼び出した場合に得られるユーティリティのページです。

承認された回答:

本当にそうではありません。マニュアルページの外部の知識がないわけではありません。

echoの場合 (およびprintf 、およびtest 、…)、多くの場合、シェルビルトインであるため、それを理解し、シェルのドキュメントを読む必要があります。 (そしてecho 実装によって悪名高い違いがある場合は、printfを使用してください 代わりに。)

ほとんどの場合、すべてではないにしても、type command 、例: type echo echo is a shell builtinを出力します 。 (type POSIXで指定されていますが、例: fishもそれをサポートしますが、POSIXyではありません。)Bashでは、man bashを読みます。 、オンラインドキュメント、または組み込みコマンドhelpを使用します (これはBashに固有であり、存在することを知っておく必要があります)。

コマンドがない場合でも 組み込みの場合、同じ名前のコマンドが複数ある可能性があります。rename 有名な例です(Debian / Ubuntuの名前変更ユーティリティがCentOSなどの他のディストリビューションのものと異なるのはなぜですか?を参照してください)。これで、OSに実際にインストールされたユーティリティの正しいマニュアルページが表示されます。 Debianでは、「alternatives」システムは、コマンドのalternativesが変更された場合にも、対応するマニュアルページを更新します。ただし、オンラインのマニュアルページを読む場合は、そのことに注意する必要があります。

多くのユーティリティには、--versionのようなコマンドラインオプションがあります これは、そのコマンドがどのような実装であるかを教えてくれるかもしれません。 (しかし、ほとんどすべてのユーティリティがそれを持っているわけではありません。元々はGNUismだと思うので、GNUユーティリティと、たまたまカスタムをコピーしたものがあります。)renameの場合 、たまたま2つの異なる実装を区別するのに役立ちます:

debian$ rename --version
/usr/bin/rename using File::Rename version 0.20
centos$ rename --version
rename (util-linux-ng 2.17.2)

さらに、システムには、通常はユーティリティの動作を変更するために、ユーティリティと同じ名前のエイリアスまたは関数が含まれている場合があります。その場合、マニュアルページに表示されるデフォルトが適用されない可能性があります。 lsのエイリアス -iを追加するエイリアスと同様に一般的です rmへ またはmv 。ただし、type foo fooかどうかも教えてくれます エイリアスまたは関数です。

関連:bashスクリプトでpgrep出力を変数に正しく取得できないのはなぜですか?
Linux
  1. マニュアルページの数字はどういう意味ですか?

  2. ある端末の標準を別の端末にミラーリングするにはどうすればよいですか?

  3. Bash スクリプトのスクリプト ファイル名を知るにはどうすればよいですか?

  1. Linux man page データベースにエントリを追加する方法

  2. cd コマンドの man ページがない

  3. ファイルの内容を再帰的に表示するには?

  1. 「errno」の意味を知る方法は?

  2. 使用している Fedora のバージョンを確認するにはどうすればよいですか?

  3. インターネット接続を共有するには?