Comandos Essenciais do Linux

Fundamentos do Terminal Linux

Linux oferece um poderoso conjunto de ferramentas via linha de comando. Dominar esses comandos é essencial para administração de sistemas, manipulação de arquivos, gerenciamento de processos e configuração de redes.

  1. Controle Remoto e Inicialização

Desligamento e Reinicialização


# Comandos frequentes
reboot          # reinicia o sistema
init 0          # desliga

# Outros exemplos
shutdown -h now # desliga imediatamente
shutdown -h +1  # desliga após 1 minuto
halt            # para o sistema (desliga manualmente)
poweroff        # para e desliga a energia
shutdown -r now # reinicia agora
init 6          # reinicia
logout          # encerra a sessão

Ativação do SSH


# Instalar servidor SSH (CentOS)
yum -y install openssh-server

# Instalar servidor SSH (Ubuntu)
apt -y install openssh-server

# Iniciar e habilitar serviço
systemctl start sshd
systemctl enable sshd

# Instalar ferramentas de rede (se necessário)
apt -y install net-tools
ifconfig  # exibe informações de rede

# Editar configuração SSH
sudo vi /etc/ssh/sshd_config
# Port 22
# PermitRootLogin yes
# PasswordAuthentication yes

# Reiniciar serviço
systemctl restart sshd

  1. Estrutura de Diretórios do Linux


root@ubuntu:/# tree -L 1
.
|-- efi           # arquivos de inicialização
|-- boot          # kernel, initrd, grub
|-- dev           # dispositivos (bloco, caractere)
|-- etc           # configurações do sistema
|-- home          # diretórios dos usuários
|-- root          # diretório do superusuário
|-- lib -> usr/lib  # bibliotecas estáticas e dinâmicas
|-- lib64 -> usr/lib64
|-- var           # dados variáveis (logs, cache, backups)
|-- bin -> usr/bin  # comandos executáveis do usuário
|-- sbin -> usr/sbin # comandos administrativos
|-- usr           # recursos do sistema (aplicativos)
|-- proc          # sistema de arquivos virtual (processos)
|-- sys           # informações do hardware
|-- media         # ponto de montagem para mídias removíveis
|-- mnt           # montagem temporária
|-- opt           # software de terceiros
|-- tmp           # arquivos temporários
|-- lost+found    # arquivos recuperados após falha
|-- run           # informações da inicialização
|-- srv           # dados para serviços de rede (FTP, TFTP)

  1. Comandos de Navegação e Arquivos

Formato Geral


comando [-opções] [argumentos]
# Exemplo: ls -l /home/arquivo.txt
# Exemplo: cp -r pasta1 pasta2

ls – Listar Arquivos


ls [ -a -l -h ] [caminho]
ls -a      # mostra todos (incluindo ocultos)
ls -l      # formato detalhado (lista)
ls -la     # combina -l e -a
# Arquivos ocultos começam com .

cd – Mudar de Diretório


cd [caminho]  # muda para o diretório especificado
cd            # volta para o diretório HOME

pwd – Diretório Atual


pwd   # imprime o caminho completo do diretório atual

mkdir – Criar Pastas


mkdir [-p] caminho   # cria diretório
# -p cria diretórios intermediários automaticamente
mkdir projeto
mkdir -p ~/aulas/modulo1/atividades

touch – Criar Arquivos


touch caminho   # cria arquivo vazio
touch /tmp/meu_arquivo.txt

cat / more – Visualizar Conteúdo


cat relatorio.txt    # exibe todo o conteúdo
more relatorio.txt   # exibe paginado (espaço para próxima página, q para sair)

cp – Copiar


cp [-r] origem destino   # copia arquivos ou pastas
cp documento.txt backup.txt
cp -r pasta_projeto /tmp/

mv – Mover / Renomear


mv origem destino   # move ou renomeia
mv dados.txt /home/usuario/
mv antigo_nome.txt novo_nome.txt

rm – Remover


