Difference between revisions of "Bash"

From Teknologisk videncenter
Jump to: navigation, search
m
m (Filer)
Line 6: Line 6:
 
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.
 
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'''
+
|'''/etc/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'''
+
|Opstartsfil som '''bash''' udfører for alle brugere på maskinen. Udføres før den personlige opstartsfil.  
*'''$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_profile'''
*'''$HOME/.bash_logout'''
+
|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'''
**Denne fil er din personlig afslutningsfil og udføres når der logges ud.
+
|-
*'''$HOME/.inputrc'''
+
|'''$HOME/.bashrc'''  
**Denne fil indeholder opstartskommandoer til '''bash'''. Anvendes til for eksempel at ændre tastatur genveje.
+
|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 ==
 
== Online bash hjælp ==
 
*On line manualen: '''man bash'''
 
*On line manualen: '''man bash'''

Revision as of 11:19, 21 August 2009

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.

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.

IPv4 Multicast Address groups
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 ...]

Eksterne henvisninger