Pular para o conteúdo
Waldo Eller | Cloud/DevOps: início
Voltar para Trilha: Linux Essentials
Linux

Dia 07/30 - Dominando a Ajuda na Linha de Comando

Hoje é o Dia 07 do desafio de 30 dias estudando Linux

Publicado em

13 min de leitura
Capa do artigo Dia 07/30 - Dominando a Ajuda na Linha de Comando

Hoje, é o sétimo dia do meu desafio de 30 dias estudando Linux com foco na certificação Linux Essentials (LPI 010-160).

O tema de hoje é um divisor de águas para quem está aprendendo Linux: como obter ajuda sem sair do terminal. Qualquer profissional experiente sabe que não precisa memorizar tudo — precisa saber onde buscar.

📚 Material de referência — manual oficial do LPI:
👉 https://learning.lpi.org/pt/learning-materials/010-160/

🎯 Objetivo do exame:
👉 Linux Essentials v1.6 — Objetivo 2.2: Usando a linha de comando para conseguir ajuda

💻 Pratique os comandos de hoje na plataforma interativa:
👉 https://uplinux.waldoeller.com/


🧭 Por que saber pedir ajuda é uma habilidade essencial?

Existem centenas de comandos Linux, cada um com dezenas de opções. Nenhum profissional as memoriza todas. O que diferencia um usuário iniciante de um experiente é saber onde e como buscar a informação certa no momento certo.

O Linux foi projetado com essa filosofia: toda ferramenta traz sua própria documentação. Você raramente precisa de uma busca na internet para resolver um problema no terminal.

💡 Na prova do Linux Essentials, o LPI testa justamente se você sabe usar essas ferramentas de ajuda — não se decorou todas as opções de cada comando.


📖 O Sistema de Páginas de Manual — man

O comando man é a espinha dorsal da documentação Linux. Ele acessa o manual de referência do sistema.

Uso básico

$ man ls          # manual do comando ls
$ man cp          # manual do comando cp
$ man man         # o manual do próprio man!
$ man bash        # manual completo do shell Bash

Navegando dentro do man

O man usa o paginador less por baixo dos panos. Dominar a navegação é fundamental:

Tecla Ação
Espaço ou Page Down Avança uma página
b ou Page Up Volta uma página
↓ Avança uma linha
↑ Volta uma linha
g ou Home Vai para o início
G ou End Vai para o final
/texto Busca "texto" para frente
?texto Busca "texto" para trás
n Próxima ocorrência da busca
N Ocorrência anterior da busca
q Sai do manual
h Exibe ajuda do paginador

Prática no terminal

# Abrir o manual do grep e buscar pela opção -i
$ man grep
# Dentro do man, digite: /-i
# Pressione n para navegar pelas ocorrências
# Pressione q para sair

📚 As 9 Seções do Manual Linux

O manual não é um documento único — é dividido em 9 seções, cada uma cobrindo um tipo diferente de documentação. Isso é muito cobrado na prova!

Seção Conteúdo Exemplos
1 Comandos executáveis por usuários ls, grep, cd, man
2 Chamadas de sistema do kernel open(), read(), fork()
3 Funções de bibliotecas C printf(), malloc(), strcmp()
4 Arquivos especiais em /dev null, random, tty
5 Formatos de arquivo e convenções passwd, fstab, crontab
6 Jogos e entretenimento —
7 Miscelânea e convenções regex, man, ascii
8 Comandos de administração (root) mount, fdisk, useradd
9 Rotinas internas do kernel —

Por que as seções importam?

Alguns nomes existem em múltiplas seções. Por exemplo:

$ man passwd          # seção 1: comando para alterar senha
$ man 5 passwd        # seção 5: formato do arquivo /etc/passwd

$ man printf          # seção 1: comando printf do shell
$ man 3 printf        # seção 3: função printf() da biblioteca C

$ man crontab         # seção 1: comando crontab
$ man 5 crontab       # seção 5: formato do arquivo crontab

Como especificar a seção

$ man 5 passwd        # força a seção 5
$ man 8 mount         # força a seção 8
$ man -a passwd       # exibe TODAS as seções disponíveis para passwd
$ man -k passwd       # busca o termo "passwd" em todas as seções

🗂️ Estrutura de uma Página de Manual

Toda página de manual segue uma estrutura padronizada. Conhecê-la acelera muito a leitura:

NAME
    ls - list directory contents

SYNOPSIS
    ls [OPTION]... [FILE]...

DESCRIPTION
    List information about the FILEs (the current directory by default).
    ...

OPTIONS
    -a, --all
        do not ignore entries starting with .
    -l
        use a long listing format
    ...

EXAMPLES
    ls -la /home
    ...

SEE ALSO
    dir(1), vdir(1), find(1)

AUTHOR
    ...

Decodificando o SYNOPSIS

A seção SYNOPSIS usa uma notação formal importante:

