encontra comandos com man pages

3

usamos man foo para pesquisar sobre o comando foo . Saber o que é e qual é a sua tarefa e encontrar todos os switches.

Mas o ponto é quando você quer fazer foo e não sabe qual é o comando para isso. Desejo encontrar entre as man pages para saber qual comando relacionado a isso?

Minha pergunta:

Existe alguma maneira de adivinhar o que é comando apropriado para sua necessidade sem acesso a internet e googling? e encontrá-los apenas pelo homem no terminal?

    
por Mohammad Reza Rezwani 16.07.2014 / 07:37

2 respostas

4

Não há um método de correção para encontrar um comando. Mas man -k pode ajudá-lo um pouco.

De acordo com man man

man -k printf
       Search the short descriptions and manual page names for the keyword
       printf  as  regular expression.  Print out any matches.  Equivalent
       to apropos -r printf.

Por exemplo, se eu quiser procurar por um sistema de controle de versão, posso tentar

man -k 'version control'|grep ' (1)'

que mostra

bzr (1)              - Bazaar next-generation distributed version control

Mas não foi mostrado git , porque a descrição é curta

git (1)              - the stupid content tracker

que não corresponde ao regexp "controle de versão".

    
por Registered User 16.07.2014 / 08:05
4

Se você sabe 'sorta' ao qual seu comando está relacionado, você pode usar o comando apropos :

xenon-lornix:~> apropos change directory

alphasort (3)        - scan a directory for matching entries
apt-listchanges (1)  - Show new changelog entries from Debian package archives
avahi-set-host-name (1) - Change mDNS host name
basename (1)         - strip directory and suffix from filenames
basename (1posix)    - return non-directory portion of a pathname
besside-ng-crawler (1) - filter EAPOL frames from a directory of capture files.
bindtextdomain (3)   - set directory containing message catalogs
BN_swap (3ssl)       - exchange BIGNUMs
brk (2)              - change data segment size
can_change_color (3ncurses) - curses color manipulation routines
can_change_color_sp (3ncurses) - curses screen-pointer extension
cd (1posix)          - change the working directory
chacl (1)            - change the access control list of a file or directory
chage (1)            - change user password expiry information
chattr (1)           - change file attributes on a Linux file system
chcon (1)            - change file security context
chdir (2)            - change working directory
chdir (3posix)       - change working directory
... and 400+ more ...

Você recebeu muitos retornos, pois apropos é padronizado para o modo ou ... então, qualquer coisa que corresponda a change OU directory será retornada. Ufa! Muitos! (Embora eu possa ver o que queremos aqui)

xenon-lornix:~> apropos --and change directory

cd (1posix)          - change the working directory
chacl (1)            - change the access control list of a file or directory
chdir (2)            - change working directory
chdir (3posix)       - change working directory
chroot (2)           - change root directory
fchdir (2)           - change working directory
fchdir (3posix)      - change working directory
futimesat (2)        - change timestamps of a file relative to a directory file descriptor
git-stash (1)        - Stash the changes in a dirty working directory away
Linux::Inotify2 (3pm) - scalable directory/file change notification
mcd (1)              - change MSDOS directory
revpath (1)          - generate a relative path that can be used to undo a change-directory

Desta vez, só obtivemos 12 resultados, muito melhor! E você pode ver o comando cd (1posix) , que pode ser útil. man cd ou man 1posix cd mostrar-lhe-á a página do manual. E se você usar o bash shell (ou zsh ou qualquer outra coisa ...), sempre verifique suas páginas de manual também. man bash e procurando por change , você chegará perto da descrição do comando cd embutido no bash. (continue procurando! Está aí!)

apropos obtém informações de um banco de dados construído a cada noite (cronjob), ele realmente procura apenas as seções name e description das páginas man. Se você REALMENTE quiser procurar uma palavra-chave, use man -K (K maiúscula):

xenon-lornix:~> man -K M_CHECK_ACTION

(should bring up the man page for mallopt(3))

Lembre-se de que este é um toque físico BRUTE-FORCE e pesquisa na página do manual CADA em seu sistema. Isso pode levar um tempo! Muito mais rápido depois que tudo foi lido e armazenado em cache.

Quer apenas uma lista de man pages com a palavra-chave específica?

xenon-lornix:~> man -K -w MALLOC_CHECK_

/usr/share/man/man3/malloc.3.gz
/usr/share/man/man3/malloc_get_state.3.gz
/usr/share/man/man3/mallopt.3.gz
/usr/share/man/man3/mcheck.3.gz

Encontrado em algumas páginas. (Capital Kay, ovelha negra em minúsculas)

Dê uma olhada na man página de manual também, algumas variações interessantes.

    
por lornix 16.07.2014 / 08:16