# Bash
Bash is standaard geïnstalleerd op zowel Raspbian (opens new window) als op Ubuntu Server voor Raspberry Pi 4 (opens new window) en vele andere Unix-achtige besturingssystemen.
# Shell
Een van de populairste CLI-shells voor Unix-achtige besturingssystemen is bash
(Eng. Bourne-Again Shell). Deze shell werd met een knipoog genoemd naar Steve Bournes Bourne Shell.
Andere shells zijn:
Shell | Naam | Raspbian | Ubuntu | macOS |
---|---|---|---|---|
bash | Bourne-Again Shell | S | S | ✓ |
csh | C Shell | ✗ | ✗ | ✓ |
dash | Command Interpreter (shell) | ✓ | ✓ | ✗ |
ksh | Korn Shell | ✗ | ✗ | ✓ |
rbash | Restricted Bash | ✓ | ✓ | ✗ |
screen | GNU Screen | ✗ | ✓ | ✗ |
tcsh | TC Shell | ✗ | ✗ | ✓ |
tmux | Terminal Multiplexer | ✗ | ✓ | ✗ |
zsh | Z Shell | ✗ | ✗ | S |
… | … | … | … | … |
De standaardshell (S) in Ubuntu en Raspbian is bash
. In macOS is bash
sinds macOS 10.15 Catalina vervangen door zsh
.
Je kan de geïnstalleerde shells bekijken in het bestand /etc/shells
.
$ cat /etc/shells
Je kan de standaardshell wijzigen met de opdracht chsh
(Eng. Change Shell) met de optie --shell
of -s
.
$ chsh --shell /bin/bash
# Toetsencombinaties
Bijvoorbeeld ^X
wil zeggen de toetsencombinatie Ctrl+X.
# Automatisch aanvullen
Opdrachten en paden worden aangevuld zolang het bestaat en zolang er geen meerdere mogelijkheden zijn.
Met 2×↹ Tab kan je de mogelijkheden bekijken.
# Opdrachten
# Uitvoeren
Een opdracht wordt pas uitgevoerd wanneer op ↵ Enter gedrukt wordt.
Voorbeeld:
$ bash --version
GNU Bash
$ _
# Annuleren
# Meerdere opdrachten
Meerdere opdrachten laten uitvoeren met 1 lijn doe je door de opdrachten te scheiden met een puntkomma (;
).
«eerste-opdracht»; tweede-opdracht»
Voorbeeld:
$ ls; ls -l
Je kan een volgende opdracht laten uitvoeren als de voorgaande gelukt is, door dubbele ampersand (&&
) te gebruiken.
«eerste-opdracht» && tweede-opdracht»
Voorbeeld:
$ sudo apt update && sudo apt upgrade
# Pipeline
|
pipe«opdracht-met-output» | «opdracht-die-output-opvangt»
Programma’s waarmee je de output kan opvangen:
more
less
grep
(Eng. Global / Regular Expression / Print)
Voorbeelden:
$ ls -l / | more
$ ls -l / | less
# Omleiding
Met een omleiding (Eng. redirection) kan invoer en uitvoer omgeleid worden.
Device | File Descriptor | |
---|---|---|
/dev/stdin | 0 | Standaardinvoer (Eng. standard input) |
/dev/stdout | 1 | Standaarduitvoer (Eng. standard output) |
/dev/stderr | 2 | Standaardfoutmeldingen (Eng. standard error) |
# Uitvoer omleiden
«opdracht» > «tekstbestand»
Slaat de uitvoer van de opdracht op als tekstbestand met de naam«tekstbestand»
. Het bestand wordt overschreven als het al bestaat.«opdracht» >> «tekstbestand»
Voegt de uitvoer van de opdracht toe aan het tekstbestand. Het bestand wordt aangemaakt indien het nog niet bestaat.
Voorbeelden:
$ ls -la > lijst.txt
# Invoer omleiden
# Scherm wissen
clear
(Eng. clear screen, Ned. scherm wissen).
Voorbeeld:
$ clear
# Historie
De uitgevoerde opdrachten worden bijgehouden in een historiebibliotheek.
Met de opdracht history
(Eng. history library; Ned. historiebibliotheek) kan je een lijst met alle uitgevoerde opdrachten opvragen.
history
history -«optie(s)»
c
(Eng. clear history; Ned. historie wissen).
Voorbeelden:
$ history
$ history -c