Existe uma ferramenta para resumir o que todos os comandos fazem?

8

Então, eu entendo que há man páginas para obter a documentação quando a internet está indisponível, ou quando você precisa de usos avançados, mas e se eu estiver offline e nem souber de qual ferramenta eu preciso para o trabalho? Existe um comando que me permite ver cada programa / comando e uma breve descrição?

    
por OneChillDude 19.05.2014 / 16:37

4 respostas

4

Você pode usar o bash (1) incorporado em compgen

  • compgen -c listará todos os comandos que você pode executar.
  • compgen -a listará todos os aliases que você pode executar.
  • compgen -b listará todos os built-ins que você pode executar.
  • compgen -k listará todas as palavras-chave que você pode executar.
  • compgen -A function listará todas as funções que você pode executar.
  • compgen -A function -abck listará todos os itens acima de uma só vez.

O comando acima lista todos os comandos disponíveis para um usuário com base em seu conjunto de privilégios. Eu desativei a rede e testei o comando acima e ele funciona mesmo quando desativado. No entanto, para breve descrição, tanto quanto eu posso dizer, uma vez que você recebe um comando, você pode ver a página man.

Alguns outros comandos que podem ser usados para visualizar a descrição sobre um comando são

apropos
whatis
less
groff

Referências

link

    
por 19.05.2014 / 17:03
9

Em geral: não, alguns programas vêm sem documentação.

No entanto, apropos pode ser exatamente o que você precisa.

Por exemplo apropos ssh irá listar as man pages relacionadas ao ssh, no meu caso:

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

Você pode ver algumas páginas aparecerem mais de uma vez, o motivo é que rsh slogin e ssh têm a mesma página do manual. Também há (como de costume) falsos positivos.

    
por 19.05.2014 / 17:03
3

Você pode ler uma breve descrição de muitos comandos usando 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

E você pode pedir vários comandos:

$ 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

Portanto, você pode tentar gerar uma lista de descrições de todos os comandos combinando whatis com compgen :

$ whatis $(compgen -c)
    
por 20.05.2014 / 08:47
2

Em bash , você pode começar com uma simples invocação help do prompt para ter uma lista de comandos integrada e depois refinar com help commandname , man commandname e man -k commandname (o último a estender a pesquisa para os relacionados).

Você pode achar útil ler até info coreutils e info . (não apenas em bash )

No final de man pages (e info too) para cada comando, há uma lista de outros comandos relacionados após o título SEE ALSO . Um bom ponto de partida para expandir sua pesquisa.

    
por 25.05.2014 / 11:30