rm [-r -f] arquivo1 arquivo2 ...
# -r: recursivo (pastas)
# -f: força (sem confirmação)
rm temp.txt
rm -r pasta_velha
rm -rf lixo/   # cuidado!
# Suporte a curingas: rm *.log, rm relatorio*

which – Localizar Programa


which python3
# /usr/bin/python3
which nano
# /usr/bin/nano

find – Buscar Arquivos


# Por nome
find / -name "config.txt"
find /home -name "*.docx"

# Por tamanho
find / -size +100M
find /var -size -1k

grep – Filtrar Linhas


grep [-n] "padrão" arquivo
# -n: mostra número da linha
grep "erro" log.txt
grep -n "sucesso" relatorio.txt
# Pode ser usado com pipe: cat /etc/passwd | grep "root"

wc – Contar Linhas, Palavras, Caracteres


wc [-l -w -c -m] arquivo
wc -l lista.txt       # número de linhas
wc -w texto.txt       # número de palavras
wc -c dados.bin       # bytes
# Combinado: cat log.txt | wc -l

Pipe (|) – Encadeamento


# Saída de um comando vira entrada do próximo
ls -la /usr/bin | grep "zip"
cat /var/log/syslog | grep "kernel" | tail -5

echo e Redirecionamento


echo "Olá mundo"
echo "Linha 1" > arquivo.txt    # sobrescreve
echo "Linha 2" >> arquivo.txt   # anexa
# Aspas invertidas executam comando: echo `date`
# Variáveis: echo $HOME

tail – Final do Arquivo


tail [-f -n] arquivo
tail -n 20 log.txt   # últimas 20 linhas
tail -f /var/log/syslog   # monitora em tempo real (Ctrl+C para sair)

  1. Editor de Texto: vi/vim


vi arquivo.txt
vim arquivo.txt   # versão melhorada com cores
# Modos: comando, inserção, modo de linha

Modo Comando Ação
i entra no modo inserção (antes do cursor)
a inserção depois do cursor
I enserção no início da linha
A inserção no final da linha
o abre nova linha abaixo
O abre nova linha acima
Esc volta ao modo comando
Navegação Tecla
Cima / k sobe
Baixo / j desce
Esquerda / h esquerda
Direita / l direita
0 início da linha
$ final da linha
PgUp/PgDn página acima/abaixo
/ busca para frente
n/N próximo/anterior na busca
Edição Comando
dd apaga linha
ndd apaga n linhas (ex: 5dd)
yy copia linha
nyy copia n linhas
p cola
u desfaz
Ctrl+r refaz
gg vai para primeira linha
G vai para última linha
dG apaga até o final
dgg apaga até o início
d$ apaga até o final da linha
d0 apaga até o início da linha
Modo de Linha Comando
:wq salva e sai
:q! sai sem salvar
:w salva
:set nu mostra números de linha
:set paste modo colar sem indentação

Ajuda


comando --help   # resumo de opções
man comando      # manual completo (ex: man ls)
info comando     # documentação alternativa

  1. Usuários e Permissões

Superusuário (root)


su - howard         # muda para o usuário howard (carrega ambiente)
su root             # muda para root (sem - não carrega perfil)
# Para voltar: exit ou Ctrl+D

sudo – Executar como root


sudo comando        # executa com privilégios de root
# Para configurar: visudo ou editar /etc/sudoers
howard ALL=(ALL) NOPASSWD:ALL

Gerenciamento de Grupos


groupadd grupo_novo   # cria grupo
groupdel grupo_existente   # remove grupo

Gerenciamento de Usuários


useradd [-g grupo] [-d home] nome   # cria usuário
# -g: grupo primário, -d: diretório home
userdel [-r] nome   # remove usuário (-r remove home)
id nome   # exibe UID, GID e grupos do usuário
usermod -aG grupo nome   # adiciona usuário a um grupo
getent passwd   # lista todos os usuários do sistema

Permissões