Elemento Significado
[OPÇÃO] Colchetes = opcional
ARQUIVO Sem colchetes = obrigatório
... Pode ser repetido múltiplas vezes
a|b Escolha entre a ou b (mutuamente exclusivos)
# SYNOPSIS: ls [OPTION]... [FILE]...
# Significa: ls aceita zero ou mais OPTIONs e zero ou mais FILEs
$ ls                     # válido: zero opções, zero arquivos
$ ls -l                  # válido: uma opção
$ ls -la /home /tmp      # válido: duas opções, dois arquivos

🔍 Buscando nos Manuais — apropos e man -k

O apropos é a ferramenta perfeita quando você não lembra o nome do comando, mas sabe o que quer fazer.

Como funciona

# Busca comandos relacionados a "copy"
$ apropos copy

# Busca comandos relacionados a "network"
$ apropos network

# Busca comandos de compressão
$ apropos compress

# Busca como gerenciar usuários
$ apropos "user management"

apropos vs man -k

# Estes dois comandos são equivalentes:
$ apropos copy
$ man -k copy

# Ambos buscam nas descrições (seção NAME) de todas as páginas de manual

Exemplos reais de saída

$ apropos password
chage (1)            - change user password expiry information
chpasswd (8)         - update passwords in batch mode
gpasswd (1)          - administer /etc/group and /etc/gshadow
passwd (1)           - change user password
passwd (5)           - the password file
pwck (8)             - verify integrity of password files

Resolvendo "nothing appropriate"

# Se apropos retornar "nothing appropriate", atualize o banco de dados:
$ sudo mandb

# Após atualizar, tente novamente:
$ apropos firewall

Busca com expressão regular

# Busca por padrão regex (termos que começam com "ls")
$ apropos -r "^ls"

# Busca por múltiplas palavras
$ apropos -r "list.*file"

⚡ Descrição Rápida — whatis

O whatis é para quando você encontra um comando desconhecido e quer saber rapidamente o que ele faz, sem abrir o manual completo.

$ whatis ls
ls (1)               - list directory contents

$ whatis grep
grep (1)             - print lines that match patterns

$ whatis passwd
passwd (1)           - change user password
passwd (5)           - the password file

$ whatis chmod
chmod (1)            - change file mode bits

whatis vs man -f

# Equivalentes:
$ whatis chmod
$ man -f chmod

💡 Perceba que whatis passwd retorna duas linhas — uma para o comando (seção 1) e outra para o formato do arquivo (seção 5). Isso confirma a importância de conhecer as seções.


🚀 Ajuda Rápida — --help e -h

Para consultas rápidas sem abrir o paginador, use a opção --help:

$ ls --help
$ grep --help
$ find --help
$ chmod --help

Filtrando a ajuda com grep

# Quando --help gera muitas linhas, filtre com pipe:
$ ls --help | grep "sort"
$ grep --help | grep "ignore"
$ find --help | grep "name"

# Exibir apenas as primeiras linhas:
$ ls --help | head -20

# Buscar uma opção específica:
$ ls --help | grep -- "-t"

--help vs man

Característica --help man
Velocidade Imediato, sem paginador Abre o paginador less
Completude Resumo das opções Documentação completa
Navegação Requer scroll do terminal Navegação interativa
Busca Via grep no pipe Busca interna com /
Disponibilidade Nem todo comando tem Padrão no sistema

🏠 Ajuda para Builtins — help

Comandos builtin do Bash (como cd, echo, read, type) não têm página de manual própria. Para eles, use o comando help:

# Listar todos os builtins do Bash
$ help

# Ajuda específica de um builtin
$ help cd
$ help echo
$ help read
$ help type
$ help if
$ help for
$ help while

Por que man cd pode não funcionar?

$ man cd
# Em muitos sistemas: "No manual entry for cd"
# Porque cd é um builtin — está documentado dentro do bash

# A forma correta:
$ help cd          # ajuda específica do builtin
$ man bash         # manual completo do bash (inclui todos os builtins)

Identificando se um comando é builtin

$ type cd
cd is a shell builtin

$ type ls
ls is /usr/bin/ls

$ type if
if is a shell keyword

$ type ll
ll is aliased to 'ls -alF'

💡 Use type para identificar o tipo e então escolher a ferramenta de ajuda correta: help para builtins, man para comandos externos.


📘 Documentação GNU — info

O sistema info é a documentação oficial dos projetos GNU, geralmente mais detalhada e organizada que o man:

$ info ls
$ info grep
$ info bash
$ info coreutils    # documentação de todos os coreutils GNU

Navegando no info

Tecla Ação
Tab Move para o próximo link
Enter Acessa o nó selecionado
n Próximo nó (mesmo nível)
p Nó anterior (mesmo nível)
u Sobe um nível na hierarquia
/texto Busca por texto
q Sai
? Exibe ajuda

info vs man

# Para muitos comandos GNU, info é mais completo:
$ info grep     # documentação detalhada com exemplos
$ man grep      # referência mais direta e objetiva

📁 Documentação Adicional — /usr/share/doc

Pacotes instalados frequentemente incluem documentação extra além do man:

# Ver documentação disponível para um pacote
$ ls /usr/share/doc/

# Ver documentação específica de um pacote
$ ls /usr/share/doc/bash/
$ ls /usr/share/doc/openssh-client/

