Ga naar inhoud

📂 Het ls Commando in Linux

In deze handleiding leer je hoe je ls gebruikt op een Linux-systeem.

Het commando ls (afkorting van list) wordt gebruikt om bestanden en directories weer te geven.
Het is één van de meest gebruikte commando’s in de Linux-terminal en vormt de basis voor het verkennen van het bestandssysteem.

Achtergrondinformatie

Het commando ls is standaard aanwezig op vrijwel alle Unix/Linux-systemen.

  • Het toont de inhoud van een directory en kan bestanden sorteren, filteren en van extra informatie voorzien.
  • Het ondersteunt talloze opties, bijvoorbeeld om verborgen bestanden te zien, bestanden gesorteerd weer te geven of uitgebreide details te tonen.
  • In de praktijk gebruikt vrijwel elke Linux-gebruiker dit commando dagelijks om snel een overzicht te krijgen van bestanden en mappen.

Controleren of ls aanwezig is

Het ls-commando is een van de meest gebruikte commando’s in Linux en staat bijna altijd standaard op je systeem geïnstalleerd.
Het maakt deel uit van het pakket GNU coreutils, dat basiscommando’s levert zoals cp, mv, rm, en cat.

Wil je controleren of ls aanwezig is, dan kun je de versie opvragen:

ls --version
Voorbeeldoutput
ls (GNU coreutils) 9.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.

⚙️ Installeren van ls

Het commando ls maakt deel uit van het pakket GNU coreutils.
Dit pakket bevat de meest gebruikte basiscommando’s in Linux, zoals cp, mv, rm, en cat.

👉 Daarom is ls op vrijwel alle Linux-distributies standaard geïnstalleerd, inclusief Debian en Ubuntu.
Alleen in uitzonderlijke gevallen, zoals zeer minimale systemen of custom builds, moet je het handmatig installeren.

Installatie op Debian/Ubuntu:

sudo apt update
sudo apt install coreutils

