Linux - Introdução aos Comandos
A linha de comando, ou terminal, é um componente essencial do sistema operacional Linux, permitindo uma administração e gerenciamento abrangentes de toda a operação do sistema. Mesmo em distribuições do Linux que utilizam uma interface gráfica, o terminal ainda é necessário para revelar todo o poder e potencial do Linux.
Para trabalhar com a linha de comando, o Linux fornece o que é chamado de shell. O shell é um interpretador de comandos: ele é responsável por executar o que você digita na linha de comando. O shell mais popular é o bash (abreviação de "Bourne Again Shell", onde "Bourne Shell" é o nome do primeiro shell no Unix). Outros shells também podem ser usados, oferecendo recursos adicionais, mas em geral funcionam de maneira semelhante. Por exemplo, o shell tcsh oferece uma linguagem de script semelhante à linguagem de programação C. Outro shell bastante comum é o zsh.
Para interagir com o sistema operacional através da linha de comando, usamos comandos. No Linux, existem muitos comandos, e novos comandos são adicionados regularmente. No entanto, todos esses comandos seguem um padrão de funcionamento comum. Assim, todos os comandos consistem em três partes: o próprio comando, seus parâmetros e argumentos. Por exemplo, vejamos um dos comandos mais comuns, ls
, que exibe a lista de arquivos e diretórios em uma pasta específica. Ao simplesmente digitar ls
, obtemos uma lista de arquivos e diretórios da pasta atual:
programicio@Programicio:~$ ls Android extensions Public Desktop gnome snap Documents Music Templates Downloads Pictures Videos
Além disso, s comandos geralmente aceitam um conjunto de parâmetros opcionais. Cada comando pode ter vários parâmetros diferentes, e dependendo do comando, vários deles podem ser aplicados simultaneamente. Por exemplo, o comando ls
pode aceitar o parâmetro -l
, que exibe informações mais detalhadas sobre os arquivos e diretórios, como permissões de acesso, data de criação, etc. Vamos aplicar essa opção:
programicio@Programicio:~$ ls -l total 72 drwxrwxr-x 3 programicio programicio 4096 Feb 19 10:24 Android drwxr-xr-x 2 programicio programicio 4096 Jan 28 14:39 Desktop drwxr-xr-x 15 programicio programicio 4096 Mar 7 20:49 Documents ... drwxr-xr-x 2 programicio programicio 4096 Jan 28 14:39 Videos
Além dos parâmetros, os comandos podem aceitar argumentos. Argumentos geralmente representam os objetos aos quais o comando é aplicado. O argumento é especificado no final do comando. Por exemplo, o comando ls
recebe como argumento o caminho do diretório cujo conteúdo deve ser exibido. Nos exemplos acima, o caminho do diretório não foi fornecido, então, por padrão, o comando ls
foi aplicado ao diretório atual. Agora, vamos fornecer o caminho do diretório /usr
:
programicio@Programicio:~$ ls /usr bin games include lib lib32 lib64 libexec local sbin share src programicio@Programicio:~$
Se o comando também aceitar parâmetros, o argumento é especificado após os parâmetros opcionais:
programicio@Programicio:~$ ls -l /usr total 148 drwxr-xr-x 2 root root 61440 Mar 4 19:40 bin drwxr-xr-x 2 root root 4096 Oct 16 13:38 games drwxr-xr-x 83 root root 16384 Feb 23 06:47 include ... drwxr-xr-x 6 root root 4096 Mar 8 07:08 src
Cadeias de Comandos
Usando o símbolo |
(barra vertical), é possível criar cadeias de comandos. Por exemplo, vejamos a seguinte cadeia de comandos:
ls -R / | less
Aqui, o comando ls -R
é executado (listando todos os arquivos e diretórios do sistema), e seu resultado é enviado para o comando less
. O comando less
divide a saída recebida em páginas, exibindo o resultado do primeiro comando página por página.
Redirecionamento
Outro operador frequentemente usado no terminal é o operador de redirecionamento >
. Por padrão, o resultado da execução de um comando é exibido no console. No entanto, utilizando o redirecionamento, você pode enviar o resultado para qualquer outro lugar, como um arquivo. Por exemplo, para enviar o resultado do comando ls -l
para um arquivo folder.txt
:
ls -l > folder.txt
Como resultado, um arquivo folder.txt
será criado na pasta atual, caso não exista. Se esse arquivo já existir, ele será sobrescrito.
Se o arquivo já existir e você não quiser sobrescrever, mas adicionar o resultado do comando ao conteúdo existente, use o operador >>
:
ls -l >> folder.txt
Durante a execução dos comandos, podem ocorrer erros. Para redirecionar os erros, usamos o operador 2>
, por exemplo:
ls -l 2> errors.txt
No entanto, ao executar um comando, pode ser que não saibamos se ocorrerão erros ou não. Nesse caso, podemos separar a saída padrão dos erros, por exemplo:
ls -l > folder.txt 2> errors.txt
Neste caso, a saída do comando é gravada no arquivo folder.txt
. Se houver erros, eles são registrados no arquivo errors.txt
.
Obtendo Ajuda
Comando man
Para obter informações sobre comandos, o Linux fornece o comando man
(abreviação de "manual"). Este comando recebe o nome do comando sobre o qual você deseja obter informações:
man nome_do_comando
Por exemplo, para obter informações sobre o comando ls
:
man ls
O console exibirá algo parecido com isto:
LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐ fied. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with .
Name
: Nome do comando e uma breve descrição de sua finalidade.Synopsis
: Informações breves sobre o uso do comando, incluindo todos os parâmetros disponíveis e indicando se um parâmetro é opcional (mostrado entre colchetes) ou obrigatório (não mostrado entre colchetes).Description
: Descrição detalhada do comando.Options
: Lista completa de todos os parâmetros disponíveis.Files
: Lista breve de arquivos associados ao comando (se houver).See also
: Lista de comandos relacionados.Author
: Autor do comando e seu endereço de e-mail.
Opção --help
Outra maneira de obter informações sobre um comando é usar a opção --help
, disponível para praticamente todos os comandos. Por exemplo, para obter ajuda sobre o comando ls
:
programicio@Programicio:~/Documents$ ls --help Usage: ls [OPTION]... [FILE]... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file -b, --escape print C-style escapes for nongraphic characters --block-size=SIZE with -l, scale sizes by SIZE when printing them; e.g., '--block-size=M'; see SIZE format below -B, --ignore-backups do not list implied entries ending with ~ -c with -lt: sort by, and show, ctime (time of last modification of file status information); with -l: show ctime and sort by name; otherwise: sort by ctime, newest first -C list entries by columns --color[=WHEN] color the output WHEN; more info below
Dessa forma, podemos ver todas as opções possíveis que o comando aceita, sua descrição e sintaxe.
Histórico de Comandos
O shell Bash memoriza o histórico de comandos inseridos, permitindo reutilizar comandos recentemente usados. Muitos distribuições registram os últimos 1000 comandos utilizados pelo usuário; o número de comandos armazenados é determinado pela variável de sistema chamada HISTSIZE
. O próprio histórico (os últimos 1000 comandos) é armazenado no arquivo .bash_history
no diretório pessoal de cada usuário. Para ver todo esse histórico, você pode abrir esse arquivo ou digitar o comando history
no terminal:
programicio@Programicio:~$ history 1 ls 2 ls -l 3 ls /usr/ 4 ls -l /usr 5 ls --help 6 history
O Linux permite repetir um comando usando seu número no histórico. Por exemplo, na saída acima, o comando ls -l /usr
está no número 4. Para repetir esse comando, basta digitar !4
(prefixado por um ponto de exclamação):
programicio@Programicio:~$ !4 ls -l /usr total 148 drwxr-xr-x 2 root root 61440 Mar 4 19:40 bin drwxr-xr-x 2 root root 4096 Oct 16 13:38 games drwxr-xr-x 83 root root 16384 Feb 23 06:47 include ... drwxr-xr-x 6 root root 4096 Mar 8 07:08 src
Também é possível limpar todo o histórico usando o comando:
history -c