Notities PXL Help

Commando structuren

Commando's die je typt worden geïnterpreteerd door de shell.

De standaard shell in Ubuntu is bash, kort voor Bourne Again SHell.

Commando interpretatie

Bash interpreteert soms tekst op een andere manier dan bedoeld is.

gebruiker@ubuntu:~$ echo Veel spaties Veel spaties

Om te zorgen dat bash specifieke karakters niet fout interpreteert hebben we 3 opties:

  1. Voor het karakter een \ zetten.

    1. Een \ zorgt dat bash het karakter erna ziet als dat karakter en niet er iets mee doet.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

  1. " gebruiken.

    1. Als je tekst tussen " zet dan wordt die tekst als string gezien.

    2. Sommige karakters worden nog steeds geïnterpreteerd.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

  1. ' gebruiken.

    1. Tekst tussen ' wordt ook als string gezien, maar geen enkel karakter wordt geïnterpreteerd.

Aliassen

Een alias is een stuk tekst dat door Bash als een ander stuk tekst wordt geïnterpreteerd.

Aliassen kan je zelf instellen:

gebruiker@ubuntu:~$ alias rm='rm -i' gebruiker@ubuntu:~$ alias show='tree -a -L 1'

In het voorbeeld wordt er de optie -i toegevoegd om standaard altijd voor bevestiging te vragen voor het verwijderen.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Een alias verwijderen kan via het unalias commando.

gebruiker@ubuntu:~$ unalias rm gebruiker@ubuntu:~$ unalias show

File globbing

File globbing is het gebruik van patronen in bestandsnamen om zo bepaalde bestanden te verkrijgen.

Het tonen van alle bestanden waar een l in staat:

gebruiker@ubuntu:~$ ls *l* file file1 file4 file45 file5 file9.txt file.txt filexyz fileXYZ

*l* toont alle bestanden waar er iets of niks voor of na de l staat.

gebruiker@ubuntu:~$ ls f* file file1 file4 file45 file5 file9.txt file.txt filexyz fileXYZ

f* toont de bestanden waar er iets of niks na de f staat.

Het * karakter selecteert alles of niks, als het achter een karakter staat selecteert het alles na dat karakter.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

?

Met het ? karakter kan je één karakter selecteren.

gebruiker@ubuntu:~$ ls file? file1 file4 file5

Dit is zoals * maar het kan maar één karakter selecteren en er moet een karakter zijn.

gebruiker@ubuntu:~$ ls file??? filexyz fileXYZ

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

[]

Met [] kan je zoals ? één karakter selecteren. Het verschil is dat je in [] karakters kan specifiëren.

gebruiker@ubuntu:~$ ls file[14] file1 file4

Dit betekent " alles wat met file begint en dan een 1 of 4 heeft met verder niks ".

Je kan ook een bereik gebruiken met []:

gebruiker@ubuntu:~$ ls file[a-z]* filexyz

Dit gaat ook met nummers:

gebruiker@ubuntu:~/map2$ ls file[0-9] file1 file4 file5

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

File globbing voorkomen

Als je een bestand hebt met de naam "file*" en dat wilt verwijderen, verwijder je alle bestanden die starten met "file".
Je kan dus ", ' en \ gebruiken om dit te voorkomen.

gebruiker@ubuntu:~/map2$ rm "file*"

Input & Output

De shell heeft 3 streams.
Een stream is een categorie voor een bepaald soort tekst in de shell.

streams visualized

De stream stdin betekent "standard input", dit is de tekst die de Bash shell als invoer neemt.

gebruiker@ubuntu:~$ ls / ^^ ^

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

De stream stdout betekent "standard output", dit is de tekst die op ons scherm verschijnt als iets succesvol is.

gebruiker@ubuntu:~$ ls / bin home mnt sbin.usr-is-merged usr ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

De stream stderr betekent "standard error", dit is de tekst die op ons scherm verschijnt als er een error is.

gebruiker@ubuntu:~$ ls /root ls: cannot open directory '/root': Permission denied ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I/O redirection

Alle streams hebben een nummer. Dit kan gebruikt worden in commando's om streams om te leiden.

