Ajuda e manuais de comando no Bash
Curso de Bash
Seção do curso de Bash sobre ajuda e manuais de comando (--help e man).
Argumentos e opções suportadas por um comando são descritas em sua ajuda e em suas páginas de manual.
Além disso, explicações sobre o funcionamento do comando, suas limitações e condições também estão contidas nesses recursos.
Conteúdo
--help
A opção --help
após o nome do comando é a forma mais simples de acessarmos a ajuda.
--help
exibe o texto de ajuda na saída e encerra o comando. Com isso outras opções e argumentos são ignorados, mesmo que precedam --help
.
Para acessar a ajuda do comando rm
.
rm --help
O que há na ajuda de um comando?
A estrutura do texto de ajuda pode variar largamente entre comandos de diferentes desenvolvedores.
Os comandos GNU/Linux, porém, tendem a seguir vagamente a seguinte organização.
Sintaxe
Na primeira linha da ajuda temos a sintaxe do comando.
Usage: rm [OPTION]... [FILE]...
rm
: nome do comando.[OPTION]...
: opções. As reticências significam que uma ou mais opções podem ser definidas.[FILE]...
: arquivos como argumentos. As reticências também têm o mesmo significado aqui, um ou mais argumentos são suportados.
Descrição
Na segunda linha, é exibido o resumo da descrição do comando.
Remove (unlink) the FILE(s).
Lista das opções
Nas próximas linhas (4-22) temos a lista das opções. A primeira coluna exibe as opções (curtas e longas) e a segunda mostra um breve descritivo.
Perceba que opções curtas e longas correspondentes são separadas por vírgulas como -f
e --force
.
-f, --force ignore nonexistent files and arguments, never prompt
-i prompt before every removal
-I prompt once before removing more than three files, or
when removing recursively; less intrusive than -i,
while still giving protection against most mistakes
--interactive[=WHEN] prompt according to WHEN: never, once (-I), or
always (-i); without WHEN, prompt always
--one-file-system when removing a hierarchy recursively, skip any
directory that is on a file system different from
that of the corresponding command line argument
--no-preserve-root do not treat '/' specially
--preserve-root[=all] do not remove '/' (default);
with 'all', reject any command line argument
on a separate device from its parent
-r, -R, --recursive remove directories and their contents recursively
-d, --dir remove empty directories
-v, --verbose explain what is being done
--help display this help and exit
--version output version information and exit
Demais informações
A próxima seção (linhas 24 à 35) descreve as limitações e pré condições do comando.
By default, rm does not remove directories. Use the --recursive (-r or -R)
option to remove each listed directory, too, along with all of its contents.
To remove a file whose name starts with a '-', for example '-foo',
use one of these commands:
rm -- -foo
rm ./-foo
Note that if you use rm to remove a file, it might be possible to recover
some of its contents, given sufficient expertise and/or time. For greater
assurance that the contents are truly unrecoverable, consider using shred.
Múltiplas sintaxes
Nem sempre o comando oferece apenas uma sintaxe como rm
.
mv
, por exemplo, têm três sintaxes.
Usage: mv [OPTION]... [-T] SOURCE DEST
or: mv [OPTION]... SOURCE... DIRECTORY
or: mv [OPTION]... -t DIRECTORY SOURCE...
Todas as sintaxes suportam uma lista de opções (nenhuma, uma ou mais opções).
A primeira suporta: a opção
-T
após a lista de opções e antes dos argumentos, o arquivo a ser renomeado (SOURCE
) e o novo nome para o arquivo (DEST
). A opção-T
é opcional já que está envolvida em colchetes.A segunda sintaxe define um ou mais arquivos ou diretórios a serem movidos (
SOURCE...
) e o diretório destino (DIRECTORY
).Na terceira, a opção
-t
é obrigatória. É equivalente a segunda sintaxe, com a diferença que o diretório destino (DIRECTORY
) aparece antes da lista de arquivos ou diretórios a serem movidos (SOURCE...
).
man
e Página de manual
Páginas de manual são documentações de comandos, bibliotecas e outros programas. Elas contam com maior nível de detalhamento e mais seções do que o texto apresentado por --help
.
A instalação de um programa geralmente disponibiliza uma página de manual correspondente no diretório /usr/share/man
.
man
é um programa que visualiza tais páginas.
Dentre outras funcionalidades, man
é capaz de redimensionar o texto para o tamanho do terminal, pesquisar palavras na página e rolar a página com controles refinados.
man rm
RM(1) User Commands RM(1)
NAME
rm - remove files or directories
SYNOPSIS
rm [OPTION]... [FILE]...
DESCRIPTION
This manual page documents the GNU version of rm. rm removes each specified file. By default, it does not remove directories.
If the -I or --interactive=once option is given, and there are more than three files or the -r, -R, or --recursive are given, then rm prompts the user for whether to proceed with the
entire operation. If the response is not affirmative, the entire command is aborted.
Manual page rm(1) line 1 (press h for help or q to quit)
Caso o comando não ofereça página de manual como cd
, shift
e fg
, a saída No manual entry for <comando>
é exibida.
caio@FX505DV:~$ man cd
No manual entry for cd
Como navegar em man
?
man
permite a navegação à página do manual utilizando a tecla ↑
ou Enter
para rolar uma linha para cima e ↓
para baixo.
PgUp
e PgDown
rolam uma janela para cima ou para baixo, respectivamente.
q
encerra o programa e h
mostra todos os atalhos.
/
+ palavra
+ Enter
pesquisa pela palavra
, destacando todas as ocorrências. Para avançar para a próxima ocorrência pressione n
para retroceder para a ocorrência anterior Shift
+ n
.