• Guia prático Herez sobre os diretórios essenciais do Linux com explicações e exemplos

    Diretórios essenciais do Linux: /home /etc /var /usr /bin /sbin /boot /lib /dev /proc

    Diretórios essenciais do Linux

    Resumo: este post explica por que o Linux é um sistema operacional baseado em arquivos e detalha a função, o conteúdo típico e as melhores práticas para os diretórios /home, /etc, /var, /usr, /bin, /sbin, /boot, /lib, /dev e /proc.

    Importância da hierarquia de arquivos no Linux

    Linux é um sistema operacional baseado em arquivos: tudo — desde dispositivos e processos até configurações e dados — é representado por arquivos organizados em uma hierarquia que começa na raiz /. Essa padronização facilita administração, segurança, backup e interoperabilidade entre distribuições, seguindo convenções como o Filesystem Hierarchy Standard.


    Visão geral rápida

    Diretório Finalidade Conteúdo típico Quem usa
    /Ponto de montagem raizEstrutura do sistemaSistema
    /homeDiretórios pessoaisArquivos e configurações do usuárioUsuários
    /etcConfigurações do sistemaArquivos de configuração em textoAdministradores
    /varDados variáveisLogs; spool; cacheServiços
    /usrProgramas e dados de usuário/usr/bin; /usr/lib; /usr/shareUsuários e sistema
    /binBinários essenciaisComandos básicos como ls, cpTodos
    /sbinBinários administrativosFerramentas de manutençãoRoot
    /bootArquivos de inicializaçãoKernel; initramfs; bootloaderSistema/bootloader
    /libBibliotecas essenciaisBibliotecas compartilhadasSistema
    /devArquivos de dispositivoDiscos; terminais; interfacesKernel e processos
    /procInformações do kernel/proc/cpuinfo; /proc/<pid>Ferramentas e administradores

    Descrição detalhada dos diretórios

    /

    Descrição: raiz do sistema; ponto de montagem principal onde todos os outros diretórios residem. Montagens adicionais (discos, partições) são anexadas sob a hierarquia a partir daqui.

    /home

    Finalidade: armazenar os diretórios pessoais dos usuários. Cada usuário normalmente tem um diretório como /home/usuario com documentos, configurações de aplicações e dados pessoais. Manter /home em partição separada facilita reinstalações sem perda de dados.

    /etc

    Finalidade: contém arquivos de configuração do sistema e dos serviços instalados. São arquivos de texto que definem comportamento de rede, contas, serviços e scripts de inicialização; alterações aqui afetam o sistema globalmente.

    /var

    Finalidade: destinado a dados que mudam com o tempo, como logs, filas de impressão, caches e spools de e-mail. Serviços escrevem continuamente em /var, por isso é comum monitorar e rotacionar logs para evitar esgotamento de disco.

    /usr

    Finalidade: abriga programas, bibliotecas e documentação que não são essenciais para a inicialização mínima do sistema. Subdiretórios comuns incluem /usr/bin, /usr/lib e /usr/share. Em ambientes gerenciados, /usr pode ser montado como somente leitura para segurança e consistência.

    /bin

    Finalidade: contém binários essenciais necessários para todos os usuários e para recuperação do sistema, como ls, cp e bash. Esses comandos devem estar disponíveis mesmo em modo de manutenção.

    /sbin

    Finalidade: contém binários administrativos usados para manutenção e administração do sistema, como fsck, reboot e utilitários de rede. Normalmente requer privilégios de root.

    /boot

    Finalidade: armazena arquivos necessários para a inicialização do sistema, incluindo imagens do kernel, initramfs e arquivos do bootloader (por exemplo, GRUB). Problemas em /boot podem impedir a inicialização do sistema.

    /lib

    Finalidade: contém bibliotecas compartilhadas usadas por binários em /bin e /sbin, como a libc. Em sistemas 64 bits existe também /lib64. Sem essas bibliotecas, executáveis essenciais não funcionam.

    /dev

    Finalidade: diretório de dispositivos que expõe hardware e interfaces do kernel como arquivos especiais de bloco e caractere. Exemplos incluem discos (/dev/sda) e terminais (/dev/tty). A maioria dos arquivos em /dev é gerada dinamicamente pelo kernel ou por udev.

    /proc

    Finalidade: sistema de arquivos virtual que fornece informações em tempo real sobre o kernel e processos, como /proc/cpuinfo e /proc/<pid>. Não contém dados persistentes em disco; é uma interface para consultar e, em alguns casos, ajustar parâmetros do kernel.


    Boas práticas e recomendações

    • Particionamento: separar /home, /var e /boot em partições distintas melhora recuperação e segurança.
    • Rotação de logs: configure logrotate para evitar que /var encha com logs.
    • Gerenciamento de pacotes: evite editar diretamente arquivos em /bin e /lib; use o gerenciador de pacotes da distribuição para manter consistência.
    • Monitoramento: monitore uso de disco e integridade de /boot e /var para prevenir falhas de inicialização e interrupções de serviço.
    Dica rápida: antes de reinstalar o sistema, faça backup de /home e dos arquivos de configuração em /etc para preservar dados e personalizações.

    Dicas

    Conhecer a função de cada diretório torna a administração do Linux mais eficiente: procure configurações em /etc, dados variáveis em /var, binários essenciais em /bin e /sbin, e informações do kernel em /proc. A hierarquia baseada em arquivos torna o sistema previsível, modular e mais fácil de manter.

    Excerpt: Guia prático dos diretórios essenciais do Linux com explicações, exemplos e boas práticas para administradores e usuários.

    Tags: Linux, diretórios, FHS, administração, sysadmin

    Diretórios essenciais do Linux — Guia Herez completo e prático

    Aprofundando o conhecimento sobre a hierarquia de Diretórios do Linux

    Resumo: Guia Herez com explicações, exemplos práticos, comandos úteis e boas práticas para os diretórios essenciais do Linux. Ideal para administradores, desenvolvedores e profissionais de infraestrutura.

    Por que a hierarquia importa

    Organizar arquivos em diretórios padronizados torna sistemas previsíveis, facilita automação, backups e segurança. Seguir convenções internas da equipe e padrões de mercado reduz tempo de investigação quando algo falha.

    Piada curta: se o Linux fosse uma casa, /etc seria o manual, /home os quartos e /proc a câmera que conta quantas vezes você abriu a geladeira.

    Visão geral rápida

    Diretório Finalidade Exemplo de uso prático
    /Raiz do sistemaMontagens e pontos de recuperação
    /homeDados pessoaisPerfis, chaves SSH, dotfiles
    /etcConfigurações do sistemasystemd, rede, serviços
    /varDados variáveislogs, caches, bancos locais
    /usrProgramas e dados não essenciais/usr/bin, /usr/share
    /binBinários essenciaisls, cp, bash
    /sbinBinários administrativosfsck, reboot
    /bootArquivos de inicializaçãokernel, initramfs, grub
    /libBibliotecas essenciaislibc, módulos compartilhados
    /devArquivos de dispositivodiscos, terminais, /dev/null
    /procInformações do kernel/proc/cpuinfo, /proc/<pid>

    Descrição detalhada e exemplos de finalidade

    /

    Finalidade: raiz do sistema; ponto de montagem principal. Mantenha a raiz enxuta para facilitar snapshots e restaurações.

    • Usar partições separadas para /home, /var e /boot.
    • Evitar armazenar grandes dados temporários diretamente em /.

    /home

    Finalidade: diretórios pessoais dos usuários.

    • Armazenar dotfiles e chaves: ~/.ssh, ~/.config.
    • Aplicar quotas para controlar uso de disco em ambientes multiusuário.
    • Montar /home em partição separada para preservar dados em reinstalações.

    /etc

    Finalidade: arquivos de configuração do sistema e serviços.

    • Versionar arquivos críticos do /etc em repositório interno para auditoria e rollback.
    • Exemplos: /etc/ssh/sshd_config, /etc/fstab, /etc/systemd/system.

    /var

    Finalidade: dados que mudam com o tempo.

    • Logs: /var/log — configure logrotate.
    • Dados de serviços: /var/lib/mysql, /var/lib/docker.
    • Cache: /var/cache — limpar periodicamente para liberar espaço.

    /usr

    Finalidade: programas, bibliotecas e documentação que não são essenciais para a inicialização mínima.

    • Instalar software compilado em /usr/local para evitar conflitos com o gerenciador de pacotes.
    • Montar /usr como somente leitura em ambientes imutáveis para segurança.

    /bin e /sbin

    Finalidade: binários essenciais e administrativos.

    • /bin: comandos usados por todos os usuários e scripts de inicialização.
    • /sbin: ferramentas de administração que normalmente requerem root.

    /boot

    Finalidade: arquivos necessários para inicialização do sistema.

    • Gerenciar kernels e initramfs; remover kernels antigos com cuidado.
    • Verificar espaço em /boot antes de atualizações de kernel.

    /lib e /lib64

    Finalidade: bibliotecas compartilhadas essenciais.

    • Não remova arquivos manualmente; use o gerenciador de pacotes.

    /dev

    Finalidade: arquivos de dispositivo que representam hardware e interfaces do kernel.

    • Discos: /dev/sda, /dev/nvme0n1.
    • Dispositivos especiais: /dev/null, /dev/loop0.

    /proc

    Finalidade: sistema de arquivos virtual que expõe informações do kernel e processos em tempo real.

    • Consultar status do sistema: /proc/cpuinfo, /proc/meminfo.
    • Ajustar parâmetros do kernel temporariamente via /proc/sys ou sysctl.

    Exemplos práticos com comandos

    Trechos de comandos que ilustram operações comuns relacionadas aos diretórios.

    Montar /home em partição separada

    sudo mkfs.ext4 /dev/sdb1
    sudo mkdir -p /mnt/newhome
    sudo mount /dev/sdb1 /mnt/newhome
    sudo rsync -a /home/ /mnt/newhome/
    # editar /etc/fstab com UUID para montar em /home no boot

    Ver uso de disco e localizar arquivos grandes

    df -h /
    du -sh /var/log/*
    sudo find / -type f -size +100M -exec ls -lh {} \;

    Rotacionar logs manualmente

    sudo logrotate -f /etc/logrotate.conf
    journalctl --vacuum-size=200M

    Consultar informações do kernel via /proc

    cat /proc/cpuinfo
    cat /proc/meminfo
    sudo sysctl -w net.ipv4.ip_forward=1

    Recuperação com chroot

    sudo mount /dev/sda1 /mnt
    for d in dev proc sys; do sudo mount --bind /$d /mnt/$d; done
    sudo chroot /mnt /bin/bash
    # executar fsck, atualizar initramfs, reinstalar bootloader

    Boas práticas Herez

    • Particione conforme carga: /home, /var, /boot em discos separados quando necessário.
    • Automatize backups de /home e /etc e teste restaurações regularmente.
    • Use logrotate e monitore métricas de disco com alertas.
    • Evite editar binários e bibliotecas manualmente; prefira pacotes e repositórios internos.
    • Documente políticas de montagem e permissões no repositório de operações da equipe.
    Checklist Herez: backup de /home e /etc; limpar kernels antigos; configurar logrotate; monitorar /var e /boot.

    Perguntas frequentes

    Onde devo instalar software compilado manualmente

    Coloque em /usr/local para evitar conflitos com o gerenciador de pacotes da distribuição.

    Devo montar /usr como somente leitura

    Em ambientes imutáveis e de produção, montar /usr como somente leitura aumenta segurança e previsibilidade, desde que atualizações sejam gerenciadas por processos controlados.

    Como evitar que /var encha

    Configure rotação de logs, limpe caches antigos e monitore uso com alertas. Para serviços que geram muitos dados, use partições dedicadas ou armazenamento em rede.

    Conclusão

    Conhecer a finalidade de cada diretório torna a administração do Linux mais eficiente e segura. Siga as práticas recomendadas, documente decisões de particionamento e automatize backups e monitoramento. Quando algo misterioso aparecer no sistema, antes de culpar o kernel, verifique se alguém não deixou as meias no /.

    Excerpt: Guia Herez dos diretórios essenciais do Linux com explicações, exemplos práticos, comandos e boas práticas para administradores e desenvolvedores.

    Tags: Linux; diretórios; FHS; administração; sysadmin; Herez

  • A four-minute video introduction covering workflow, the Cynefin framework, and the RUT matrix

    Developers often prefer a pull workflow because it allows them to select the tasks they want to work on. However, when a project is well-planned and clearly defined, the workflow tends to become push-based, making it difficult for developers to make those choices. This situation highlights a common trade-off between agile methods and structured planning. The Cynefin framework can assist in determining which aspects of a project should be approached with agility and which should follow a more structured plan. Additionally, when prioritizing tasks within a project, a RUT matrix can be used to assess the relevance, urgency, and potential risks of items that are not addressed immediately.

  • Árvores de Decisão em Ciência da Computação usadas em inteligência artificial

    Uma Árvore de Decisão é:

    •um nó folha (ou nó resposta) que contém o nome de uma classe ou o símbolo nulo (nulo indica que não é possível atribuir nenhuma classe ao nó por não haver nenhum exemplo que corresponda a esse nó); ou

    •um nó interno (ou nó de decisão) que contém o nome de um atributo; para cada possível valor do atributo, corresponde um ramo para uma outra árvore de decisão.

    Uma árvore de decisão possui a seguinte estrutura típica:

    •Nós internos são rotulados com atributos;

    •Folhas são rotuladas com classes;

    •Ramos são rotulados com valores (atributos categóricos) ou com intervalos (atributos numéricos).

    Árvores de Decisão são algoritmos utilizados em machine learning, com uma estrutura de simples compreensão e que costumam apresentar bons resultados em suas previsões. Estão entre os primeiros algoritmos aprendidos por iniciantes no mundo do aprendizado de máquina. Eles também são a base do funcionamento de outros poderosos algoritmos, como o Random Forest.

    Apesar do grande poder de previsão de uma árvore de decisão, conhecer o seu funcionamento básico é algo muito simples e fácil, quem está começando na área já será capaz de obter este entendimento.

    Como o próprio nome sugere, neste algoritmo vários pontos de decisão serão criados. Estes pontos são os “nós” da árvore e em cada um deles o resultado da decisão será seguir por um caminho, ou por outro. Os caminhos existentes são os “ramos”.

    Esta é a estrutura básica de uma árvore de decisão. Os nós são responsáveis pelas conferências que irão indicar um ramo ou outro para sequência do fluxo.

    Detalhando ainda mais esta lógica, uma pergunta será feita e teremos duas opções de resposta: sim ou não. A opção “sim” levará a uma próxima pergunta, e a opção “não” a outra.

    Estas novas perguntas também terão como opções de resposta o sim e não, e desta forma toda a árvore será construída, partindo de um ponto comum, podendo existir várias opções de caminhos diferentes a serem percorridos na árvore, cada um levando a um resultado.

Biografia do autor: Doutor Herez possui Bacharelado em Análise de Sistemas, Mestrado em Engenharia de Computação/Software, Doutorado em Ciência da Computação e seu primeiro diploma acadêmico em Processamento de Dados em 1996. Início profissional na carreira em T.I. em 1993 com o primeiro certificado de programação de computadores em 1986 e início da participação em curso de programação em 1985. Microsoft Certified Professional desde 2000, entre outros títulos oficiais de diversos grandes fabricantes internacionais de software, também criou cursos e provas oficiais voltados à programação de computadores. Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software, atuando principalmente nos seguintes temas: análise e desenvolvimento de sistemas, engenharia de software, métodos de pesquisa e métodos ágeis.