# Ler o README de um pacote
$ less /usr/share/doc/bash/README

# Ler o changelog
$ less /usr/share/doc/bash/changelog.gz   # descomprime automaticamente

Tipos de arquivos comuns em /usr/share/doc

Arquivo Conteúdo
README Documentação geral do pacote
changelog Histórico de mudanças
INSTALL Instruções de instalação
examples/ Exemplos de configuração
copyright Informações de licença

🗺️ Localizando Executáveis e Manuais — whereis

# Localiza binário, fonte e página de manual
$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

$ whereis bash
bash: /usr/bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz

$ whereis python3
python3: /usr/bin/python3 /usr/lib/python3 /usr/share/man/man1/python3.1.gz

# Ver apenas o binário
$ whereis -b ls

# Ver apenas a página de manual
$ whereis -m ls

🔢 Verificando Versão de Programas

# A maioria dos programas aceita --version ou -V
$ bash --version
$ python3 --version
$ grep --version
$ gcc --version
$ git --version

# Alguns usam -v (minúsculo)
$ ssh -V

🗂️ Caminho do Manual — man -w

# Exibe o caminho do arquivo de manual sem abri-lo
$ man -w ls
/usr/share/man/man1/ls.1.gz

$ man -w passwd
/usr/share/man/man1/passwd.1.gz

$ man -w 5 passwd
/usr/share/man/man5/passwd.5.gz

🧪 Simulado do Dia — Estilo Prova LPI

Questões no formato do exame para fixar o conteúdo:

1. Qual comando exibe a descrição de uma linha do comando chmod?

✅ whatis chmod

2. Qual seção do manual contém documentação sobre arquivos de configuração como /etc/fstab?

✅ Seção 5 — Formatos de arquivo e convenções.

3. Como abrir a documentação do arquivo /etc/passwd e não do comando passwd?

✅ man 5 passwd

4. Qual é o equivalente de apropos network?

✅ man -k network

5. Por que man cd pode não funcionar em alguns sistemas?

✅ Porque cd é um builtin do shell Bash. Use help cd ou man bash.

6. Qual tecla encerra o visualizador do man?

✅ A tecla q.

7. Como buscar a palavra "recursive" dentro de uma página de manual aberta?

✅ Digitando /recursive e pressionando Enter.

8. Qual comando lista todos os builtins disponíveis no Bash?

✅ help (sem argumentos).

9. O que faz man -a passwd?

✅ Exibe todas as seções disponíveis para passwd (seção 1 e seção 5), uma após a outra.

10. Onde encontrar documentação adicional (READMEs, exemplos) de um pacote instalado?

✅ Em /usr/share/doc/nome-do-pacote/.


🗺️ Mapa Mental — Ferramentas de Ajuda

FERRAMENTAS DE AJUDA NO LINUX
│
├── man comando          → Manual completo (usa paginador less)
│     ├── man 5 arquivo  → Força seção específica
│     ├── man -a cmd     → Todas as seções
│     ├── man -k termo   → Busca por palavra-chave (= apropos)
│     ├── man -f cmd     → Descrição curta (= whatis)
│     └── man -w cmd     → Caminho do arquivo de manual
│
├── apropos termo        → Busca em todas as descrições de manual
│
├── whatis comando       → Descrição de uma linha
│
├── comando --help       → Resumo rápido de opções
│
├── help builtin         → Ajuda para comandos internos do Bash
│
├── info comando         → Documentação GNU detalhada (hipertextual)
│
├── whereis comando      → Localiza binário + manual + fonte
│
└── /usr/share/doc/      → Documentação adicional dos pacotes

✅ O que aprendi hoje

  • Estrutura e navegação do comando man (teclas, busca, saída)
  • As 9 seções do manual e quando usar cada uma
  • Como forçar uma seção específica: man 5 passwd
  • Estrutura de uma página de manual (NAME, SYNOPSIS, DESCRIPTION, SEE ALSO)
  • Notação do SYNOPSIS: [] = opcional, ... = repetível
  • apropos e man -k para buscar por palavra-chave
  • whatis e man -f para descrição rápida de uma linha
  • --help para resumo rápido sem abrir o paginador
  • help para documentação de builtins do Bash
  • info para documentação GNU hipertextual
  • /usr/share/doc para documentação adicional de pacotes
  • whereis para localizar binários e manuais
  • Simulado com 10 questões estilo prova

📅 Próximo passo — Dia 08

Amanhã avanço para o Objetivo 2.3:

  • 2.3 — Usando diretórios e listando arquivos
    • Hierarquia do sistema de arquivos (FHS)
    • Comandos ls, cd, pwd em profundidade
    • Caminhos absolutos vs relativos
    • Wildcards e globbing

💻 Quer praticar os comandos de hoje?
Acesse o terminal virtual e os simulados em:
👉 https://uplinux.waldoeller.com/


Acompanhe o desafio completo aqui no blog.
Material de referência: LPI Learning Materials 010-160
Objetivo do exame: Linux Essentials v1.6 — Objetivo 2.2

Gostou da leitura?

Conecte-se comigo para acompanhar novas publicações e debater tecnologia.

Entrar em contato