コマンドの使用への参照を提供するために、一部のコマンドはフラグのようなものに依存し、manpages
他のコマンドはフラグのようなものに依存するのはなぜですか?--help
新しいものではありません。一般に、2つの間に範囲の違いがあります。文書コマンドとコマンド使用法の概要。後者は一般に前者のサブセットである。しかし、ほとんどのコマンドとユーティリティにはマンページがありますが、要約セクションの形式には違いがあり、これを試してみると非常に実用的な意味があります。タブレットそのような情報。他の場合には、strings
コマンドが文書化されていないように見えるときにユーティリティの手がかりを見つけることもできます。
私はこれに関する私のコマンドに興味がありますQNXプラットフォームと発見use
コマンド1 は使用情報を表示します。説明したようにusemsg
、フレームワークには、コンパイル後のコマンドを使用してアクセスできるユーティリティソースの標準使用履歴設定が含まれており、use
基本機能などをラップすることもできます。簡単にできるのでとても便利です。
use -d dir >>file
/base
デフォルトでは、システム内の/proc/boot
すべてのコマンドのすべての使用法を抽出します。
だから少しソースを見ました。GNU coreutils lsそしてFreeBSDs前者が使用情報を一部に入れる場所で同様の作業を行っていることを確認してください。使用法名前付き機能(--help
私の考えには)そして後者は全くどこにも置かないようです(?)。
- この解決策(
use
)があなたが見つけた典型的な解決策ですか?商用UNIXコマンドの使用法参照をインタラクティブにレンダリングしますか? - POSIX / SUSは、(指定するのではなく)コマンドでコマンド使用法参照を提示/実装することを推奨または提案しますか?シンボル~のためシェルユーティリティ)?
1.use
コマンド:
use
Print a usage message (QNX Neutrino)
Syntax:
use [-aeis] [-d directory] [-f filelist] files
Options:
-a
Extract all usage information from the load module in its source form, suitable for piping into usemsg.
-d directory
Recursively display information for all files under directory.
-e
Include only ELF files.
-f filelist
Read a list of files, one per line, from the specified filelist file, and display information for each.
-i
Display build properties about a load module.
-s
Display the version numbers of the source used in the executable.
files
One or more executable load modules or shell scripts that contain usage messages.
答え1
商用ユニスは通常、マニュアルページでのみ使用情報を提供します。コマンド自体に使用法情報を表示させることは、従来のUnix機能ではありません(説明なしで使用法エラーでサポートされているオプションのリストを表示することを除く)。 POSIXとその親戚はそのようなことについて話していません。
使用の概要を表示するオプションがあります--help
(通常、オプションのリスト、1行に1つ、オプションごとに最大約60文字の説明を含む)。GNU規格。私が知る限り、このルールはGNUプロジェクトのマルチ文字オプション名の二重ダッシュルールの一部として始まりました。単一のダッシュとサポートを含む複数の文字オプション名を使用するX11ユーティリティなどの他のユーティリティがあります。-help
どちらが先に出たのかわかりません。
このuse
コマンドはQNXのものです。
答え2
あなたの例ではGNUツールを参照しました。これはLinuxや他の多くのプラットフォームで利用可能であり、文書化の点でやや珍しいです。
実際、GNUツールは〜らしい持つ3つのレベルますますインタラクティブな参照:
--help
一般的なコマンドオプション - 短い使い方一般化する,
man
- クラシックマニュアルページ、「クイックリファレンス」、および
info
- 詳細なGNU関連マニュアル - 完全、公式文書。
多くの場合、人々はマニュアルページを基本文書として使用します。さらに、GNU情報文書がより詳細で正式であることを知っています。
好みによって少しずつ異なりますが、次のような使用パターンが非常に一般的だと思います。
man foo
使用先基本、- すべてのオプションの説明とともに
- たまにはちょっと恥ずかしい感じがする時もありますが十分です
- 時々使用さ
foo --help
れる小さいオプション名がわからないなどの質問、
- 短い要約を含む簡潔なレイアウト
- そして
info foo
...ほとんどの使用いいえ。- これにより、より多くの状況固有の詳細と他のコマンドへのリンクを提供できます。
- しかし、誰もemacsスタイルの情報ブラウザUIにアクセスできないので、確かにわかりません。
- その他のウェブベースのドキュメント、
- マニュアルページがとても簡潔なようです。
しかし、問題があります。
最も一般的に使用されるコマンドの場合は、次から始めます。パックcoreutils
、、、、、そしてもっと、ls
cp
mkdir
csplit
マニュアルページにはman foo
まったく同じ情報が含まれていますfoo --help
。 (1)
これは意味する「真の文書」、実際にはマニュアルページにはありません。私たちが思ったように...
実際にはマニュアルページにあります。GNUについて私たちにファイルを送信してください読まなかった!
man
これで、ページと(下部)を見ると、--help
マニュアルページが「より詳細」に見えるため、内容が同じであることに気付くことは困難です。これは、テキストレイアウト密度が2つのバリエーション間で大きく異なるためです。--help
非常に緩い間隔に比べて極度の圧縮ですman
。
直接比較してみると本当に衝撃的です。
ls --help | less
man ls | less
info --subnodes ls | less
(このオプションは--subnodes
比較のためにページを線形にレンダリングします。info
ハイパーテキスト自体を表示し、HTMLに似た文書間をリンクします。このman
コマンドには、less
比較を容易にするために強制的に比色出力が含まれます。)
関連ヒント:
ターミナル用やGUI用 info
などの基本情報ビューアのより便利な代替方法があります。使用例は次のとおりです。または、またはURL列にあります。pinfo
konqueror
pinfo ls
konqueror info:ls
info:ls
konqueror
として特別な場合,文書内部コマンドGNUのbash
、
呼び出されたシェル組み込み関数、コマンドでアクセスできますhelp
。
たとえば、コマンドラインでbash
次のことを試してみてください。
help cd
1)幸いにも@PádraigBradyは彼の答えでこれを指摘しました。
答え3
GNU coreutils のマニュアルページは $cmd --help から生成されます。
また、bash組み込みコマンドは少なくとも--helpをサポートしません。そこで例えば使用する必要がありますhelp umask
。 POSIXはこれを許可し、kshは少なくともそれを使用しますumask --help
。最近では、bashもこの構文を受け入れることができると提案されています。