De ware aard van de /usr-directory in het Linux-bestandssysteem

usr is niet een gebruiker

Als je Linux een beetje gebruikt, kom je ongetwijfeld een directory tegen die je altijd zult zien: /usr.

Ik had dezelfde gedachte toen ik voor het eerst Linux gebruikte.

“Ah, /usr dus het is een gebruiker. Het moet iets te maken hebben met gebruikersaccounts.”

Veel beginnende Linux-gebruikers hebben waarschijnlijk een soortgelijke misvatting gehad. Maar laten we meteen de conclusie geven:

/usr is geen directory voor individuele “gebruikers” (user) data. De home directories van gebruikers worden beheerd door /home, en /usr heeft een totaal andere rol.

In dit artikel gaan we de echte aard en rol van /usr uitleggen, en hoe het zich verhoudt tot andere directories zoals /home, /opt en /var.


1. De conclusie: /usr is geen “gebruiker” data directory



In moderne Linux-systemen kan de positie van /usr in één zin worden samengevat als:

/usr = het gebied waar het systeem “gedeelde, (meestal) alleen-lezen) programma’s, bibliotheken en data” opslaat

Met andere woorden:

  • Uitvoerbare bestanden van het OS en applicaties
  • De bibliotheken die die uitvoerbare bestanden gebruiken
  • Gedeelde data zoals handleidingen, pictogrammen en andere bestanden

Daarentegen worden de dingen die we vaak associëren met “gebruiker-specifieke documenten, instellingen, downloads”:

  • Opgeslagen onder /home/gebruikersnaam
  • Volledig verschillend van /usr

Dus het idee dat /usr een “user” directory is, is feitelijk onjuist.


2. Waar komt de afkorting usr vandaan?

Er is een klein stukje geschiedenis en discussie hier.

  • In de vroege Unix-tijd bestond er daadwerkelijk een gebruikershome directory onder /usr.
  • Daarom is er een traditionele interpretatie dat usr een afkorting is voor “user”.
  • Later werd het herinterpreteerd als “Unix System Resources” of iets dergelijks.

Maar voor moderne Linux-gebruikers is het belangrijker om te focussen op de huidige rol dan op de historische betekenis.

Volgens de Filesystem Hierarchy Standard (FHS) wordt /usr als volgt gedefinieerd (samengevat):

  • Een gebied voor gedeelde (read‑only) data die wereldwijd beschikbaar is
  • Programma’s, bibliotheken, handleidingen, gedeelde data, enz.

Dus in de Linux die we vandaag gebruiken:

Of usr een afkorting is voor “user” of niet, is niet zo belangrijk. Het belangrijkste is dat het een gedeeld resource gebied is.


3. Wat vind je onder /usr?



Als je ls /usr op een server of desktop typt, zie je meestal de volgende directories.

$ ls /usr
bin  lib  lib64  local  sbin  share  include  ...

De betekenis van elke directory is ongeveer als volgt:

  • /usr/bin
  • Uitvoerbare bestanden voor gewone gebruikers.
  • Voorbeelden: /usr/bin/python, /usr/bin/grep, /usr/bin/curl
  • /usr/sbin
  • Systeembeheer‑uitvoerbare bestanden, meestal alleen voor root.
  • Voorbeelden: /usr/sbin/sshd, /usr/sbin/apachectl
  • /usr/lib, /usr/lib64
  • Gedeelde bibliotheken die programma’s gebruiken.
  • Voorbeelden: .so (shared object) bestanden.
  • /usr/share
  • Architectuur‑onafhankelijke gedeelde data.
  • Voorbeelden: handleidingen (/usr/share/man), pictogrammen, locale data …
  • /usr/include
  • C/C++ header‑bestanden, gebruikt door ontwikkel‑toolchains.
  • /usr/local
  • Ruimte voor programma’s die niet via de systeem‑pakketbeheerder zijn geïnstalleerd, maar lokaal zijn geïnstalleerd (we bespreken dit later).

Kort samengevat:

/usr is een grote opslagplaats voor programma‑ en gerelateerde resources die door het hele systeem worden gedeeld.


4. /usr vs /home vs /opt vs /var — wat is het verschil?

De Linux‑bestandsstructuur kan in het begin verwarrend zijn. Vooral /usr, /home, /opt en /var kunnen gemakkelijk door elkaar gehaald worden. Laten we ze vergelijken.

