Piolinux

Dicas Técnicas de Linux - PioLinux

🔧 Sobre as Dicas Técnicas de Linux

Dicas técnicas de Linux ajudam muito em horas em que tudo dá errado. Não se desespere, pois são várias dicas para ajudar a dominar o sistema operacional, arrumar erros, melhorar o desempenho e deixar os processos automatizados.

Seja você um usuário iniciante ou experiente, sempre há algo novo para aprender. Um exemplo de uma dica simples é como utilizar o comando top no terminal para monitorar processos do Sistema Linux, o que pode fazer a diferença na rotina diária.

Dicas técnicas são como um canivete suíço: práticas, muito úteis para se aventurar no mundo Linux nas horas mais difíceis.

🔧 Terminal e Shell

  • 1. Alias para Comandos Longos

    Crie atalhos! Use alias gs='git status' no seu ~/.bashrc ou ~/.zshrc. Recarregue com source ~/.bashrc (ou .zshrc).

  • 2. Busca Reversa de Comandos

    Pressione Ctrl + R no terminal e digite parte de um comando anterior para encontrá-lo rapidamente no histórico.

  • 3. Pesquisar Histórico Específico

    Use history | grep apt para encontrar todos os comandos que você executou que contêm "apt". Útil para relembrar o que fez.

  • 4. Tornar Scripts Executáveis

    Após criar um script shell (ex: meuscript.sh), dê permissão de execução com chmod +x meuscript.sh. Depois, rode-o com ./meuscript.sh.

  • 5. Monitoramento em Tempo Real

    O comando watch executa um comando repetidamente e mostra a saída. Ex: watch -n 1 'df -h' mostra o uso de disco a cada segundo.

  • 6. Auto-completar com TAB

    Sempre use a tecla TAB para autocompletar nomes de arquivos, diretórios e comandos. Evita erros de digitação e economiza tempo.

  • 7. Navegar Diretórios Rapidamente

    cd - te leva de volta ao diretório anterior. Útil para alternar entre dois caminhos frequentemente usados.

  • 8. Limpar a Tela do Terminal

    Use clear ou o atalho Ctrl + L para limpar a tela do terminal, deixando-o mais organizado.

  • 9. Executar Comandos com `sudo`

    Para executar um comando como superusuário, use sudo antes dele. Ex: sudo apt update. Sempre use com cautela!

  • 10. Ver Conteúdo de Arquivos

    Use cat <arquivo> para ver o conteúdo de um arquivo. Para arquivos grandes, less <arquivo> é melhor (use setas e q para sair).

  • 11. Renomear/Mover Arquivos

    O comando mv <origem> <destino> serve tanto para mover quanto para renomear arquivos e diretórios.

  • 12. Copiar Arquivos e Diretórios

    Use cp <origem> <destino> para copiar arquivos. Para copiar diretórios e seu conteúdo, use cp -r <origem_dir> <destino_dir>.

  • 13. Remover Arquivos e Diretórios

    rm <arquivo> remove um arquivo. Para diretórios (e seu conteúdo), use rm -r <diretorio>. Cuidado, pois não vai para a lixeira!

  • 14. Criar Diretórios Aninhados

    Use mkdir -p pasta/subpasta/subsubpasta para criar múltiplos diretórios aninhados de uma vez, sem precisar criar um por um.

  • 15. Mostrar o Manual de um Comando

    Sempre que tiver dúvida sobre um comando, digite man <comando> para ver seu manual completo. Ex: man ls.

  • 16. Redirecionar Saída para um Arquivo

    Use > para redirecionar a saída de um comando para um arquivo (cria ou sobrescreve) e >> para adicionar ao final do arquivo.

    ls -l > lista.txt
    echo "Nova linha" >> lista.txt
  • 17. Utilizar Comandos com `&&` e `||`

    comando1 && comando2 executa o `comando2` APENAS se `comando1` for bem-sucedido. comando1 || comando2 executa o `comando2` APENAS se `comando1` FALHAR.

  • 18. Executar Comandos em Segundo Plano

    Adicione `&` ao final de um comando para executá-lo em segundo plano, liberando o terminal. Ex: firefox &.

  • 19. Matar Processos por Nome ou PID

    Use kill <PID> para matar um processo pelo ID. Para matar por nome, use pkill <nome_do_processo> ou killall <nome_do_processo>.

  • 20. Ver Uso de Disco e Diretórios

    df -h mostra o espaço livre em partições. du -sh * mostra o tamanho de cada pasta no diretório atual.

