例えば、
[fakename]$ type echo
echo is a shell builtin
しかし、man echo
私はGNU coreutilsのバージョンを受け取りましたecho
。私が見ているマニュアルページが正しいかどうか(つまり、直接呼び出すことで取得できるユーティリティ)を知る最も簡単な方法は何ですか?
答え1
あなたは本当に知りません。マニュアルページ以上の知識がなければ。
echo
(and printf
、and、...)の場合、通常はtest
シェルが組み込まれているので、それを知ってシェルのドキュメントを読む必要があります。
(そしてecho
実装ごとに異なることが知られています。printf
代わりに使用.)
ほとんどの(すべてではありませんが)シェルでは、たとえばwill printを使用して何かが組み込まれていることを確認できます。 (type command
type echo
echo is a shell builtin
type
POSIXで指定しかし、例えば魚POSIXyではありませんが、サポートされています。 )Bashでは、次のように読み取ることができますman bash
。オンライン文書、または使用組み込みコマンドhelp
(これはBashに固有のものであり、これが存在することを知る必要があります)。
命令があってもいいえ組み込みコマンドには、同じ名前の複数のコマンドがあります。rename
これが有名な例です(参照:Debian / Ubuntuの名前変更ユーティリティがCentOSなどの他のディストリビューションの名前変更ユーティリティと異なるのはなぜですか?)。オペレーティングシステムには、Debianなどの実際にインストールされているユーティリティの正しいマニュアルページが必要です。「代替」システムコマンド置換が変更されると、対応するマニュアルページも更新されます。しかし、もしあなたが読むならオンラインマニュアルページ、この点を知っておく必要があります。
--version
多くのユーティリティには、コマンドがどの実装であるかを示すコマンドラインオプションがあります。 (ただし、ほとんどすべてのユーティリティにこの機能があるわけではありません。もともとはGNUismだったと思いますので、GNUユーティリティとカスタムコピーに発生したユーティリティにはこの機能があります。rename
)
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
答え2
組み込みコマンドのマニュアルが必要な場合は、シェルマニュアルを見てください。コマンドは他のすべての組み込みコマンドとともに文書化されます(または、少なくとも組み込みコマンド文書がある場所への参照が提供されます)。
bash
:man bash
またはhelp echo
インタラクティブシェルからbash
。zsh
:(man zsh
しばらく読んだ後、man zshbuiltin
)fish
:(man fish
しばらく読んだ後、help echo
)
あなたが得るman echo
文書マニュアル/bin/echo
は外部 echo
注文する。このコマンドは、echo
明示的なパスなしで使用する場合は使用されません。
答え3
フルパス(を使用して取得できます)を提供することで、which echo
ビシェルビルドを呼び出すことができるはずです。シェルの内部には別のマニュアルページはありません。これらの事項に関するドキュメントを表示するには、シェルのマニュアルページを探す必要があります。上記の「type」コマンドは、何を得るかを決定するための最良の方法です。
答え4
man
次の部分に分けられます。
- 一般的な部分
- システムコール
- ライブラリ機能
- ファイル形式
- ゲームとスクリーンセーバー
- 様々な種類
- システム管理
探している内容によっては、man
混乱を避けるために次のように呼び出すことができますman section command
。
より多くの情報を見るために実際に使用することができます。man man