4.1 /home — het echte “huis” van de gebruiker

  • Voorbeeldpaden: /home/alice, /home/bob
  • Per gebruiker:
  • Documenten, foto's, downloads, projectmappen
  • Persoonlijke instellingen (~/.config, ~/.ssh, etc.)
  • Bij een OS‑reinstallatie wordt vaak alleen /home behouden.

Persoonlijke data en instellingen = bijna alles in /home

4.2 /usr — “gedeelde resources” voor het systeem en apps

  • Uitvoerbare bestanden: /usr/bin, /usr/sbin
  • Bibliotheken: /usr/lib*
  • Gedeelde data: /usr/share

“Programma’s, bibliotheken en data die door het hele systeem gedeeld worden” = /usr

Hier komen geen individuele gebruikersbestanden in.

4.3 /opt — “een specifieke app” in één map

  • Niet‑pakketbeheer‑geïnstalleerde commerciële of third‑party apps.
  • Voorbeelden: /opt/google/chrome, /opt/mycompany/app
  • Vaak een volledige app in één directory.

“Deze app staat volledig in deze map” – een applicatie‑gebaseerde beheer‑ruimte.

4.4 /var — “variabele” data (veranderende data)

  • Logbestanden: /var/log
  • Cache: /var/cache
  • Queue, spool: /var/spool
  • DB, statusbestanden, enz.

“Data die vaak verandert (runtime)” = /var


5. Waarom /bin niet, maar /usr/bin? (en het is tegenwoordig nog verwarrender)

In oude documentatie zie je vaak een onderscheid tussen /bin en /usr/bin. Moderne distributies vereenvoudigen dit vaak door:

  • /bin → symlink naar /usr/bin
  • /sbin → symlink naar /usr/sbin

(zoals bij Fedora, Ubuntu, etc.)

Dus op dit moment is het feitelijk:

  • De meeste uitvoerbare bestanden bevinden zich onder /usr/bin en /usr/sbin
  • /bin en /sbin zijn voor compatibiliteit en dienen als “voorvoegsel” van het verleden.

Voor een nieuweling kan dit verwarrend zijn, maar het kernpunt is:

“Waar bevinden de echte programma’s zich?” → Meestal in /usr/bin en /usr/sbin.


6. Hoe voorkom je verwarring als beginnende Linux‑gebruiker

De verwarring die veel mensen ervaren bij het eerste gebruik van Linux is meestal als volgt:

  • /usr is dus een gebruiker…”
  • “Moet ik mijn programma’s dan in /usr installeren?”
  • “Wat is het verschil met /home?”

In de praktijk kun je de meeste verwarring vermijden door de volgende richtlijnen te onthouden.

6.1 Waar zet je persoonlijke scripts/tools?

  • Persoonlijke scripts/tools: meestal ~/bin of ~/scripts
  • Voeg toe aan PATH als je wilt gebruiken.
mkdir -p ~/bin
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc

Dit is een persoonlijke ruimte en verschilt van /usr.

6.2 Waar zet je systeem‑breed gebruikte aangepaste apps?

  • Apps die je zelf compileert of via AppImage, tar.gz distribueert.
  • Als je ze systeem‑breed wilt gebruiken:
  • De hoofdapp: onder /opt/appnaam
  • De startpunt‑link: symlink naar /usr/local/bin

Dit patroon is netjes.

In dit opzicht is /usr/local:

“Een ruimte voor programma’s die niet via de pakketbeheerder zijn geïnstalleerd, maar lokaal beheerd worden.”

Het is gebruikelijk om /usr/local te zien als een beheerder‑zelf‑gebruik‑ruimte.


7. Samenvatting: /usr is geen “huis” van de gebruiker, maar een “systeem‑magazijn”

Laten we nogmaals samenvatten.

  • /usr is geen gebruikers‑data directory.
  • In moderne Linux is /usr:
  • Gedeelde uitvoerbare bestanden van het systeem en apps
  • De bibliotheken die ze gebruiken
  • Gedeelde data zoals handleidingen, pictogrammen, etc.
  • Persoonlijke data bevindt zich in /home/gebruikersnaam.
  • Eigen geïnstalleerde apps worden meestal beheerd via /opt of /usr/local.

Als je de Linux‑bestandsstructuur begint te begrijpen, krijg je een gevoel voor:

  • “Waar moet ik dit bestand plaatsen?”
  • “Is dit app voor het hele systeem of alleen voor mij?”
  • “Wat moet ik behouden bij een OS‑upgrade?”

En een van de eerste stappen is het correct begrijpen van de aard van /usr.