# 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.

Steve Bourne

🇬🇧 🇺🇸 Stephen Richard Bourne (1944-…) is een Brits-Amerikaanse wiskundige en computerwetenschapper die de Bourne Shell ontwikkeld heeft, de standaard shell van Version 7 Unix.

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

Opgelet

Het dollarteken ($) stelt de opdrachtprompt (Eng. command prompt) voor en mag je niet typen!

Opgelet

De guillemets (« en ») mag je niet typen!
Deze geven enkel aan dat je het teken of woord ertussen een tijdelijke aanduiding (Eng. placeholder) is.

# Toetsencombinaties

Opmerking

In een tekstuele gebruikersinterface gebruikt men vaak het teken ^ als symbool voor de toets Ctrl.

Bijvoorbeeld ^X wil zeggen de toetsencombinatie Ctrl+X.

# Automatisch aanvullen

Tip

Gebruik zoveel mogelijk automatisch aanvullen (Eng. autocompletion) door op de ↹ Tab te drukken.

Opdrachten en paden worden aangevuld zolang het bestaat en zolang er geen meerdere mogelijkheden zijn.
Met ↹ Tab kan je de mogelijkheden bekijken.

# Opdrachten

# Uitvoeren

Een opdracht wordt pas uitgevoerd wanneer op ↵ Enter gedrukt wordt.

Voorbeeld:

$ bash --version
GNU Bash
$ _

# Annuleren

Tip

Een opdracht annuleren (Eng. cancel) kan je meestal met Ctrl+C.

# 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.

Tip

Met de pijltjestoetsen ( en ) kan je voorgaande opdrachten oproepen.

Toets Functie
Ga naar de voorgaande opdracht.
Ga naar de volgende opdracht.

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

Opgelet

Probeer te vermijden dat je een wachtwoord meegeeft met een opdracht, omdat een hacker die heel makkelijk kan terugvinden in de historiebibliotheek.

© 2024 Arteveldehogeschool Laatst bijgewerkt: 14/2/2020, 11:07:52