Comandos Básicos e Avançados do Linux
Introdução
Os comandos do Linux podem ser categorizados em comandos básicos e avançados. Os comandos básicos são essenciais para o uso diário, enquanto os comandos avançados são usados para tarefas mais complexas e administração do sistema. Este guia oferece uma visão geral de ambos os tipos de comandos, junto com exemplos e explicações.
Comandos Básicos
Navegando no Sistema de Arquivos
ls
Lista o conteúdo de um diretório.
ls
ls -l # Listagem detalhada
ls -a # Inclui arquivos ocultos
cd
Muda o diretório atual.
cd /caminho/para/diretorio
cd .. # Sobe um diretório
cd ~ # Vai para o diretório home
pwd
Mostra o diretório de trabalho atual.
pwd
Operações com Arquivos e Diretórios
cp
Copia arquivos ou diretórios.
cp arquivo_origem destino
cp -r diretorio_origem diretorio_destino # Copia diretórios recursivamente
mv
Move ou renomeia arquivos ou diretórios.
mv nome_antigo nome_novo
mv arquivo /nova/localizacao/
rm
Remove arquivos ou diretórios.
rm arquivo
rm -r diretorio # Remove diretórios recursivamente
mkdir
Cria novos diretórios.
mkdir novo_diretorio
mkdir -p diretorio_pai/novo_diretorio # Cria diretórios pai conforme necessário
touch
Cria um arquivo vazio ou atualiza a data/hora de um arquivo existente.
touch novo_arquivo
Visualização e Edição de Arquivos
cat
Exibe o conteúdo de um arquivo.
cat arquivo
less
Visualiza o conteúdo de um arquivo uma tela por vez.
less arquivo
nano
Editor de texto simples no terminal.
nano arquivo
vim
Editor de texto avançado com recursos poderosos.
vim arquivo
Informações do Sistema
uname
Exibe informações do sistema.
uname -a # Informações detalhadas do sistema
top
Mostra processos do sistema em tempo real e uso de recursos.
top
df
Exibe uso do espaço em disco.
df -h # Formato legível para humanos
du
Mostra uso de disco de arquivos e diretórios.
du -h /caminho/para/diretorio
Gerenciamento de Processos
ps
Exibe uma lista de processos atuais.
ps aux # Informações detalhadas sobre todos os processos
kill
Encerra um processo pelo seu ID.
kill PID
kill -9 PID # Encerra forçadamente um processo
Rede
ping
Verifica a conectividade com um host.
ping exemplo.com
ifconfig
Exibe ou configura interfaces de rede.
ifconfig
wget
Baixa arquivos da internet.
wget http://exemplo.com/arquivo
Comandos Avançados
Operações Avançadas com Arquivos e Diretórios
find
Pesquisa arquivos e diretórios com base em critérios especificados.
find /caminho -name "nome_do_arquivo"
find /caminho -type f -name "*.txt" # Encontra todos os arquivos .txt
grep
Pesquisa padrões dentro de arquivos.
grep "padrão" arquivo
grep -r "padrão" /caminho/para/diretorio # Pesquisa recursivamente em diretórios
tar
Cria e extrai arquivos compactados.
tar -cvf arquivo.tar diretorio # Cria um arquivo
tar -xvf arquivo.tar # Extrai um arquivo
tar -czvf arquivo.tar.gz diretorio # Cria um arquivo compactado
tar -xzvf arquivo.tar.gz # Extrai um arquivo compactado
Informações Avançadas do Sistema e Monitoramento
htop
Visualizador interativo de processos.
htop
vmstat
Relata estatísticas de memória virtual.
vmstat
iostat
Relata estatísticas de CPU e I/O.
iostat
Rede Avançada
netstat
Exibe conexões de rede, tabelas de roteamento, estatísticas de interfaces, conexões mascaradas e associações de multicast.
netstat
traceroute
Traça a rota que os pacotes percorrem até um host de rede.
traceroute exemplo.com
nmap
Ferramenta de exploração de rede e scanner de portas de segurança.
nmap exemplo.com
Gerenciamento de Pacotes
apt-get
Utilitário de gerenciamento de pacotes para sistemas baseados em Debian.
sudo apt-get update # Atualiza a lista de pacotes
sudo apt-get upgrade # Atualiza todos os pacotes
sudo apt-get install nome_do_pacote # Instala um pacote
sudo apt-get remove nome_do_pacote # Remove um pacote
yum
Gerenciador de pacotes para distribuições baseadas em RPM.
sudo yum update # Atualiza a lista de pacotes
sudo yum install nome_do_pacote # Instala um pacote
sudo yum remove nome_do_pacote # Remove um pacote
pacman
Gerenciador de pacotes para Arch Linux.
sudo pacman -Syu # Atualiza a lista de pacotes e todos os pacotes
sudo pacman -S nome_do_pacote # Instala um pacote
sudo pacman -R nome_do_pacote # Remove um pacote
Processamento Avançado de Texto
awk
Linguagem de escaneamento e processamento de padrões.
awk '{print $1}' arquivo # Imprime a primeira coluna de um arquivo
sed
Editor de fluxo para filtrar e transformar texto.
sed 's/antigo/novo/g' arquivo # Substitui todas as ocorrências de "antigo" por "novo"
sort
Ordena linhas de arquivos de texto.
sort arquivo
uniq
Relata ou omite linhas repetidas.
uniq arquivo
Scripts Shell
Criando um Script Shell Simples
#!/bin/bash
echo "Olá, Mundo!"
Tornando o Script Executável
chmod +x script.sh
Executando o Script
./script.sh
Agendamento de Tarefas
cron
Agenda comandos para serem executados em intervalos especificados.
Editando Tarefas cron
crontab -e # Edita as tarefas cron
Exemplo de Tarefa cron
para Atualizar o Sistema Semanalmente
0 3 * * 1 sudo apt update && sudo apt upgrade -y
systemd
Timers
Os timers systemd
também podem agendar tarefas.
Criando um Timer
- Crie um arquivo de serviço:
/etc/systemd/system/mynova_tarefa.service
[Unit] Description=Minha tarefa customizada [Service] ExecStart=/caminho/para/comando
- Crie um arquivo de timer:
/etc/systemd/system/mynova_tarefa.timer
[Unit] Description=Executa minha tarefa customizada diariamente [Timer] OnCalendar=daily [Install] WantedBy=timers.target
- Habilite e inicie o timer
bash sudo systemctl enable mynova_tarefa.timer sudo systemctl start mynova_tarefa.timer
Conclusão
Este guia cobre tanto comandos básicos quanto avançados do Linux, essenciais para o uso diário e tarefas complexas. Dominar esses comandos aumentará sua capacidade de navegar, gerenciar e solucionar problemas do seu sistema Linux de forma eficaz. Para um aprendizado mais aprofundado, explore tutoriais detalhados e fóruns da comunidade para aprimorar seu entendimento e proficiência no Linux.