man
インターネットが利用できない場合、または高度な使用法が必要な場合にドキュメントを取得するためのページがあることを理解していますが、オフラインで仕事に必要なツールがわからない場合はどうなりますか?各プログラム/コマンドと短い説明を表示できるコマンドはありますか?
man
インターネットが利用できない場合、または高度な使用法が必要な場合にドキュメントを取得するためのページがあることを理解していますが、オフラインで仕事に必要なツールがわからない場合はどうなりますか?各プログラム/コマンドと短い説明を表示できるコマンドはありますか?
回答:
組み込みのbash(1)を使用できます compgen
compgen -c
実行できるすべてのコマンドが一覧表示されます。compgen -a
実行できるすべてのエイリアスが一覧表示されます。compgen -b
実行できるすべての組み込みをリストします。compgen -k
実行できるすべてのキーワードがリストされます。compgen -A function
実行できるすべての関数がリストされます。compgen -A function -abck
上記のすべてを一度にリストします。上記のコマンドは、特権セットに基づいてユーザーが使用できるすべてのコマンドをリストします。ネットワークを無効にして上記のコマンドをテストしましたが、無効にしても機能します。ただし、簡単に説明すると、私が知る限り、コマンドを取得すると、manページを表示できます。
コマンドの説明を表示するために使用できる他のいくつかのコマンドは、
apropos
whatis
less
groff
参考文献
apropos -s1
各コマンドの機能を1行で説明しているので、より良い答えのように見えます。この答えが貢献するのは、エイリアス、関数などのリストですが、それらの説明はありませんが、IMOの使用は制限されています。
一般的に:いいえ、一部のプログラムにはドキュメントがありません。
ただし、apropos
必要なものだけかもしれません。
たとえばapropos ssh
、私の場合、sshに関連するmanページを一覧表示します。
authorized_keys (5) - OpenSSH SSH daemon
git-shell (1) - Restricted login shell for Git-only SSH access
rlogin (1) - OpenSSH SSH client (remote login program)
rsh (1) - OpenSSH SSH client (remote login program)
slogin (1) - OpenSSH SSH client (remote login program)
ssh (1) - OpenSSH SSH client (remote login program)
ssh-add (1) - adds private key identities to the authentication agent
ssh-agent (1) - authentication agent
ssh-argv0 (1) - replaces the old ssh command-name as hostname handling
ssh-copy-id (1) - use locally available keys to authorise logins on a remote machine
ssh-keygen (1) - authentication key generation, management and conversion
ssh-keyscan (1) - gather ssh public keys
ssh-keysign (8) - ssh helper program for host-based authentication
ssh-pkcs11-helper (8) - ssh-agent helper program for PKCS#11 support
ssh_config (5) - OpenSSH SSH client configuration files
sshd (8) - OpenSSH SSH daemon
sshd_config (5) - OpenSSH SSH daemon configuration file
XAllocClassHint (3) - allocate class hints structure and set or read a window's WM_CLASS property
XClassHint (3) - allocate class hints structure and set or read a window's WM_CLASS property
XGetClassHint (3) - allocate class hints structure and set or read a window's WM_CLASS property
XSetClassHint (3) - allocate class hints structure and set or read a window's WM_CLASS property
XtIsShell (3) - obtain and verify a widget's class
あなたは理由がということで、一部のページが複数回表示され見ることができるrsh
slogin
とssh
同じmanページを持っています。また、(いつものように)誤検知があります。
apropos -s1
に追加してください。これにより、man
セクション1のすべてのコマンドと、OPが望んでいるように見えるコマンドのみが取得されます。
以下を使用して、多くのコマンドの簡単な説明を読むことができますwhatis
。
$ whatis pwd
pwd (1p) - return working directory name
pwd (1) - print name of current/working directory
pwd (n) - Return the absolute path of the current working directory
そして、いくつかのコマンドを要求することができます:
$ whatis pwd ls ps
pwd (1p) - return working directory name
pwd (1) - print name of current/working directory
pwd (n) - Return the absolute path of the current working directory
ls (1p) - list directory contents
ls (1) - list directory contents
ps (1) - report a snapshot of the current processes.
ps (1p) - report process status
したがって、と組み合わせることwhatis
で、すべてのコマンドの説明のリストを生成することができますcompgen
。
$ whatis $(compgen -c)
ping
まだ実行可能としてリストされていると思いますが、それはあまり役に立ちません。また、これはユーザーの現在のに基づいています$PATH
か?つまり、コマンドが検索パスとして指定されたディレクトリの1つにない場合、コマンドは表示されませんか?