A Linux tot penja d’un únic directori arrel, /: no hi ha unitats C: ni D: com a Windows, i els discos, els USB o les carpetes de xarxa es «munten» en algun punt d’aquest arbre. L’organització dels directoris segueix un estàndard, el FHS (Filesystem Hierarchy Standard), de manera que tant si fas servir Debian com Ubuntu, Fedora o un Raspberry Pi, les coses són més o menys al mateix lloc. En aquest article t’explico què hi ha a cada directori principal i quins subdirectoris convé conèixer.
Pots veure el resum oficial al teu sistema amb man hier i, a les distribucions amb systemd, amb man file-hierarchy.
Directoris principals
$ ls /
bin dev home lost+found mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
| Directori | Què hi ha |
|---|---|
/bin | Comandes bàsiques per a tots els usuaris (ls, cp, mv…). Avui és un enllaç a /usr/bin (vegeu més avall) |
/boot | El nucli (vmlinuz-…), l’initramfs i la configuració del gestor d’arrencada (GRUB) |
/dev | Fitxers de dispositiu: discos (/dev/sda, /dev/nvme0n1), terminals, /dev/null… Els crea el nucli automàticament |
/etc | Fitxers de configuració del sistema i dels serveis (/etc/passwd, /etc/fstab, /etc/ssh/…). Només text, sense programes |
/home | Els directoris personals dels usuaris (/home/joan) |
/lib, /lib64 | Biblioteques compartides i mòduls del nucli. També són enllaços a /usr/lib i /usr/lib64 (/lib64 només existeix en alguns sistemes de 64 bits) |
/media | Punts de muntatge automàtics de dispositius extraïbles: un USB apareix a /media/usuari/NOM |
/mnt | Punt de muntatge per a muntatges manuals i temporals de l’administrador |
/opt | Programari de tercers que s’instal·la sencer en un directori propi (/opt/google/chrome…) |
/proc | Sistema de fitxers virtual: informació dels processos i del nucli en temps real (/proc/cpuinfo, /proc/meminfo) |
/root | Directori personal de l’usuari root (no és a /home) |
/run | Dades d’execució des de l’arrencada (fitxers PID, sockets). És a la memòria i es buida a cada reinici |
/sbin | Comandes d’administració del sistema (fdisk, ip, shutdown…). També és un enllaç, a /usr/sbin |
/srv | Dades dels serveis que ofereix la màquina (webs, FTP…), segons el criteri de cada administrador |
/sys | Sistema de fitxers virtual amb informació del maquinari i dels controladors |
/tmp | Fitxers temporals. Es buida en reiniciar (a Debian 13 és a la memòria RAM, amb tmpfs) |
/usr | La major part del sistema: programes, biblioteques, documentació… Es pot compartir i, en principi, només es modifica en instal·lar paquets |
/var | Dades que canvien mentre el sistema funciona: registres, memòria cau, cues de correu, bases de dades… |
Alguns aclariments
/sbinno és només per aroot: qualsevol usuari pot executar-ne els programes (per exemple,/sbin/ip addr), però la majoria fan coses que necessiten privilegis i fallaran sensesudo. Simplement, als usuaris normals sovint no els surt alPATH./usrja no té res a veure amb els usuaris: el nom ve de user, perquè als primers Unix hi havia els directoris dels usuaris, però avui conté el sistema. Els fitxers personals són a/home./proci/sysno ocupen espai al disc: els fitxers es generen al moment quan els llegeixes.
La «fusió de /usr»: per què /bin és un enllaç
Antigament, /bin, /sbin i /lib contenien el mínim per arrencar, i /usr (que podia estar en un altre disc) tenia la resta. Avui aquesta separació no té sentit i totes les distribucions principals (Debian des de la 12, Ubuntu, Fedora, RHEL des de la 7…) han fusionat aquests directoris dins de /usr:
$ ls -ld /bin /sbin /lib
lrwxrwxrwx 1 root root 7 /bin -> usr/bin
lrwxrwxrwx 1 root root 7 /lib -> usr/lib
lrwxrwxrwx 1 root root 8 /sbin -> usr/sbin
Per això /bin/bash i /usr/bin/bash són el mateix fitxer, i els scripts antics continuen funcionant.
Subdirectoris que convé conèixer
| Directori | Què hi ha |
|---|---|
/etc/systemd/system/ | Serveis i temporitzadors de systemd creats o modificats per l’administrador |
/etc/cron.d/, /etc/crontab | Tasques programades del sistema amb cron |
/etc/default/ | Opcions per defecte de serveis i programes (per exemple, /etc/default/grub) |
/etc/apt/ | Repositoris i configuració d’APT (Debian, Ubuntu) |
/usr/local/ | Programes instal·lats a mà per l’administrador, fora dels paquets: /usr/local/bin és el lloc ideal per als teus scripts per a tots els usuaris |
/usr/share/ | Dades independents de l’arquitectura: documentació (/usr/share/doc), pàgines del manual, icones… |
/var/log/ | Registres del sistema i dels serveis. A les distribucions amb systemd, gran part dels registres es consulten amb journalctl |
/var/lib/ | Dades d’estat dels programes: bases de dades de MySQL/MariaDB, paquets instal·lats, contenidors de Docker… |
/var/cache/ | Memòria cau que es pot esborrar sense perdre res important (per exemple, /var/cache/apt/archives) |
/var/tmp/ | Fitxers temporals que sí que es conserven en reiniciar |
/var/www/ | Directori habitual de les webs d’Apache i Nginx a Debian i Ubuntu |
~/.config/, ~/.local/ | Configuració i dades dels programes de cada usuari, dins del seu directori personal |
Coses que han canviat
L’original d’aquest article esmentava alguns directoris i eines que avui ja no són d’actualitat:
/var/runi/var/lockara són enllaços a/runi/run/lock./etc/network/només el fa servir el sistema clàssicifupdownde Debian. Ubuntu fa servir Netplan (/etc/netplan/) i moltes altres distribucions, NetworkManager (/etc/NetworkManager/). Ho tens explicat a la configuració de xarxa a Linux./media/floppy,/mnt/cdromi companyia: les disqueteres han desaparegut i els CD i USB es munten automàticament a/media/usuari/.ifconfig, que l’original posava com a exemple de/sbin, és obsolet: el substitut ésip(ip addr,ip route).
Comandes relacionades
cd,pwdils: moure’t per l’arbre de directoris.tree: veure l’estructura d’un directori en forma d’arbre.dfidu: espai ocupat per sistemes de fitxers i directoris.- Muntar un sistema de fitxers
- Els fitxers de configuració a Unix i Linux