terça-feira, 10 de junho de 2014

Conhecendo um pouco mais sobre o comando man

Muitas pessoas desconhecem o uso do comando man. Por mais simples que parece, o seu uso pode salvar o usuário em uma situação que não existe uma conexão ativa com a internet.
Trata-se do manual do sistema operacional, e com ele pode-se encontrar todos ou quase todos os comandos existes no sistema. Por padrão as páginas do manual Linux encontram-se no diretório /usr/share/man. Para facilitar seu uso e entendimento, o manual é dividido em seções que vão de 1 a 9. São elas:
  1. Programas executáveis ou comandos do Shell.
  2. Chamadas do sistema – rotinas do kernel (mais utilizado por SysAdmin’s).
  3. Funções de bibliotecas – documentação de bibliotecas do sistema (bastante utilizado por desenvolvedores).
  4. Arquivos especiais – arquivos usados dentro do diretório /dev.
  5. Formato e convenções de arquivos – contém o formato de alguns arquivos como o /etc/passwd.
  6. Jogos – dicas e comandos de jogos existentes no sistema.
  7. Miscelânea de pacotes – documentação relacionada a pacotes, protocolos etc.
  8. Comandos administrativos – comandos utilizados pelo root.
  9. Rotinas do Kernel.

Alguns parâmetros do comando man.
Uso man [opção] comando/arquivo/expressão
  • sem parâmetros – abre a página do manual relacionada ao comando indicado.
Exemplo: Abre a página do manual relacionada ao comando ls.
$ man ls

-k – mostra referências no manual de acordo com a expressão usada no argumento. Obtém-se um resultado semelhante utilizandoo comando whatis.
$ man -k ip
ip (7) - Implementação do protocolo IPv4 em Linux
ip (8) - show / manipulate routing, devices, policy routing and tunnels

-f – mostra descrições do comando em suas respectivas seções do manual. Obtém-se um resultado semelhante utilizando o comando apropos.
$ man -f hostname
freehostent (3) - get network hostnames and addresses
gethostname (2) - get/set hostname
getipnodebyaddr (3) - get network hostnames and addresses
getipnodebyname (3) - get network hostnames and addresses
hostname (1) - show or set the systems host name
hostname (7) - hostname resolution description
hosts (5) - static table lookup for hostnames
logresolve (1) - Resolve IP-addresses to hostnames in Apache log files
sethostname (2) - get/set hostname
ssh-argv0 (1) - replaces the old ssh command-name as hostname handling
Sys::Hostname::Long (3pm) - Try every conceivable way to get full hostname

É possível deixar as páginas do manual Linux em português usando o comando:
# apt-get install manpages-pt
*Comando válido apenas para distribuições derivadas do Debian.
As vezes é necessário atualizar as páginas do manual, para esse fim, usa-se o comando catman. Seu tempo de execução pode demorar alguns minutos dependendo do hardware utilizado.

Caso ainda haja dúvidas quanto ao uso do man, existe também o manual do próprio manual. Estranho não é mesmo? Mas no GNU/Linux existe um manual de como usar o manual, nele você encontrará todas essas informações de forma detalhada.
$ man man

Além do man, existem outras formas de obter-se ajuda dentro do próprio Linux. O diretório /usr/share/doc, contém grande parte da documentação dos principais pacotes instalados no sistema. Pode-se acessá-los a partir do comando info.

$ info mkdir
File: coreutils.info, Node: mkdir invocation, Next: mkfifo invocation, Prev: ln invocation, Up: Special file types
12.3 `mkdir': Make directories
==============================
`mkdir' creates directories with the specified names. Synopsis:
mkdir [OPTION]... NAME...
.
.
.

E por último mas não menos importante o parâmetro –help. É usado como consulta rápida à um determinado comando em que há dúvidas a respeito de sua sintaxe.

$ locate --help
Uso: locate [OPÇÃO]... [PADRÃO]...
Busca por entradas na base de dados do mlocate.
-b, --basename corresponde somente ao nome base no caminho
-c, --count somente mostra o número de correspondências localizadas
-d, --database DBPATH usar DBPATH ao invés da base de dados padrão (que é /var/lib/mlocate/mlocate.db)
-e, --existing mostrar somente as entradas de arquivos existentes
-L, --follow seguir ligação simbólica quando verificar a existência arquivos (padrão)
-h, --help mostra essa ajuda
-i, --ignore-case ignora maiúsculas e minúsculas na pesquisa
-l, --limit, -n LIMIT limita a saída (ou contagem) ao número indicado
-m, --mmap ignorado, para compatibilidade regressiva
-P, --nofollow, -H não seguir ligações simbólicas quando verificar a existência de arquivos
-0, --null separar as entradas com NUL na saída
-S, --statistics não pesquisar pelas entradas, mostrar as estatísticas sobre as base de dados utilizada
-q, --quiet reportar mensagens de erro sobre leitura nas base de dados
-r, --regexp REGEXP pesquisar por regex básica ao invés de padrões
--regex padrões são regexps estendidas
-s, --stdio ignorado, para compatibilidade regressiva
-V, --version mostra informações da versão
-w, --wholename procura por todo o caminho do nome (padrão)

Isso não é tudo, mas acredito que pode salvar alguns aprendizes como eu.

Referência:
Todo o crédito ao Tales A. Mendonça, artigo original aqui.

Nenhum comentário: