===== Nível Básico =====
=== 1. Verificação de Informações do Sistema ===
* **uname** - Exibe informações básicas sobre o sistema.
- Exemplo de uso: uname -a
- Descrição: Mostra informações detalhadas sobre o kernel, nome do host, versão do sistema operacional e arquitetura do hardware.
* **hostnamectl** - Exibe ou modifica o nome do host do sistema.
- Exemplo de uso: hostnamectl
- Descrição: Exibe o nome atual do host, o sistema operacional e informações do kernel. Pode ser usado para alterar o nome do host.
=== 2. Gerenciamento de Pacotes com `apt` (Debian/Ubuntu) ===
* **apt update** - Atualiza a lista de pacotes disponíveis.
- Exemplo de uso: sudo apt update
- Descrição: Atualiza os índices dos repositórios de pacotes, garantindo que o sistema tenha as informações mais recentes sobre pacotes disponíveis.
* **apt upgrade** - Atualiza todos os pacotes instalados.
- Exemplo de uso: sudo apt upgrade
- Descrição: Instala as últimas versões de todos os pacotes atualmente instalados no sistema.
=== 3. Monitoramento Simples de Uso de Recursos ===
* **free** - Exibe o uso da memória no sistema.
- Exemplo de uso: free -h
- Descrição: Mostra o total, o uso atual e a memória livre no sistema, de forma legível (em MB/GB).
* **df** - Verifica o uso do disco.
- Exemplo de uso: df -h
- Descrição: Exibe o espaço total, utilizado e disponível em cada sistema de arquivos montado, de forma legível (em MB/GB).
=== 4. Gerenciamento de Usuários ===
* **whoami** - Exibe o usuário atual logado.
- Exemplo de uso: whoami
- Descrição: Exibe o nome do usuário que está executando o comando.
* **useradd** - Cria um novo usuário no sistema.
- Exemplo de uso: sudo useradd novo_usuario
- Descrição: Adiciona um novo usuário chamado ''novo_usuario'' ao sistema.
===== Nível Intermediário =====
=== 1. Gerenciamento de Serviços com `systemctl` ===
* **systemctl status** - Verifica o status de um serviço.
- Exemplo de uso: systemctl status apache2
- Descrição: Mostra o status atual do serviço ''apache2'', incluindo se ele está em execução, quando foi iniciado e logs recentes.
* **systemctl start** - Inicia um serviço.
- Exemplo de uso: sudo systemctl start apache2
- Descrição: Inicia o serviço ''apache2'', ativando-o se ele estiver parado.
* **systemctl stop** - Para um serviço.
- Exemplo de uso: sudo systemctl stop apache2
- Descrição: Para o serviço ''apache2'', encerrando sua execução.
* **systemctl enable** - Habilita um serviço para iniciar automaticamente no boot.
- Exemplo de uso: sudo systemctl enable apache2
- Descrição: Configura o serviço ''apache2'' para iniciar automaticamente durante a inicialização do sistema.
=== 2. Controle de Processos ===
* **ps aux** - Lista todos os processos em execução no sistema.
- Exemplo de uso: ps aux
- Descrição: Exibe uma lista de todos os processos em execução, com informações sobre o usuário, consumo de CPU, memória e mais.
* **kill** - Envia um sinal para encerrar um processo.
- Exemplo de uso: sudo kill 1234
- Descrição: Envia o sinal de término (SIGTERM) para o processo com o PID 1234, solicitando que ele encerre a execução.
* **killall** - Encerra todos os processos com o mesmo nome.
- Exemplo de uso: sudo killall apache2
- Descrição: Encerra todos os processos relacionados ao serviço ou aplicativo ''apache2''.
=== 3. Gerenciamento de Pacotes com `yum` (Red Hat/CentOS) ===
* **yum update** - Atualiza todos os pacotes instalados.
- Exemplo de uso: sudo yum update
- Descrição: Atualiza todos os pacotes instalados no sistema para suas versões mais recentes.
* **yum install** - Instala novos pacotes no sistema.
- Exemplo de uso: sudo yum install httpd
- Descrição: Instala o pacote ''httpd'' (Apache Web Server) no sistema.
=== 4. Controle de Permissões com `sudo` ===
* **sudo visudo** - Edita o arquivo de configuração do sudo.
- Exemplo de uso: sudo visudo
- Descrição: Abre o arquivo de configuração ''/etc/sudoers'' em um editor seguro, onde podem ser definidas permissões de superusuário para usuários específicos.
* **sudo -u** - Executa um comando como outro usuário.
- Exemplo de uso: sudo -u usuario comando
- Descrição: Executa o ''comando'' como o usuário especificado, útil para tarefas administrativas em nome de outro usuário.
===== Nível Avançado =====
=== 1. Agendamento de Tarefas com `cron` ===
* **crontab -e** - Edita as tarefas agendadas para um usuário.
- Exemplo de uso: crontab -e
- Descrição: Abre o arquivo de tarefas do cron para edição, permitindo que você agende comandos ou scripts para execução automática em horários específicos.
* **crontab -l** - Lista as tarefas agendadas do cron.
- Exemplo de uso: crontab -l
- Descrição: Exibe todas as tarefas agendadas para o usuário atual no cron.
* Exemplo de agendamento no cron:
- Exemplo de uso: 0 2 * * * /home/usuario/backup.sh
- Descrição: Agenda o script ''backup.sh'' para ser executado todos os dias às 2h da manhã.
=== 2. Gerenciamento de Disco com `fdisk` e `mkfs` ===
* **fdisk -l** - Lista as partições do disco.
- Exemplo de uso: sudo fdisk -l
- Descrição: Exibe a tabela de partições de todos os discos disponíveis no sistema.
* **mkfs.ext4** - Formata uma partição no sistema de arquivos ext4.
- Exemplo de uso: sudo mkfs.ext4 /dev/sda1
- Descrição: Cria um sistema de arquivos ext4 na partição ''/dev/sda1'', preparando-a para armazenar dados.
=== 3. Gerenciamento de Volumes Lógicos com LVM ===
* **pvcreate** - Cria um volume físico.
- Exemplo de uso: sudo pvcreate /dev/sdb1
- Descrição: Inicializa o dispositivo ''/dev/sdb1'' como um volume físico para ser utilizado no LVM (Logical Volume Manager).
* **vgcreate** - Cria um grupo de volumes.
- Exemplo de uso: sudo vgcreate vg_dados /dev/sdb1 /dev/sdc1
- Descrição: Cria um grupo de volumes chamado ''vg_dados'' utilizando os volumes físicos ''/dev/sdb1'' e ''/dev/sdc1''.
* **lvcreate** - Cria um volume lógico.
- Exemplo de uso: sudo lvcreate -L 50G -n lv_backup vg_dados
- Descrição: Cria um volume lógico chamado ''lv_backup'' com 50 GB de espaço dentro do grupo de volumes ''vg_dados''.
=== 4. Análise de Logs com `journalctl` ===
* **journalctl** - Exibe logs do systemd.
- Exemplo de uso: sudo journalctl -xe
- Descrição: Exibe os logs detalhados do systemd, incluindo erros recentes e eventos críticos. O parâmetro ''-xe'' mostra eventos críticos e erros que ocorreram recentemente.
* **journalctl --since** - Filtra logs por tempo.
- Exemplo de uso: sudo journalctl --since "2024-10-01 12:00:00"
- Descrição: Exibe todos os logs do systemd desde o horário especificado.
=== 5. Sincronização de Arquivos com `rsync` ===
* **rsync** - Sincroniza arquivos e diretórios entre diferentes locais.
- Exemplo de uso: rsync -av /home/usuario/projeto/ /backup/projeto/
- Descrição: Sincroniza o conteúdo do diretório ''/projeto'' com o diretório de backup, copiando apenas os arquivos que foram modificados.
* **rsync -e ssh** - Sincroniza arquivos entre máquinas via SSH.
- Exemplo de uso: rsync -avz -e ssh /home/usuario/projeto/ usuario@servidor_remoto:/backup/projeto/
- Descrição: Sincroniza o diretório ''/projeto'' entre a máquina local e o servidor remoto, utilizando o SSH para garantir a transferência segura.
=== 6. Gerenciamento de Recursos com `ulimit` ===
* **ulimit -n** - Define o número máximo de arquivos abertos por processo.
- Exemplo de uso: ulimit -n 4096
- Descrição: Define o limite máximo de 4096 arquivos abertos por processo no shell atual. Este comando é útil para evitar esgotamento de recursos em servidores de alta carga.
* **ulimit -u** - Define o número máximo de processos que um usuário pode criar.
- Exemplo de uso: ulimit -u 512
- Descrição: Limita o número máximo de processos que o usuário pode executar simultaneamente para 512, ajudando a controlar o consumo de recursos do sistema.
===== Nível Especializado =====
=== 1. Automação com `Ansible` ===
* **ansible-playbook** - Executa playbooks para automação de configurações e gerenciamento de servidores.
- Exemplo de uso: ansible-playbook -i inventario.yml site.yml
- Descrição: Executa o playbook ''site.yml'' usando o arquivo de inventário ''inventario.yml'', que contém a lista de hosts e suas respectivas configurações.
* **ansible -m** - Executa módulos Ansible diretamente.
- Exemplo de uso: ansible all -m ping -i inventario.yml
- Descrição: Usa o módulo ''ping'' para verificar a conectividade com todos os hosts listados no inventário.
=== 2. Gerenciamento de Certificados com `openssl` ===
* **openssl genpkey** - Gera uma chave privada.
- Exemplo de uso: openssl genpkey -algorithm RSA -out chave_privada.pem -aes256
- Descrição: Gera uma chave privada RSA criptografada com AES-256 e a salva no arquivo ''chave_privada.pem''.
* **openssl req** - Gera uma solicitação de assinatura de certificado (CSR).
- Exemplo de uso: openssl req -new -key chave_privada.pem -out cert.csr
- Descrição: Cria uma solicitação de assinatura de certificado (CSR) usando a chave privada ''chave_privada.pem''. A CSR será usada para obter um certificado digital de uma autoridade certificadora (CA).
* **openssl x509** - Converte, exibe ou assina certificados digitais.
- Exemplo de uso: openssl x509 -in cert.csr -signkey chave_privada.pem -out cert.crt
- Descrição: Assina a CSR com a chave privada e gera um certificado assinado autoassinado ''cert.crt''.
=== 3. Containers e Orquestração com Docker e Kubernetes ===
* **docker run** - Inicia um container Docker.
- Exemplo de uso: docker run -d --name app_container -p 80:80 app_imagem
- Descrição: Inicia um container em segundo plano com o nome ''app_container'', usando a imagem ''app_imagem'' e mapeando a porta 80 do host para a porta 80 do container.
* **docker-compose up** - Gerencia múltiplos containers com Docker Compose.
- Exemplo de uso: docker-compose up -d
- Descrição: Inicia todos os containers definidos no arquivo ''docker-compose.yml'' em segundo plano.
* **kubectl apply** - Aplica arquivos de configuração do Kubernetes para gerenciar containers.
- Exemplo de uso: kubectl apply -f deployment.yml
- Descrição: Aplica a configuração especificada no arquivo ''deployment.yml'', criando ou atualizando os recursos no cluster Kubernetes, como pods, serviços e deployments.
=== 4. Segurança com SELinux e AppArmor ===
* **getenforce** - Verifica o status do SELinux.
- Exemplo de uso: getenforce
- Descrição: Exibe o status atual do SELinux, que pode estar em modo ''enforcing'' (forçando políticas de segurança), ''permissive'' (apenas alertando), ou ''disabled''.
* **setenforce** - Altera o modo do SELinux.
- Exemplo de uso: sudo setenforce 0
- Descrição: Desativa temporariamente a aplicação das políticas de segurança do SELinux, colocando-o em modo permissivo.
* **aa-enforce** - Ativa um perfil AppArmor para forçar as políticas de segurança.
- Exemplo de uso: sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx
- Descrição: Coloca o perfil de segurança do AppArmor associado ao ''nginx'' em modo de aplicação, garantindo que as regras de segurança sejam aplicadas.
=== 5. Auditoria e Monitoramento de Segurança com `auditd` ===
* **auditctl** - Configura regras de auditoria de acesso.
- Exemplo de uso: auditctl -w /etc/passwd -p wa -k monitor_passwd
- Descrição: Monitora o arquivo ''/etc/passwd'' para detectar e registrar tentativas de escrita e acesso, associando os eventos de auditoria com a chave ''monitor_passwd''.
* **ausearch** - Pesquisar eventos de auditoria.
- Exemplo de uso: ausearch -k monitor_passwd
- Descrição: Pesquisa no log de auditoria todos os eventos relacionados à chave ''monitor_passwd'', fornecendo detalhes sobre quem tentou acessar ou modificar o arquivo.
=== 6. Backup e Recuperação com `rsnapshot` ===
* **rsnapshot** - Ferramenta de backup incremental.
- Exemplo de uso: rsnapshot hourly
- Descrição: Executa um backup incremental baseado na configuração definida no arquivo ''/etc/rsnapshot.conf'', armazenando backups por hora.
* **rsnapshot configtest** - Verifica a configuração do rsnapshot.
- Exemplo de uso: rsnapshot configtest
- Descrição: Valida a configuração do rsnapshot antes de executar um backup, garantindo que todas as opções no arquivo de configuração estejam corretas.