Ga naar inhoud

Het cd commando

Controleren of cd aanwezig is

Het cd-commando (β€œchange directory”) is een shell built-in.
Dat betekent dat het onderdeel is van de shell zelf (bijv. Bash, Zsh) en niet van een los binair bestand zoals /bin/cp of /bin/mv.

πŸ‘‰ Daarom kun je geen cd --version uitvoeren zoals bij andere commando’s.
Je kunt wΓ©l nagaan of het een shell built-in is:

type cd
Voorbeeldoutput
cd is a shell builtin

βš™οΈ Installeren van cd

Omdat cd een shell built-in is, wordt het automatisch meegeleverd met je shell.
- Op de meeste Linux-distributies gebruik je Bash, waarin cd standaard aanwezig is.
- Ook andere shells (Zsh, Fish, Dash, etc.) hebben een ingebouwd cd-commando.

πŸ‘‰ Je kunt cd dus niet apart installeren.
Als je shell ontbreekt of beschadigd is, installeer je gewoon de shell opnieuw:

Voorbeeld (Debian/Ubuntu):

sudo apt update
sudo apt install bash

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

  • cd mapnaam/ β†’ Ga naar een subdirectory
Voorbeeld gebruik van cd mapnaam/

Commando:

cd Documents/
Voorbeeldoutput:
# Je bevindt je nu in ~/Documents

  • cd .. β†’ Ga één niveau omhoog
Voorbeeld gebruik van cd ..

Commando:

cd ..
Voorbeeldoutput:
# Je bent nu een map hoger

  • cd (zonder argument) β†’ Ga naar de home-directory

  • cd - β†’ Ga terug naar de vorige directory

  • cd /pad/naar/map β†’ Ga direct naar een absoluut pad

Omdat cd een shell built-in is, zijn er weinig extra opties.
Toch kun je in Bash gebruik maken van handige variabelen:

  • CDPATH β†’ Hiermee kun je zoekpaden instellen voor cd
  • cd ~gebruiker β†’ Ga direct naar de home-directory van een andere gebruiker

Het cd-commando zelf kent geen configuratie, maar je kunt het gedrag beΓ―nvloeden via je shell.

1. Bash configuratie

Je kunt de omgeving variabele CDPATH instellen in ~/.bashrc:

export CDPATH=.:~:~/projecten
Hiermee kun je sneller naar directories springen.

2. Aliassen maken

Je kunt aliassen maken voor veelgebruikte directories:

alias cddocs='cd ~/Documents'
alias cdproj='cd ~/projecten'

Logging van het cd-commando

Omdat cd een shell built-in is, worden acties standaard niet gelogd.
Wil je bijhouden welke directories gebruikers betreden, dan kun je:

  • De shell configureren om elke directorywissel te loggen met een PROMPT_COMMAND in Bash:

    export PROMPT_COMMAND='echo "$(whoami) $(pwd)" >> ~/.cd_history'
    

  • Of gebruik maken van auditing-tools zoals auditd om directorywissels te volgen.

Updaten van cd

Omdat cd onderdeel is van de shell, update je het door de shell zelf te updaten.

Voor Bash:

sudo apt update
sudo apt install --only-upgrade bash

Verwijderen van cd

Het cd-commando kan niet verwijderd worden zonder de hele shell te breken.
Je kunt het wΓ©l β€œblokkeren” met een alias (voor specifieke gebruikers).

Voorbeeld alias om cd te blokkeren:

alias cd='echo "cd is uitgeschakeld"'

⚠️ Niet aanbevolen op productiesystemen, want zonder cd kun je nauwelijks werken in de shell.

πŸ“– Handleiding

Omdat cd een shell built-in is, vind je de handleiding meestal in de man-page van de shell (bijv. man bash).

help cd
Voorbeeld
cd: cd [-L|[-P [-e]] [-@]] [dir]
    Change the shell working directory.

    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.