Comandos Básicos e Avançados

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

  1. Crie um arquivo de serviço: /etc/systemd/system/mynova_tarefa.service [Unit] Description=Minha tarefa customizada [Service] ExecStart=/caminho/para/comando
  2. 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
  3. 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.

Sair da versão mobile