O Linux é um kernel de sistema operacional de código aberto, semelhante ao Unix, criado por Linus Torvalds em 1991. Ele gerencia hardware e recursos. Combinado com ferramentas, bibliotecas e aplicativos, torna-se um Sistema Operacional completo.
Por que o Linux domina Servidores e Nuvem?Tudo no Linux é um arquivo, inclusive dispositivos, processos e conexões de rede. O sistema organiza tudo em uma única árvore hierárquica, começando a partir da raiz /.
| Diretório | Propósito | Exemplos de Produção |
|---|---|---|
/etc | Arquivos de configuração do sistema e softwares instalados. | /etc/nginx/nginx.conf, /etc/ssh/sshd_config |
/var | Dados variáveis que mudam durante a operação (logs, caches, bancos de dados). | /var/log/syslog, /var/lib/mysql |
/home | Diretórios locais para usuários comuns. | /home/ubuntu/, /home/deploy/app/ |
/usr | Programas, utilitários e bibliotecas do sistema. | /usr/bin, /usr/lib |
/opt | Softwares de terceiros instalados por administradores. | /opt/docker/, /opt/jdk/ |
/tmp | Arquivos temporários — limpos na reinicialização. | /tmp/app.sock, /tmp/upload/ |
pwd — Mostra o diretório de trabalho atual.cd /var/log — Altera entre diretórios.ls -lah — Lista com detalhes completos e arquivos ocultos.tree -L 2 — Exibe estrutura em formato de árvore.find /var/log -name "*.log" — Pesquisa por nome, tipo e data.locate nginx.conf — Consulta rápida via banco de dados indexado.$ pwd /home/devops $ ls -lah /var/log $ find /etc -name "*.conf" -type f $ cd - # retorna ao diretório anterior
touch file.txt — Cria um arquivo vazio ou atualiza o timestamp.mkdir -p /opt/app/logs — Cria diretórios com caminhos aninhados.cp -r /etc/nginx /backup/ — Copia arquivos e diretórios recursivamente.mv oldname.txt newname.txt — Move ou renomeia.rm -r olddir/ — Remove diretório e seu conteúdo.ln -s /var/log/app.log app.log — Cria link simbólico.cat /etc/hosts — Exibe o conteúdo completo (ideal para arquivos pequenos).less /var/log/syslog — Rola para cima e para baixo em arquivos grandes.head -n 20 app.log / tail -n 50 app.log — Primeiras ou últimas linhas.tail -f /var/log/nginx/access.log — Monitora logs em tempo real.nano / vim — Editores de texto para configurações e scripts.i → modo de inserção Esc → modo normal :w → salvar :q → sair :wq → salvar e sair :q! → sair sem salvar
Permissões protegem o sistema através de três entidades: Usuário (owner), Grupo e Outros, usando r (leitura), w (escrita) e x (execução).
$ chmod 755 script.sh # rwxr-xr-x $ chmod u+x script.sh # adiciona execução ao owner $ chown -R user:group /opt/app $ chgrp -R webteam /var/www
O Linux é um sistema multiusuário. O gerenciamento adequado garante o Princípio do Menor Privilégio (PoLP) — cada processo recebe somente o acesso que precisa.
$ sudo useradd -m alice # cria usuário com home $ sudo passwd alice # define senha $ sudo usermod -aG devops alice # adiciona ao grupo $ sudo groupadd devops $ groups alice # lista grupos do usuário
Um processo é a instância de um programa em execução, identificado por um PID (Process ID).
$ ps aux # fotografia de todos os processos $ top / htop # monitoramento em tempo real $ pgrep -l nginx # localiza por nome $ kill 1234 # SIGTERM — finalização suave $ kill -9 1234 # SIGKILL — força bruta $ killall nginx
O systemd gerencia o ciclo de vida dos serviços no Linux moderno.
$ sudo systemctl start nginx # inicia o serviço $ sudo systemctl stop nginx # para o serviço $ sudo systemctl restart nginx # reinicia $ sudo systemctl reload nginx # recarrega