📦 Gerenciamento de Pacotes

  • 21. Atualizar e Fazer Upgrade (Debian/Ubuntu)

    Sempre use sudo apt update && sudo apt upgrade -y para manter seu sistema e pacotes atualizados e seguros.

  • 22. Limpar Pacotes Não Usados (Debian/Ubuntu)

    Após desinstalar softwares, use sudo apt autoremove para remover dependências que não são mais necessárias e liberar espaço.

  • 23. Limpar Cache de Pacotes (Debian/Ubuntu)

    Para liberar espaço, use sudo apt clean. Isso remove os arquivos de pacote (`.deb`) baixados que estão no cache.

  • 24. Instalar Pacotes Específicos (Debian/Ubuntu)

    Use sudo apt install <nome_do_pacote>. Você pode instalar múltiplos pacotes de uma vez: sudo apt install firefox vlc.

  • 25. Remover Pacotes (Debian/Ubuntu)

    sudo apt remove <nome_do_pacote> desinstala o programa. Adicione --purge (sudo apt purge <pacote>) para remover também os arquivos de configuração.

  • 26. Procurar Pacotes (Debian/Ubuntu)

    Use apt search <termo> para encontrar pacotes disponíveis nos repositórios que correspondem à sua busca.

  • 27. Detalhes de um Pacote (Debian/Ubuntu)

    Para ver informações detalhadas sobre um pacote antes de instalar, use apt show <nome_do_pacote>.

  • 28. Usar o Yay no Arch Linux (AUR)

    No Arch e derivados, o yay é um helper para o AUR (Arch User Repository). Use yay -S <nome_do_pacote> para instalar pacotes não oficiais.

  • 29. Limpar Cache no Fedora (DNF)

    Para sistemas baseados em Fedora, use sudo dnf clean all para limpar o cache de pacotes baixados e metadados.

  • 30. Instalar Pacotes no Fedora (DNF)

    O gerenciador de pacotes padrão é o DNF. Use sudo dnf install <nome_do_pacote> para instalar softwares.

  • 31. Desinstalar Pacotes no Fedora (DNF)

    Para remoção um pacote no Fedora, utilize o comando sudo dnf remove <nome_do_pacote>.

  • 32. Atualizar Sistema no Fedora (DNF)

    Mantenha seu Fedora atualizado com sudo dnf upgrade --refresh.

  • 33. Gerenciamento de Pacotes Universal (Snap)

    Snaps são pacotes universais. Use sudo snap install <app> para instalar, snap remove <app> para remover. Funcionam em várias distros.

  • 34. Gerenciamento de Pacotes Universal (Flatpak)

    Flatpaks são outra opção universal. Use flatpak install flathub <app>. Eles oferecem isolamento e consistência entre distribuições.

  • 35. Ver Pacotes Instalados (Debian/Ubuntu)

    Para listar todos os pacotes instalados em sistemas baseados em Debian, use apt list --installed.