# Leitura (r=4), Escrita (w=2), Execução (x=1)
# Dono | Grupo | Outros
chmod u=rwx,g=rx,o=r arquivo   # 754
chmod -R 755 pasta/   # recursivo
chown dono:grupo arquivo   # altera proprietário (apenas root)
chown -R usuario:grupo pasta/

  1. Utilitários Essenciais

Atalhos do Terminal


Ctrl+D   # logout
Ctrl+R   # busca reversa no histórico
Ctrl+A   # início da linha
Ctrl+E   # final da linha
Ctrl+←/→ # pula palavra
history  # lista comandos anteriores
!comando # executa último comando que começa com "comando"

Gerenciamento de Pacotes


# CentOS/RHEL
yum install wget
yum remove wget
yum search wget

# Ubuntu/Debian
apt install wget
apt remove wget
apt search wget

# Pacotes locais .rpm/.deb
rpm -ivh pacote.rpm
dpkg -i pacote.deb

systemctl – Serviços


systemctl start   | stop | status | enable | disable  nome_servico
# Exemplos: sshd, firewalld, NetworkManager
systemctl enable ntp

ln – Links


ln -s alvo link   # link simbólico (atalho)
ln -s /etc/nginx /home/usuario/nginx
rm link   # remove o link (não afeta o destino)

date – Data e Hora


date   # data e hora atuais
date "+%Y-%m-%d %H:%M:%S"   # formato personalizado
date -d "+1 day" +%Y%m%d    # data de amanhã
date -d "-1 month" +%Y-%m   # mês passado
# Sincronizar timezone: ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime

ifconfig / hostname – Rede


ifconfig   # exibe interfaces de rede (instalar net-tools)
hostname   # nome do host
hostnamectl set-hostname novo-nome   # altera permanentemente
cat /etc/hosts   # resolução local de nomes

Ping e Download


ping -c 4 google.com   # testa conectividade (4 pacotes)
wget URL   # download de arquivo
curl -O URL   # download via HTTP

Portas – nmap / netstat


nmap 127.0.0.1   # escaneia portas abertas
netstat -anp | grep :80   # verifica qual processo usa a porta 80

Processos – ps / top / kill


ps -ef   # lista todos os processos
ps aux   # formato alternativo
top      # monitor em tempo real (q para sair)
kill 1234        # encerra processo com PID 1234
kill -9 5678     # força encerramento
ps -ef | grep nginx

Monitoramento – df / iostat / sar


df -h                # espaço em disco (human readable)
iostat -x 2 3        # estatísticas de I/O (2s, 3 vezes)
sar -n DEV 1 5       # tráfego de rede (1s, 5 vezes)

Variáveis de Ambiente


env              # lista todas as variáveis
echo $PATH       # exibe o PATH
export MEU_VAR="valor"   # variável temporária (sessão)
# Para tornar permanente:
echo 'export MEU_VAR="valor"' >> ~/.bashrc   # usuário atual
source ~/.bashrc
# Para todos os usuários: /etc/profile
# PATH customizado:
export PATH=$PATH:/home/usuario/meu_scripts

Compactação e Compressão


# tar (gzip)
tar -zcvf backup.tar.gz pasta/   # compactar
tar -zxvf backup.tar.gz -C /destino   # descompactar

# zip
zip -r arquivos.zip pasta/   # compactar
unzip arquivos.zip -d /destino   # descompactar

SCP – Transferência entre servidores


scp arquivo.txt usuario@servidor:/caminho/   # enviar
scp usuario@servidor:/caminho/arquivo.txt .   # receber
scp -r pasta/ usuario@servidor:~/   # pasta recursiva

  1. Considerações Finais

Esses comandos formam a base do trabalho diário com Linux. Pratique em um ambiente virtual ou container para ganhar fluência. Use man e --help para explorar opções avançadas de cada ferramenta.

Tags: Linux Comandos shell Bash SSH

Publicado em 6-30 06:08