Linux básico, na prática
Como o Linux organiza pastas, usuários e permissões, como instalar programas e como ver o que está rodando. É a base para trabalhar com servidores, nuvem e segurança.
1. O que é o Linux
Linux é o nome do kernel, a parte do sistema que conversa com o hardware: processador, memória, disco e rede. Em volta dele, cada distribuição junta programas, um jeito de instalar pacotes e, às vezes, uma interface gráfica. Ubuntu, Debian, Fedora e Linux Mint são distribuições.
A maioria dos servidores da internet e das máquinas na nuvem roda Linux, quase sempre sem interface gráfica: tudo é feito pelo terminal. Por isso esta lição usa só o terminal. Se você ainda não se sente confortável com ele, faça antes a lição Linha de comando para iniciantes.
Os exemplos usam o Ubuntu, a distribuição mais comum para quem está começando. Em outras distribuições, quase tudo é igual. A maior diferença está na instalação de programas, que você vê na parte 6.
2. Onde praticar sem medo
- WSL, no Windows: roda um Ubuntu dentro do Windows. Rode
wsl --installno PowerShell como administrador e reinicie. - Máquina virtual: um computador simulado dentro do seu, com programas gratuitos como o VirtualBox. Se quebrar, é só apagar e criar outra.
- Uma máquina virtual (VM) pequena na nuvem: é o mais parecido com o trabalho real. Antes, leia como funciona a cobrança do provedor e apague a máquina quando terminar, para não ter surpresa na fatura.
cat /etc/os-release. A primeira linha mostra o nome e a versão da distribuição, como PRETTY_NAME="Ubuntu 24.04.5 LTS".3. A árvore de pastas
No Linux não existe C: nem D:. Tudo fica numa árvore só, que começa na raiz, /. Até discos extras e pendrives aparecem como pastas dentro dela.
ls /
As pastas que você mais vai visitar:
| Pasta | O que guarda |
|---|---|
/home | As pastas pessoais dos usuários. A sua é /home/seu-usuario, também chamada de ~ |
/root | A pasta pessoal do administrador (root) |
/etc | Arquivos de configuração do sistema e dos programas |
/var/log | Logs, os registros do que aconteceu no sistema |
/tmp | Arquivos temporários, que podem ser apagados ao reiniciar |
/usr/bin | A maior parte dos programas que você roda, como ls e cp |
/dev | Dispositivos, como discos, representados como arquivos |
ls /etc | head para ver os primeiros arquivos de configuração. Não precisa mexer em nada: só olhar já ajuda a criar o mapa na cabeça.4. Usuários, grupos e o root
O Linux foi feito para várias pessoas usarem o mesmo computador ao mesmo tempo. Cada pessoa tem um usuário, e usuários podem fazer parte de grupos, que facilitam dar a mesma permissão para várias pessoas.
whoami
id
uid=1000(ana) gid=1000(ana) groups=1000(ana),27(sudo)
O id mostra seu número de usuário (uid), seu grupo principal (gid) e todos os seus grupos. Estar no grupo sudo quer dizer que você pode usar o comando sudo.
O root é o administrador: pode tudo, inclusive apagar o sistema inteiro. Por isso, no dia a dia, você usa seu usuário comum e pede o poder de root só quando precisa, com sudo na frente do comando.
5. Permissões: quem pode o quê
Todo arquivo tem um dono, um grupo e três tipos de permissão: ler (r), escrever (w) e executar (x). Crie uma pasta de treino e um arquivo para ver isso. O && roda o segundo comando só se o primeiro der certo, e o touch cria um arquivo vazio:
mkdir ~/treino-linux && cd ~/treino-linux
touch script.sh
ls -l script.sh
-rw-r--r-- 1 ana ana 0 out 17 17:23 script.sh
Se o seu mostrar -rw-rw-r--, tudo bem: em muitas instalações do Ubuntu, o grupo também ganha escrita por padrão. A leitura funciona do mesmo jeito.
Como ler o -rw-r--r--
| Parte | Para quem | Neste exemplo |
|---|---|---|
- | Tipo: - é arquivo, d é pasta | É um arquivo |
rw- | O dono (u, de user) | Lê e escreve |
r-- | O grupo (g) | Só lê |
r-- | Todos os outros (o, de others) | Só leem |
Mudar permissões com letras
O chmod muda as permissões. Com letras, você diz para quem (u, g, o), se acrescenta (+) ou tira (-), e qual permissão:
chmod u+x script.sh
ls -l script.sh mostra algo assim:-rwxr--r-- 1 ana ana 0 out 17 17:23 script.sh
Mudar permissões com números
Cada permissão vale um número: ler vale 4, escrever vale 2 e executar vale 1. Some os números de cada grupo de três. Por exemplo, 754 quer dizer:
- 7 para o dono: 4 + 2 + 1, ou seja, ler, escrever e executar (
rwx). - 5 para o grupo: 4 + 1, ou seja, ler e executar (
r-x). - 4 para os outros: só ler (
r--).
chmod 754 script.sh
ls -l:-rwxr-xr-- 1 ana ana 0 out 17 17:23 script.sh
Os valores mais comuns: 644 para arquivos comuns e 755 para scripts e pastas.
Por que um script não roda
Um script é um arquivo de texto com comandos. Crie um e tente rodar. O printf escreve o texto no arquivo, e cada \n vira uma quebra de linha. A primeira linha do script, #!/bin/bash, diz qual programa vai ler o arquivo. O ./ antes do nome manda rodar o arquivo que está na pasta atual.
printf '#!/bin/bash\necho "Olá, Linux"\n' > ola.sh
./ola.sh
bash: ./ola.sh: Permission denied
Falta a permissão de execução. Dê a permissão e rode de novo. Sem letra antes do +x, a execução vale para o dono, o grupo e os outros:
chmod +x ola.sh
./ola.sh
Olá, Linux
Para trocar o dono de um arquivo, existe o chown, que exige administrador: sudo chown ana:ana arquivo deixa o arquivo com o usuário ana e o grupo ana.
6. Instalar e remover programas
No Linux, você raramente baixa programas de sites. Eles vêm de repositórios, listas oficiais de programas mantidas pela distribuição, e são instalados por um gerenciador de pacotes. No Ubuntu e no Debian, ele se chama apt.
sudo apt update
Esse comando não instala nada. Ele atualiza a lista de programas e versões disponíveis. Rode antes de instalar algo.
sudo apt install tree
tree ~/treino-linux
O tree mostra pastas e arquivos em forma de árvore. Para remover:
sudo apt remove tree
- O que muda: atualiza para a versão mais nova todos os programas instalados que têm atualização. O
aptmostra a lista e pede confirmação antes. - Como desfazer: voltar versões é trabalhoso. Num servidor de verdade, atualize primeiro num ambiente de teste e tenha backup.
- Como saber que deu certo: rode
sudo apt updatede novo e veja se ainda há pacotes para atualizar. O Ubuntu às vezes deixa alguns para depois, e isso é normal.
Em outras distribuições, o nome muda: o Fedora usa o dnf (sudo dnf install tree), por exemplo. A ideia é a mesma.
7. Processos: o que está rodando
Todo programa em execução é um processo, e cada processo tem um número de identificação, o PID.
ps aux | head
O ps aux lista todos os processos, e o head mostra só as primeiras linhas. As colunas mais úteis são USER (de quem é), PID, %CPU, %MEM e COMMAND (o que está rodando). Para ver em tempo real, ordenado por uso de CPU:
top
Aperte q para sair. Existe também o htop, mais fácil de ler, que você instala com sudo apt install htop.
Encerrar um processo
Vamos criar um processo de teste que só espera 5 minutos. O & no fim faz ele rodar em segundo plano, ou seja, o terminal fica livre para outros comandos. O terminal também mostra o PID:
sleep 300 &
[1] 2541
ps aux | grep sleep
kill 2541
No resultado do grep, uma das linhas é a própria busca (grep sleep); ignore essa. Troque 2541 pelo PID que apareceu para você. O kill pede para o processo terminar. Se ele não obedecer, existe o kill -9 PID, que encerra à força, sem dar chance de salvar nada. Use como último recurso.
COMMAND antes.8. Disco e memória
df -h
Mostra o espaço de cada disco. Se o seu Ubuntu estiver em português, os nomes das colunas aparecem traduzidos. O -h deixa os números legíveis, em G (gigabytes) e M (megabytes). Olhe a coluna Use%: disco perto de 100% é uma causa clássica de sistema fora do ar.
free -h
Mostra a memória RAM. Olhe a coluna available, que é quanto ainda dá para usar. O Linux usa a memória livre como cache para acelerar o acesso ao disco, então um número baixo na coluna free nem sempre é problema.
du -sh ~/treino-linux
O du mostra quanto espaço uma pasta ocupa. É útil para achar o que está enchendo o disco.
9. Logs e serviços
Quando algo dá errado num servidor, a primeira pergunta é: o que diz o log? Na maioria das distribuições atuais, os logs do sistema são lidos com o journalctl:
journalctl -n 20
Mostra os 20 registros mais recentes. Se aparecer um aviso de permissão, rode com sudo na frente. Para acompanhar ao vivo, use journalctl -f e aperte Ctrl+C para parar. Se a saída não voltar para o prompt sozinha, aperte q; isso vale também para o systemctl abaixo.
Programas que ficam rodando o tempo todo, como um servidor web, são serviços. Eles são controlados pelo systemctl:
systemctl status cron
Mostra se o serviço cron, que roda tarefas agendadas, está ativo, desde quando e as últimas linhas de log dele. Em contêineres e em instalações antigas do WSL, o systemctl pode não funcionar, porque o gerenciador de serviços (systemd) não está ativo. Num servidor ou numa máquina virtual, ele funciona.
10. Missão final
Junte o que você aprendeu. Tente fazer cada item antes de abrir a resposta.
1. Crie um script que mostra a data e dê a permissão certa
printf '#!/bin/bash\ndate\n' > data.sh
chmod 755 data.sh
./data.sh
2. Descubra quanto espaço livre tem o disco principal
df -h /
A resposta está na coluna Avail.
3. Descubra o PID do shell em que você está
echo $$
O shell é o programa que lê e roda seus comandos dentro do terminal (no Ubuntu, o bash). O $$ guarda o PID dele. Procure esse número no ps aux.
4. Limpe a pasta de treino
cd ~ && rm -r ~/treino-linux
Confira o caminho antes de apertar Enter: o rm -r não tem volta.
chmod 777 resolve o erro, mas cria outro problema. Depois, marque no tópico que você ensinou alguém.Lição escrita em português pela Iniciativa Ako, da Rizzygo, com base nos temas do Linux Journey (em inglês). Não é uma tradução: o texto e os exemplos são próprios. Os comandos foram testados no Ubuntu 24.04, menos os de serviços e logs (systemctl e journalctl), que dependem de um ambiente com systemd.
Conteúdo aberto sob a licença CC BY 4.0. Viu um erro? Abra uma issue.