🌐 Comandos de Rede

  • 36. Encontrar Seu IP Local

    Use ip a ou ip addr para ver seus endereços IP locais, interfaces de rede e seus estados.

  • 37. Encontrar Seu IP Público

    Para saber seu IP que é visível na internet, use curl ifconfig.me ou curl ipinfo.io/ip.

  • 38. Testar Conexão com a Internet

    O comando ping google.com verifica se você tem conexão com a internet e mede o tempo de resposta.

  • 39. Ver Portas Abertas e Conexões

    Use sudo netstat -tulpn para listar todas as portas de rede abertas e os programas que as estão usando.

  • 40. Traçar Rota de Pacotes

    O comando traceroute <destino> (ou mtr <destino>) mostra o caminho que seus pacotes fazem até um destino, útil para diagnosticar problemas de rede.

  • 41. Testar Conectividade DNS

    Use dig <dominio> ou nslookup <dominio> para consultar servidores DNS e verificar a resolução de nomes de domínio.

  • 42. Ver Status de Interfaces de Rede

    O comando ip link show mostra o status de todas as suas interfaces de rede (ativas/inativas).

  • 43. Reiniciar o Serviço de Rede

    Se tiver problemas de conexão, tente reiniciar o NetworkManager: sudo systemctl restart NetworkManager.

  • 44. Configurar um Endereço IP Temporário

    Para configurar um IP manual e temporário em uma interface: sudo ip a add 192.168.1.100/24 dev eth0.

  • 45. Bloquear um IP com Iptables

    Para realizar um comando de bloquear um IP, use: sudo iptables -A INPUT -s <IP_a_bloquear> -j DROP. Lembre-se de salvar as regras.

