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,
/usrdus 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:
/usris geen directory voor individuele “gebruikers” (user) data. De home directories van gebruikers worden beheerd door/home, en/usrheeft 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
usreen 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
usreen 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:
/usris 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
/homebehouden.
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/binen/usr/sbin /binen/sbinzijn 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/binen/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:
- “
/usris dus een gebruiker…” - “Moet ik mijn programma’s dan in
/usrinstalleren?” - “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
~/binof~/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.
/usris 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
/optof/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.
댓글이 없습니다.