Bash
bash - eller Bourne Again Shell - er den mest benyttede shell eller kommandofortolker til Unix og Linux systemer i dag. Der findes andre shells end bash. For eksempel csh (C-Shell), ksh (Korn-Shell) og bsh (Bourne-Shell).
Bash kaldes ofte i engelsk litteratur for en CLI - Command Line Interpreter eller kommandofortolker på dansk.
Contents
Filer
Selve programmet bash kan være installeret i forskellige biblioteker på forskellige systemer men findes oftest i /usr/bin biblioteket. På BSD Unix varianter findes bash ofte i /usr/local/bin. Hvis du ikke ved hvor din lokale bash findes kan den findes med whereis bash kommandoen.
/etc/profile | Opstartsfil som bash udfører for alle brugere på maskinen. Udføres før den personlige opstartsfil. |
$HOME/.bash_profile | Denne fil er din personlige opstartsfil og vil blive udført når du logger ind på systemet, og indeholder typisk opstartskommandoer, velkomst... Hvis .bash_profile ikke eksister i dit hjemmebibliotek vil bash kigge efter filen .bash_login og udføre den. Hvis denne heller ikke eksister kigger bash efter filen .profile og udfører kommandoerne i den. Bemærk kun en af disse filer vil blive udført i rækkefølgen: 1: .bash_profile 2: .bash_login eller 3: .profile |
$HOME/.bashrc | Denne fil er personlig og vil blive udført hvergang der startes en sub-shell, det vil sige hvergang bash starter en ny
bash |
$HOME/.bash_logout | Denne fil er din personlig afslutningsfil og udføres når der logges ud. |
$HOME/.inputrc | Denne fil indeholder opstartskommandoer til bash. Anvendes til for eksempel at ændre tastatur genveje. |
Online bash hjælp
- On line manualen: man bash
- indbygget bash hjælp: help
- hjælp til bash indbyggede kommandoer: help while (eksempel)
bash tilpasning med set kommandoen
Hvis du ønsker at ændre bash måde at fungere på kan set kommandoen anvendes. Dette er normalt ikke nødvendigt.
- Kommandoer
- help set
Debugging scripts
Det kan være svært at debugge scripts og se hvor problemet er. Her kan bash sættes i enten verbose eller trace mode. Verbose eller trace mode kan slås til og fra efter behag i dit script.
- verbose mode. (Viser kommandoer som de læses fra scriptet. Som de er skrevet)
- Brug enten set -v eller set -o verbose for at aktivere verbose mode
- Brug enten set +v eller set +o verbose for at de-aktivere verbose mode
- trace mode. (Viser kommandoer som de udføres i scriptet. Fx. indholdet af variablerne.
- Brug enten set -x eller set -o xtrace for at aktivere trace mode
- Brug enten set +x eller set +o xtrace for at de-aktivere trace mode
#!/usr/bin/bash
...
#Kode her er OK
...
set -x #bash trace mode slået til og alle kommandoer udført vises på skærmen
...
#mistænkelig kode her
...
set +x #bash trace mode slået fra og bash fungerer normalt
...
#kode her er ok
...
Variable
Der er
Job kontrol
Job kontrol kan anvendes til at styre flere kørende programmer samtifig. Et kørende program kan suspenderes - dvs. stoppes - og resume - dvs. fortsætte - på et senere tidspunkt. Jobs kan køre i baggrunden - det vil sige ikke med standard output på skærmen.
Funktion | kommando |
---|---|
Stoppe kørende program i forgrunden | <CTRL>-Z |
Se stoppede programmer og jobnumre | jobs |
Forsætte stoppet program i forgrunden | fg [job-nummer] |
Fortsætte stoppet program i baggrunden | bg [job-nummer ...] |
bash og processer
Processer er de programmer der kører på maskinen og programmer du starter i bash.
Fødslen af et process
Når der startes en ny process vil bash starte processen med tre åbne filhåndtag.
Navn | filhåndtag # | Forklaring |
---|---|---|
STDIN (Standard input) | 0 | Standard indlæsning af data. Hentes som standard fra tastaturet |
STDOUT (Standard output) | 1 | Standard udlæsning af data. Sendes som standard til skærmen |
STDERR (Standard error) | 2 | Fejl beskeder fra processem. Sendes som standard til skærmen |