Om streams om te leiden gebruikt men > in combinatie met het juiste nummer.

gebruiker@ubuntu:~$ ls / 1> file

Zonder 1> file zou stdout gewoon de bestanden en mappen tonen.

Met 1> file zeggen we dat stdout naar het bestand file moet.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

De stderr stream kan omgeleid worden via 2>.

gebruiker@ubuntu:~$ ls /root 2> /dev/null

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Om stderr en stdout elk om te leiden naar een ander bestand kan je ze combineren:

gebruiker@ubuntu:~$ find / > found 2> errors

Om stderr en stdout naar hetzelfde bestand om te leiden kan je:

gebruiker@ubuntu:~$ find / &> found_and_errors

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Om toe te voegen en niet te vervangen kan je >> gebruiken.

gebruiker@ubuntu:~$ ls /root 2>> file

Bestanden

Je kan met > gemakkelijk bestanden maken:

gebruiker@ubuntu:~$ > file

Om inhoud in bestanden te zetten kan je gebruik maken van echo en cat:

gebruiker@ubuntu:~$ echo hallo > file2 gebruiker@ubuntu:~$ cat file2 hallo gebruiker@ubuntu:~$ cat > file2 woppa gebruiker@ubuntu:~$ cat >> file2 hoppa gebruiker@ubuntu:~$ cat file2 woppa hoppa

Als je cat gebruikt kan je typen en daarna Ctrl+d gebruiken om te stoppen met typen.

Pipes

Pipes zijn een manier om de output van het ene commando naar het andere te sturen.
Dit kan met de | operator.

gebruiker@ubuntu:~$ ls t* | cat >> hi

Hier wordt de output van ls t* naar cat gestuurd, die dan de output toevoegt aan het bestand hi.

Control Operators

Meerdere commando's kunnen op dezelfde lijn gezet worden via ;. Bash wacht met het uitvoeren van een commando tot het vorige commando voltooid is.

gebruiker@ubuntu:~/map$ mkdir map; cd map; > file; ls file

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Met ; maakt het niet uit wat er gebeurde met het vorige commando, als het gedaan is, gebeurt de volgende.
Als je && gebruikt moet het vorige commando succesvol zijn.

gebruiker@ubuntu:~/map$ > file2 && ls && cd does_not_exist && echo yep file file2 bash: cd: does_not_exist: No such file or directory

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Je kan met || het volgende commando uitvoeren als het commando ervoor faalt.

gebruiker@ubuntu:~/map$ cd does_not_exist || > file3 && ls bash: cd: does_not_exist: No such file or directory file file2 file3

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Een # is een notitie, alles achter # wordt genegeerd door Bash.

gebruiker@ubuntu:~/map$ echo Hello # this text does nothing Hello

Commando's & Terminologie

Commando

Uitleg

alias

Zorgt dat een stuk tekst als een ander stuk tekst wordt geïnterpreteerd.

unalias

Verwijdert een alias.

Term

Uitleg

shell

Een command line interface, zet commando's om naar dingen die het systeem begrijpt.

Bash

Afkorting voor Bourne Again SHell

string

Een string is een stukje tekst.

Studeren

Waar staat Bash voor?

Bourne Again SHell

Welk karakter zorgt dat tekst als string wordt gezien zonder uitzonderingen?

Het ' karakter.

In welk bestand moet je aliassen zetten als je ze wilt blijven gebruiken?

Het .bash_aliases bestand.

Waar moet dit bestand staan?

In de home map van de gebruiker.

Wat doet het * karakter bij file globbing?

Het * karakter selecteert alles of niks.

Met welk karakter kan je één karakter selecteren?

Met het ? karakter.

Hoe selecteer je één nummer dat in een bereik van 0 - 7 zit?

Via: [0-7]

Welke stream bevat al de errors?

De 3de, de stderr stream.

Welke stream wordt omgeleid met >?

De stdout stream.

Wat doet: > txt?

Maakt een leeg bestand genaamd txt.

Als je cat > file gebruikt, hoe stop je met typen?

Ctrl+d

Wat doet ||?

Voer het volgende commando uit als de vorige faalt.

Last modified: 03 August 2025