Bash, wat staat voor Bourne Again Shell, is een shell voor POSIX-systemen en wordt onder andere gebruikt op Linux en macOS. Het is geschreven door GNU en is sterk geïnspireerd op sh (afgeleid van de eerste twee letters van shell (Engels voor omhulsel)), het opdrachtregelprogramma van Unix.
De naam is een woordgrapje op de naam van de originele shell, die voluit Bourne shell heet, naar de auteur (Stephen Bourne). Bourne again wordt in het Engels hetzelfde uitgesproken als born again, hetgeen wedergeboren betekent. Bash streeft 100% achterwaartse compatibiliteit met sh na.
Vanwege de rijke syntaxismogelijkheden van bash is het ook mogelijk in bash ingewikkelde opdrachtregels uit te voeren. Deze opdrachten kunnen worden opgeslagen in afzonderlijke bestanden (meestal omwille van hun lengte) en vormen dan scripts.
Rekenkundige bewerkingen | expr 1 + 3 (spaties tussen 1 + 3 zijn verplicht) |
Afdrukken van tekst | echo “Dit is tekst” |
Oproepen van een commando | commando |
Uitleg over een commando | man commando |
Uitvoeren van een script | bash scriptNaam bash “scriptNaam met spatie” ./ScriptNaam (nadat het uitvoerbaar is gemaakt) |
Bestand uitvoerbaar maken | chmod u+x bestandnaam |
Regels die beginnen met # zijn commentaar. Meerdere commando’s op 1 regel door scheiden met ;
Soorten commando’s
Interne commando’s
Ingebouwde commando’s zijn ingesloten in de shell. Als de naam van een ingebouwd commando wordt gebruikt als het eerste woord van een primair commando dan zal het commando onmiddellijk zonder tussenkomst van een ander programma worden uitgevoerd. Primaire commando’s zijn nodig om bepaalde functionaliteit te implementeren die moeilijk of zelfs onmogelijk zijn om deze met externe hulpprogramma’s op te lossen.
Veel van de ingebouwde commando’s zijn uitgebreid door POSIX of Bash.
Externe commando’s
Externe commando’s zijn bestanden in de /bin folder. (In Linux wordt alles voorgesteld in de vorm van bestanden). Als de bestanden niet aanwezig zijn in de door het $PATH variabele gespecificeerd pad dan worden ze ook niet uitgevoerd. Hetzelfde geldt ook voor als de bestanden aanwezig zijn maar niet het pad gespecificeerd door het $PATH variabele. Elke keer als er commando wordt opgeroepen word een nieuw proces gecreëerd.
Bestandssysteem
cat | Voegt bestanden samen en drukt ze af naar de standaard uitvoer | concatenate | |
cd | Bourne Shell | Verandert de huidige directory naar andere | change directory |
cp | Kopiëren van bestanden | copy files | |
dir | Drukt lijst van zichtbare bestanden af | directory | |
mkdir | Aanmaken map | make directory | |
ls | Drukt lijst van zichtbare bestanden af | list files | |
mv | Verplaatsen van bestanden | move | |
pwd | Bourne Shell | Drukt de huidige werkmap af | print working directory |
rm | Bestand verwijderen | remove files | |
rmdir | Map verwijderen (enkel indien ze leeg is) | remove directory | |
tac | Voegt bestanden in omgekeerde volgorde samen en drukt ze af naar de standaard uitvoer | reversed concatenate | |
touch | Bestand aanpassen of aanmaken | touch files |
Gebruikersomgeving
clear | Maakt het scherm leeg | clear screen | |
exit | Bourne Shell | Shell afsluiten of script stoppen | |
last | Lijst van laatst ingelogde gebruikers | ||
shutdown | -h now sluit het systeem onmiddellijk af | ||
who | Toont overzicht van de aangemelde gebruikers | ||
whoami | Gebruikersnaam van terminalgebruiker |
Tekstverwerking
head | Toont eerste X regels uit een bestand (standaard 10) | ||
grep | Toont lijnen die voldoen aan het opgegeven patroon. | ||
less | Toont de uitvoer via een schuifbaar pagineringprogramma in het terminalvenster. Zelfde als more maar less is more! | ||
more | Toont de uitvoer via een indeelbaar pagineringprogramma via een terminalvenster. | ||
pg | Paginagewijs door bestand bladeren | page | |
sort | Sorteren | ||
tail | Toont laatste X regels uit een bestand (standaard 10) | ||
uniq | Toont of laat de dubbele lijnen weg | unique | |
wc | Aantal regels, woorden, bytes tellen van bestand(en) | word count |
Documentatie
help | Bash | Toont help van een ingebouwde functie | |
info | Tekst viewer om documenten in het Info formaat de tonen | ||
man | Toont de handleiding van een bestand via een pager programma zoals more of less | manual |
Ingebouwde shell-opdrachten
echo | Bash | Toont de waarde van variabelen, zowel omgevingspecifieke of gebruikersgedeclareerde. Het het kan ook een eenvoudige string tonen. | |
type | Bash | Beschrijft hoe argumenten worden geïnterpreteerd als ze gebruikt worden als commando-namen. |
Diverse
cal | Drukt kalender van de huidige maand af | calender | |
date | Drukt de huidige datum en tijd af |