Introdução aos Comandos Fundamentais do Terminal Linux
Dominar o terminal Linux é uma habilidade crucial para desenvolvedores, administradores de sistema e entusiastas. Este guia prático apresenta uma seleção de comandos essenciais, detalhando suas funcionalidades e opções mais comuns, para facilitar a interação e o gerenciamento do sistema.
ls - Listar Conteúdo de Diretórios
O comando ls (list) é fundamental para exibir os arquivos e subdiretórios presentes em um determinado caminho. Ele pode operar com caminhos absolutos ou relativos à sua localização atual.
Parâmetros comuns:
-a: Mostra todos os arquivos, incluindo aqueles ocultos (cujo nome começa com um ponto, ex:.bashrc).-l: Exibe informações detalhadas sobre cada item (permissões, proprietário, tamanho, data de modificação, etc.).
Exemplos:
# Listar arquivos no diretório /usr/local
ls /usr/local
# Exibir todos os arquivos (incluindo ocultos) em formato longo no diretório home
ls -al ~
cd - Mudar de Diretório
Para navegar entre os diretórios no sistema de arquivos, utiliza-se o comando cd (change directory). Se invocado sem argumentos, ele o levará diretamente ao diretório inicial (home directory) do usuário.
Exemplos:
# Entrar no diretório /var/www/html
cd /var/www/html
# Voltar um nível na hierarquia de diretórios
cd ..
# Ir para o diretório home do usuário atual
cd
alias - Criar Atalhos para Comandos
O comando alias permite definir atalhos personalizados para comandos ou sequências de comandos complexas. Isso pode otimizar o fluxo de trabalho e reduzir a digitação. É importante notar que não deve haver espaços em branco ao redor do sinal de igual (=) na definição do alias.
Exemplo:
# Criar um atalho 'll' para 'ls -lh' (listagem longa e legível por humanos)
alias ll='ls -lh'
clear - Limpar a Tela do Terminal
Para limpar a tela do terminal e remover o histórico de comandos visível, utilize clear. Uma alternativa rápida é a combinação de teclas Ctrl+L.
Exemplo:
clear
date - Exibir Data e Hora
O comando date exibe a data e hora atuais do sistema. Ele também pode ser foramtado para mostrar informações específicas.
Exemplo:
date
pwd - Mostrar Diretório Atual
Para saber em qual diretório você está trabalhando no momento, utilize o comando pwd (print working directory). Ele imprime o caminho completo do diretório atual na tela.
Exemplo:
pwd
echo - Imprimir Texto
O comando echo é usado para exibir uma linha de texto ou o valor de variáveis no terminal. É frequentemente empregado em scripts shell para exibir mensagens ou informações.
Exemplo:
echo "Olá, mundo do terminal!"
sort - Ordenar Linhas de Texto
O comando sort ordena as linhas de um arquivo de texto ou da entrada padrão. Por padrão, a ordenação é alfabética (lexicográfica) e ascendente, baseada na tabela ASCII.
Parâmetros comuns:
-r: Inverte a ordem de classificação (decrescente).-n: Classifica numericamente.-k N: Classifica pela N-ésima coluna.
Exemplo:
# Ordenar as linhas do arquivo 'frutas.txt' em ordem reversa
cat frutas.txt
# Maçã
# Banana
# Abacaxi
# Caju
cat frutas.txt | sort -r
# Maçã
# Caju
# Banana
# Abacaxi
uniq - Remover Linhas Duplicadas Adjacentes
O uniq é uma ferramenta para filtrar ou reportar linhas duplicadas adjacentes em um arquivo. Para que ele funcione corretamente em todo o arquivo, o conteúdo geralmente precisa ser classificado primeiro, daí a sua comum combinação com sort.
Parâmetros comuns:
-c: Prefixa cada linha com o número de ocorrências.-d: Mostra apenas as linhas que aparecem mais de uma vez.-u: Mostra apenas as linhas que são únicas.
Exemplo:
# Contar ocorrências de linhas únicas após a ordenação
sort lista.txt | uniq -c
which - Localizar Executáveis de Comandos
O comando which localiza o caminho completo de comandos executáveis no sistema. Ele procura nos diretórios listados na variável de ambiente $PATH, indicando onde o sistema encontra o programa.
Exemplo:
# Encontrar o caminho do executável do Python 3
which python3
| (Pipe) - Conectar Comandos
O pipe (|) é um operador poderoso no shell que permite conectar a saída padrão de um comando à entrada padrão de outro. Isso possibilita a criação de sequências de comandos complexas para processar dados de forma eficiente.
Exemplo:
# Listar processos e filtrar por aqueles que contêm 'apache'
ps aux | grep apache
head - Exibir o Início de um Arquivo
Para inspecionar as primeiras linhas de um arquivo, utilize o comando head. Por padrão, ele exibe as 10 primeiras linhas, mas esse número pode ser ajustado com o parâmetro -n.
Exemplo:
# Mostrar as primeiras 5 linhas do arquivo /etc/hosts
head -n 5 /etc/hosts
tail - Exibir o Final de um Arquivo
O comando tail exibe as últimas linhas de um arquivo. É particularmente útil para monitorar arquivos de log em tempo real, utilizando a opção -f (follow), que mantém o arquivo aberto e mostra novas adições conforme elas ocorrem.
Exemplo:
# Monitorar o arquivo de log do sistema em tempo real
tail -f /var/log/syslog
less - Visualizador de Arquivos Interativo
O less é um paginador de arquivos que oferece uma experiência de visualização mais avançada que o more. Ele permite rolagem tanto para cima quanto para baixo, busca por texto e não carrega o arquivo inteiro na memória, sendo eficiente para arquivos grandes.
Principais controles:
Espaço: Avança uma página.b: Retrocede uma página./padrão: Busca por "padrão" para frente.?padrão: Busca por "padrão" para trás.q: Sai doless.
Exemplo:
less grande_arquivo.log
more - Visualizador de Arquivos Paginado
O comando more também funciona como um paginador de texto, exibindo o conteúdo de um arquivo tela por tela. Ele é mais básico que o less, permitindo rolar principalmente para frente.
Principais controles:
Espaço: Avança uma página.q: Sai domore.
Exemplo:
more arquivo_curto.txt
od - Dump Octal de Arquivos
O od (octal dump) é utilizado para exibir o conteúdo de arquivos em diferentes formatos de representação, como octal, hexadecimal, decimal ou ASCII. É útil para inspecionar arquivos binários ou para ver a representação exata de caracteres especiais em arquivos de texto.
Parâmetros comuns:
-c: Interpreta bytes como caracteres ASCII.-x: Exibe em formato hexadecimal.-o: Exibe em formato octal (padrão).
Exemplo:
# Exibir um arquivo binário em hexadecimal
od -x /bin/ls | head
mkdir e rmdir - Gerenciar Diretórios
Para gerenciar diretórios: mkdir (make directory) cria novas pastas, e rmdir (remove directory) apaga diretórios, mas apenas se estiverem vazios.
Parâmetros comuns para mkdir:
-p: Cria diretórios pais se eles não existirem.
Exemplos:
# Criar um novo diretório
mkdir meu_projeto
# Criar uma estrutura de diretórios aninhados
mkdir -p documentos/relatorios/2023
# Remover um diretório vazio
rmdir meu_projeto
rm - Remover Arquivos e Diretórios
O comando rm (remove) é usado para excluir arquivos e diretórios. É uma ferramenta poderosa e deve ser usada com cautela, pois, por padrão, os arquivos removidos não vão para uma lixeira e são difíceis de recuperar.
Parâmetros comuns:
-r: Remove diretórios e seu conteúdo recursivamente.-f: Força a remoção, sem solicitar confirmação.
Exemplos:
# Remover um arquivo
rm arquivo_temporario.txt
# Remover um diretório e todo o seu conteúdo sem pedir confirmação
rm -rf lixos_antigos/
mv - Mover ou Renomear Arquivos/Diretórios
O mv (move) tem dupla função: renomear um arquivo ou diretório, ou movê-lo de um local para outro. Quando o destino está no mesmo diretório, ele atua como um renomeador. Caso contrário, ele move o item para o novo local.
Parâmetros comuns:
-i: Interativo, solicita confirmação antes de sobrescrever.-f: Força a operação, sobrescrevendo sem confirmação.
Exemplos:
# Renomear um arquivo
mv rascunho.md artigo_final.md
# Mover um arquivo para outro diretório
mv meu_documento.pdf ~/Arquivos/Documentos/
cp - Copiar Arquivos e Diretórios
O comando cp (copy) duplica arquivos e diretórios. É esencial para backup ou para criar múltiplas instâncias de um arquivo ou estrutura de diretórios.
Parâmetros comuns:
-r: Recursivo, necessário para copiar diretórios e seu conteúdo.-i: Interativo, solicita confirmação antes de sobrescrever.-p: Preserva atributos do arquivo original (permissões, proprietário, carimbo de data/hora).-a: Modo arquivo, equivalente a-dpR(preserva links, atributos, recursivo).
Exemplos:
# Copiar um arquivo
cp configuracao.bak configuracao.new
# Copiar um diretório e seu conteúdo
cp -r meus_projetos/ backup_projetos/
touch - Criar Arquivos Vazios ou Atualizar Carimbos de Data/Hora
O comando touch é primariamente usado para atualizar os carimbos de data/hora (acesso e modificação) de um arquivo ou diretório. Se o arquivo especificado não existir, touch o cria como um arquivo vazio.
Parâmetros comuns:
-a: Altera apenas o carimbo de data/hora de acesso.-m: Altera apenas o carimbo de data/hora de modificação.-c: Não cria o arquivo se ele não existir.
Exemplos:
# Criar um novo arquivo vazio
touch arquivo_vazio.txt
# Atualizar o carimbo de data/hora de modificação de um arquivo existente
touch -m script.sh
find - Localizar Arquivos e Diretórios
O comando find é uma ferramenta poderosa para localizar arquivos e diretórios dentro de uma hierarquia, com base em diversos critérios como nome, tipo, tamanho, proprietário e data.
find [DIRETÓRIO_INICIAL] [EXPRESSÃO_DE_BUSCA] [AÇÃO]
Parâmetros de busca comuns:
-name padrão: Busca por nome de arquivo (suporta curingas como*e?).-type tipo: Busca por tipo (fpara arquivo,dpara diretório,lpara link simbólico).-size [+-]N[cwbkMG]: Busca por tamanho (+Nmaior que N,-Nmenor que N).-user usuário: Busca por proprietário.-mtime N: Busca por arquivos modificados N dias atrás.
Explicação de -mtime N:
N: ExatoNdias atrás (o arquivo foi modificado há exatamenteNdias).+N: Mais deNdias atrás (o arquivo foi modificado háN+1dias ou mais).-N: Menos deNdias atrás (o arquivo foi modificado nos últimosNdias, incluindo hoje).
Exemplos:
# Encontrar todos os arquivos '.conf' no diretório /etc
find /etc -name "*.conf"
# Encontrar diretórios modificados nos últimos 7 dias no diretório atual
find . -type d -mtime -7
grep - Buscar Padrões em Arquivos
O grep (Global Regular Expression Print) é uma ferramenta essencial para buscar padrões de texto (strings ou expressões regulares) dentro de arquivos ou da entrada padrão. Ele imprime as linhas que contêm o padrão especificado.
Parâmetros comuns:
-i: Ignora maiúsculas e minúsculas.-v: Inverte a busca, mostrando as linhas que NÃO contêm o padrão.-n: Exibe o número da linha junto com a linha correspondente.-r: Busca recursivamente em subdiretórios.-l: Lista apenas os nomes dos arquivos que contêm o padrão.
Exemplo:
# Buscar a palavra "error" (ignorando maiúsculas/minúsculas) no arquivo de log do sistema
grep -i "error" /var/log/syslog
wc - Contar Linhas, Palavras e Bytes
O comando wc (word count) é utilizado para contar o número de linhas, palavras e bytes (ou caracteres) em arquivos ou na entrada padrão. É uma ferramenta simples, mas muito útil para obter um resumo rápido do conteúdo de texto.
Parâmetros comuns:
-l: Conta apenas o número de linhas.-w: Conta apenas o número de palavras.-c: Conta apenas o número de bytes (ou caracteres).
Exemplo:
# Contar o número de linhas em um arquivo
wc -l relatorio_mensal.txt
diff - Comparar Arquivos
O diff (difference) é uma utilidade para comparar dois arquivos, exibindo as diferenças linha por linha. É indispensável para gerenciar versões de código, comparar configurações ou identificar modificações entre documentos.
Parâmetros comuns:
-u: Formato unificado, mostra as diferenças com contexto e de forma mais legível.-c: Formato de contexto, similar ao-u, mas com outra apresentação.-r: Recursivo, para comparar diretórios inteiros.-i: Ignora maiúsculas e minúsculas ao comparar.
Exemplo:
# Comparar duas versões de um arquivo de configuração usando o formato unificado
diff -u config.old config.new