🛠️ Scripts e Automatização

  • 46. Agendar Tarefas com Crontab

    Edite seu crontab pessoal com crontab -e. Ex: @daily /caminho/do/seu/script.sh executa o script uma vez por dia.

  • 47. Criar Backups com Rsync

    O rsync é excelente para backups incrementais e sincronização: rsync -avz /origem /destino. O `z` comprime dados.

  • 48. Compactar e Descompactar Arquivos

    Use tar -cvf backup.tar.gz /pasta_a_comprimir para compactar e tar -xvf backup.tar.gz para descompactar.

  • 49. Criar um Serviço Customizado com Systemd

    Crie um arquivo `.service` em /etc/systemd/system/ para automatizar a inicialização de scripts ou aplicativos no boot.

  • 50. Filtrar Texto com `grep`

    grep -r "termo" /caminho/da/pasta busca recursivamente por "termo" em todos os arquivos da pasta. Use -i para ignorar caixa.

  • 51. Transformar Texto com `sed`

    O `sed` é um editor de fluxo. Ex: sed 's/antigo/novo/g' arquivo.txt substitui todas as ocorrências de "antigo" por "novo" em um arquivo.

  • 52. Processar Dados com `awk`

    awk '{print $1}' arquivo.txt imprime a primeira coluna de cada linha de um arquivo. Muito poderoso para relatórios e extração de dados.

  • 53. Laços de Repetição em Bash

    Exemplo de loop `for`:

    for i in $(ls); do echo "Arquivo: $i"; done

    Itera sobre a saída do ls.

  • 54. Condicionais em Bash

    Use `if` para lógica condicional:

    if [ -f "arquivo.txt" ]; then echo "Existe!"; fi

    Verifica se `arquivo.txt` é um arquivo.

  • 55. Capturar Saída de Comando em Variável

    Use `$()` ou backticks `` ` ``: MINHA_VAR=$(ls -l). Isso armazena a saída do comando em uma variável para uso posterior no script.

🖥️ Desenvolvimento Web com Linux

  • 56. Servidor HTTP Rápido para Testes

    Para testar arquivos HTML/CSS/JS localmente, navegue até a pasta do seu projeto e execute python3 -m http.server. Acesse http://localhost:8000.

  • 57. Hospede Sites Grátis com Neocities

    Neocities é uma excelente plataforma para hospedar sites estáticos gratuitamente. É perfeito para projetos pessoais e para aprender HTML/CSS.

  • 58. Otimização SEO com Meta Tags

    Utilize <meta name="keywords"> e <meta name="description"> em seu HTML para ajudar motores de busca a entenderem o conteúdo da sua página.

  • 59. Instalar Node.js e NPM

    Para desenvolvimento JavaScript, instale Node.js e NPM (Node Package Manager). Use `nvm` (Node Version Manager) para gerenciar múltiplas versões.

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    nvm install node
  • 60. Configurar Ambiente PHP/Apache

    Para desenvolvimento PHP, instale Apache e PHP: sudo apt install apache2 php libapache2-mod-php php-mysql (Debian/Ubuntu).

  • 61. Usar Docker para Ambientes Dev Isolados

    Crie ambientes de desenvolvimento web isolados usando Docker. Isso garante que suas dependências de projeto não entrem em conflito com as do sistema.

  • 62. Ferramentas de Linha de Comando Web

    Use curl para testar APIs, wget para baixar arquivos, jq para parsear JSON e httpie como um cliente HTTP amigável no terminal.

  • 63. Editores de Código para Web Dev

    VS Code com suas extensões para HTML, CSS, JavaScript e frameworks é uma escolha excelente e popular para desenvolvimento web no Linux.

  • 64. Versionamento de Código com Git

    Use Git para controlar versões do seu código e colaborar em projetos. Essencial para qualquer desenvolvedor.

  • 65. Live Reloading com BrowserSync

    Para ver as mudanças no navegador automaticamente ao salvar arquivos (HTML, CSS, JS), instale e configure o BrowserSync (via npm).

🗄️ Sistema de Arquivos

  • 66. Entender Permissões de Arquivos

    As permissões são rwx (read, write, execute) para proprietário, grupo e outros. Use chmod para alterá-las (ex: chmod 755 script.sh).

  • 67. Alterar Proprietário e Grupo

    Utilize sudo chown <usuario>:<grupo> <arquivo> para mudar o proprietário e o grupo de um arquivo ou diretório.

  • 68. Criar Links Simbólicos

    ln -s <destino_original> <link_simbolico> cria um atalho (link simbólico) para um arquivo ou diretório, útil para organizar o sistema.

  • 69. Montar Partições e Dispositivos

    Use sudo mount /dev/sdb1 /mnt/meu_pendrive para montar dispositivos. Para desmontar, sudo umount /mnt/meu_pendrive.

  • 70. Procurar Arquivos por Nome

    O comando `find` é poderoso. Ex: find /home -name "*.txt" procura todos os arquivos `.txt` no diretório `/home`.

  • 71. Ver Tipo de Arquivo

    Use file <arquivo> para determinar o tipo de um arquivo (texto, imagem, executável, etc.) com base no seu conteúdo.

  • 72. Compactar e Descompactar Tar.gz

    Para criar: tar -czvf arquivo.tar.gz /pasta/. Para extrair: tar -xzvf arquivo.tar.gz.

  • 73. Sincronizar Relógio do Sistema

    Utilize `timedatectl set-ntp true` para sincronizar o relógio do sistema com servidores NTP (Network Time Protocol).

  • 74. Alterar Senha de Usuário

    Para mudar sua própria senha, use passwd. Para mudar a senha de outro usuário (como root), use sudo passwd <usuario>.

  • 75. Listar Processos por Usuário

    Use ps -fu <usuario> para listar todos os processos sendo executados por um usuário específico.

🔒 Segurança e Privacidade

  • 76. Mantenha Seu Sistema Atualizado

    A primeira linha de defesa. Atualizações trazem patches de segurança essenciais. Não ignore as notificações de update.

  • 77. Use Senhas Fortes e Únicas

    Combine letras maiúsculas/minúsculas, números e símbolos. Use um gerenciador de senhas como KeepassXC.

  • 78. Habilite o Firewall (UFW)

    Se sua distro não vem com um firewall ativado, use o UFW para controle simples e eficaz de portas. sudo ufw enable.

  • 79. Use Criptografia de Disco

    Cripte seu disco rígido durante a instalação do Linux. Isso protege seus dados se o dispositivo for perdido ou roubado.

  • 80. Acesse Remotamente com SSH Keys

    Em vez de senha, use chaves SSH para acesso remoto. Mais seguro e conveniente. Gere com ssh-keygen.

  • 81. Verifique Logs do Sistema

    Monitore logs em /var/log/ ou use journalctl para procurar atividades suspeitas ou erros do sistema.

  • 82. Instale Software de Fontes Confiáveis

    Prefira repositórios oficiais da sua distribuição ou Flatpaks/Snaps. Evite baixar executáveis de fontes desconhecidas.

  • 83. Verifique Somas de Verificação (Checksums)

    Ao baixar ISOs ou pacotes, verifique o checksum (MD5, SHA256) para garantir que o arquivo não foi corrompido ou adulterado.

    sha256sum <arquivo.iso>
  • 84. Desabilite Serviços Desnecessários

    Serviços rodando em segundo plano podem ser um risco. Desabilite o que você não usa com sudo systemctl disable <serviço>.

  • 85. Tenha um Bom Backup Estratégico

    A melhor segurança contra perda de dados. Siga a regra 3-2-1: 3 cópias, 2 mídias diferentes, 1 fora do local.

⚡ Hardware e Desempenho

  • 86. Monitore Uso de CPU/Memória

    Use top, htop ou o monitor de sistema da sua interface gráfica para ver o uso de recursos em tempo real.

  • 87. Gerencie o Consumo de Energia

    Instale TLP para otimizar o uso de bateria em notebooks: sudo apt install tlp tlp-rdw e sudo tlp start.

  • 88. Verifique Informações do Hardware

    Use lshw para listar informações detalhadas do hardware. lspci para dispositivos PCI, lsusb para USB.

  • 89. Otimize a Troca (Swap)

    Ajuste o `swappiness` (padrão 60) para controlar a frequência de uso da swap. Um valor menor (ex: 10) faz o sistema preferir a RAM.

    sudo sysctl vm.swappiness=10
    echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
  • 90. Limpe Arquivos Temporários

    Regularmente limpe /tmp e caches de navegador para liberar espaço e melhorar o desempenho geral do sistema.

  • 91. Use um Ambiente de Desktop Leve

    Se seu hardware é antigo, considere XFCE, LXQt, MATE. Eles consomem menos RAM e CPU que GNOME ou KDE Plasma.

  • 92. Gerencie Início de Aplicativos

    Desabilite aplicativos que iniciam automaticamente com o sistema e que você não usa. Isso acelera o boot e libera recursos.

  • 93. Verifique a Saúde do Disco

    Use smartctl (parte do pacote smartmontools) para verificar a saúde do seu SSD ou HDD. Ex: sudo smartctl -a /dev/sda.

  • 94. Ajuste Prioridade de Processos (`nice` e `renice`)

    Use `nice -n 10 <comando>` para iniciar um processo com menor prioridade, ou `renice -n 10 -p <PID>` para alterar a prioridade de um processo rodando.

  • 95. Monitore Temperatura da CPU/GPU

    Instale `lm-sensors` e `fancontrol`. Use `sensors` para ver temperaturas. Essencial para evitar superaquecimento, especialmente em notebooks.

⚙️ Admin e Servidores

  • 96. Gerenciar Usuários e Grupos

    sudo useradd <nome>, sudo usermod -aG <grupo> <usuario>, sudo userdel <nome> são comandos essenciais para gerenciar contas de usuário.

  • 97. Comprimir Logs para Economizar Espaço

    Configure `logrotate` para compactar e arquivar logs antigos, evitando que preencham seu disco. O padrão geralmente já está configurado.

  • 98. Montar Partições Automaticamente

    Edite o arquivo /etc/fstab para montar partições automaticamente no boot do sistema. Cuidado ao editar, um erro pode impedir o boot.

  • 99. Sincronizar Arquivos Entre Servidores

    Use rsync -avzP <origem> <usuario@destino:/caminho> para copiar arquivos de forma eficiente e segura via SSH entre servidores.

  • 100. Ver Uso de Portas Abertas (Servidor)

    Em servidores, sudo lsof -i -P -n pode mostrar quais processos estão usando quais portas. Útil para diagnóstico de serviços.