Voorbeeldoutput
ls (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Hieronder vind je enkele veelgebruikte combinaties van het ls-commando:

  • ls → Toont een overzicht van bestanden en directories in de huidige map
Voorbeeld gebruik van ls

Commando:

ls

Voorbeeldoutput:

Documenten  Downloads  Muziek  Afbeeldingen  script.sh

  • ls -1 → Toont elk bestand op één regel
Voorbeeld gebruik van ls -1

Commando:

ls -1

Voorbeeldoutput:

Documenten
Downloads
Muziek
Afbeeldingen
script.sh

  • ls -a → Toont ook verborgen bestanden (bestanden die beginnen met een .)
Voorbeeld gebruik van ls -a

Commando:

ls -a

Voorbeeldoutput:

.  ..  .bashrc  .profile  Documenten  Downloads

  • ls -l → Lange lijstweergave met extra informatie (rechten, eigenaar, grootte, datum)
Voorbeeld gebruik van ls -l

Commando:

ls -l

Voorbeeldoutput: text -rw-r--r-- 1 user user 1.1K bestand.txt drwxr-xr-x 2 user user 4.0K Documenten

  • ls -lh → Lange lijstweergave met leesbare bestandsgroottes
Voorbeeld gebruik van ls -lh

Commando:

ls -lh

Voorbeeldoutput:

-rw-r--r-- 1 user user 1.1K bestand.txt
drwxr-xr-x 2 user user 4.0K Documenten

  • ls -lhS → Sorteer bestanden op grootte (grootste eerst)
Voorbeeld gebruik van ls -lhS

Commando:

ls -lhS

Voorbeeldoutput:

video.mp4  bestand.txt  script.sh

  • ls -lhSr → Sorteer bestanden op grootte (kleinste eerst)
Voorbeeld gebruik van ls -lhSr

Commando:

ls -lhSr

Voorbeeldoutput:

script.sh  bestand.txt  video.mp4

  • ls -lha --group-directories-first → Toon alles, directories bovenaan
Voorbeeld gebruik van ls -lha --group-directories-first

Commando:

ls -lha --group-directories-first

Voorbeeldoutput:

Documenten/  Downloads/  Muziek/  bestand.txt

  • ls -F → Markeer bestandstype (/ map, * uitvoerbaar, @ symlink)
Voorbeeld gebruik van ls -F

Commando:

ls -F

Voorbeeldoutput:

script.sh*  Documenten/  link@

  • ls -lh --time=atime → Sorteer op laatste toegangstijd

    Voorbeeld gebruik van ls -lh --time=atime

    Commando:

    ls -lh --time=atime
    

    Voorbeeldoutput:

    laatst_geopend.txt
    

  • ls -lh --time=ctime → Sorteer op inode/metadata wijziging

    Voorbeeld gebruik van ls -lh --time=ctime

    Commando:

    ls -lh --time=ctime
    

    Voorbeeldoutput:

    rechten_gewijzigd.txt
    

  • ls -lh --time=birth → Toon aanmaakdatum (indien ondersteund)

    Voorbeeld gebruik van ls -lh --time=birth

    Commando:

    ls -lh --time=birth
    

    Voorbeeldoutput:

    nieuw_bestand.txt
    

  • ls -lh --sort=extension → Sorteer bestanden op bestandsextensie

    Voorbeeld gebruik van ls -lh --sort=extension

    Commando:

    ls -lh --sort=extension
    

    Voorbeeldoutput:

    file.c  file.h  file.py
    

  • ls -lh --sort=version → Sorteer bestanden met versienummers correct

    Voorbeeld gebruik van ls -lh --sort=version

    Commando:

    ls -lh --sort=version
    

    Voorbeeldoutput:

    app_v1  app_v2  app_v10
    

  • ls -lh --reverse → Draai de sorteervolgorde om

    Voorbeeld gebruik van ls -lh --reverse

    Commando:

    ls -lh --reverse
    

    Voorbeeldoutput:

    nieuw.txt … oud.txt
    

  • ls -lhR → Recursief alle bestanden in subdirectories weergeven

    Voorbeeld gebruik van ls -lhR

    Commando:

    ls -lhR
    

    Voorbeeldoutput:

    Documenten/bestand1.txt  Documenten/submap/bestand2.txt
    

  • ls -1 → Eén bestand per regel

    Voorbeeld gebruik van ls -1

    Commando:

    ls -1
    

    Voorbeeldoutput:

    bestand1
    bestand2
    bestand3
    

  • ls -m → Toon bestanden gescheiden door komma’s

    Voorbeeld gebruik van ls -m

    Commando:

    ls -m
    

    Voorbeeldoutput:

    bestand1, bestand2, bestand3
    

  • ls -x → Toon bestanden in rijen i.p.v. kolommen

    Voorbeeld gebruik van ls -x

    Commando:

    ls -x
    

    Voorbeeldoutput:

    bestand1  bestand2  bestand3 …
    

Het ls-commando kan worden aangepast per gebruiker of voor alle gebruikers. Hieronder een overzicht.

1. Per gebruiker instellen

Plaats instellingen in de shell-configuratie van je eigen account:

  • Bash: ~/.bashrc of ~/.bash_aliases
  • Zsh: ~/.zshrc
  • Fish: ~/.config/fish/config.fish

Voorbeelden:

# Alias voor ls met kleuren
alias ls='ls --color=auto'

# Kleuren aanpassen
export LS_COLORS='di=34:ex=32'

Voordelen: - Alleen van toepassing op deze gebruiker.
- Geen rootrechten nodig.
- Eenvoudig aan te passen zonder anderen te beïnvloeden.

2. System-wide instellen

Plaats instellingen in bestanden die door alle gebruikers worden geladen:

  • Bash: /etc/bash.bashrc of /etc/profile
  • Zsh: /etc/zsh/zshrc
  • Kleuren: /etc/DIR_COLORS

Voorbeeld /etc/bash.bashrc:

# Alias system-wide instellen
alias ls='ls --color=auto'

# Standaard kleuren voor alle gebruikers
export LS_COLORS='di=34:ex=32'

Voordelen: - Alle gebruikers op het systeem krijgen dezelfde instellingen.
- Handig voor servers of klasomgevingen.

Let op:
- Je hebt rootrechten nodig om deze bestanden aan te passen.
- Verkeerde instellingen kunnen de shell voor iedereen beïnvloeden.

Logging van het ls-commando

Het ls-commando schrijft zelf geen logbestanden weg. Het is een eenvoudig programma dat enkel de inhoud van een map toont.
Toch kun je het gebruik van ls indirect loggen met behulp van Linux-tools zoals auditd.

Geen standaard logbestanden

  • ls heeft geen ingebouwde logging.
  • Shells zoals Bash of Zsh houden een command history bij (~/.bash_history, ~/.zsh_history).
  • Deze geschiedenis is per gebruiker en kan eenvoudig verwijderd of aangepast worden.

Opmerking

Vertrouw niet alleen op shell history als je wilt weten of ls is uitgevoerd.

Logging met auditd

Met auditd (Linux Audit Framework) kun je bijhouden wanneer een bepaald commando wordt uitgevoerd.

Installatie op Ubuntu/Debian:

sudo apt install auditd audispd-plugins

Regel toevoegen voor ls:

sudo auditctl -w /bin/ls -p x -k ls_monitor
- -w /bin/ls → bewaak het bestand /bin/ls
- -p x → log bij execute (uitvoeren)
- -k ls_monitor → voeg een tag toe om de logs eenvoudig terug te vinden

Logs bekijken:

ausearch -k ls_monitor

Of rechtstreeks in het auditlog-bestand:

less /var/log/audit/audit.log

Conclusie

  • ls maakt geen eigen logbestanden aan.
  • Wil je weten of ls wordt uitgevoerd? Gebruik dan auditd.
  • Met auditregels kun je alle uitvoeringen van /bin/ls loggen in /var/log/audit/audit.log.

Coreutils en het ls-commando

Inleiding

Het ls-commando is geen los programma, maar onderdeel van het grotere coreutils-pakket.
Dit pakket bevat veel essentiële commando’s zoals ls, cp, mv, rm, en cat.
Daarom kun je ls niet apart updaten – je moet altijd coreutils in zijn geheel bijwerken.

Waarom coreutils?

  • Alle basiscommando’s zitten in hetzelfde pakket.
  • Updaten van alleen ls is onmogelijk.
  • Door coreutils bij te werken, blijven alle essentiële commando’s op hetzelfde versieniveau.

Belangrijk

Het verwijderen van ls of coreutils kan je systeem breken. Update in plaats daarvan het hele pakket.

Coreutils updaten op Ubuntu/Debian

Gebruik de volgende commando’s om coreutils veilig bij te werken:

sudo apt update
sudo apt install --only-upgrade coreutils

Beperkingen en Beveiliging van het ls-commando

Verwijderen van ls

Het ls-commando is een fundamenteel onderdeel van Linux/Unix-systemen.
Het verwijderen van ls kan scripts en systeemtools breken, daarom wordt het sterk afgeraden.

Beperk toegang tot ls

Methode 1: Alias gebruiken

sudo chmod 000 /bin/ls
alias ls='echo "ls is uitgeschakeld"'

Tip

Met een alias kun je gebruikers blokkeren zonder het systeem te breken.

Methode 2: Permissies aanpassen

sudo chmod 700 /bin/ls
- Alleen root kan het uitvoeren. - Andere gebruikers krijgen een toegangsweigering.

📖 Handleiding

De ingebouwde handleiding van Linux-commando’s is altijd beschikbaar via man (manual).
Voor ls kun je de handleiding openen met:

man ls

In deze handleiding vind je: - Een volledige lijst van alle opties - Beschrijvingen van gebruik en syntaxis - Extra voorbeelden en details die niet altijd in korte tutorials staan

👉 Handige sneltoetsen in man: - q → sluit de handleiding
- / → scroll omhoog/omlaag
- /zoekterm → zoek naar een woord in de tekst

Voorbeeld
LS(1)                      User Commands                     LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List information about the FILEs (the current directory by default).
       Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.