Bourne Again SHell - BASH

Co je to BASH?

Bash je shell vytvorený pro operacní systémy GNU. Dnes je to jeden z nejpouzívanejsích shellu na Linuxu.

Co je to shell?

Shell je program, který v unixových operacních systémech vytvárí základní textové rozhraní mezi uzivatelem a operacním systémem. Kdyz si spustíte v Linuxu textovou konzoli, textový kurzor, který uvidíte, je vlastne soucástí shellu, který tím dává uzivateli na vedomí, ze ocekává príkazy. Základní funkcností shellu je spoustet uzivatelské príkazy (vetsinou programy), ale dnesní shelly toho umí mnohem více. V unixovém svete neexistuje jediný shell, existuje jich pomerne hodne a vzájemne se lisí ovládáním a schopnostmi, ackoli základní funkcionalita je stejná. Vsechny shelly umí pracovat jak v interaktivním, tak v dávkovém rezimu.

Základní ovládání v interaktivním rezimu

Bash umí nejenom spoustet príkazy, ale zároven si umí pamatovat nekolik posledne vykonaných príkazu (bezne desítky, ale lze nastavit i více). Zkuste spustit pár príkazu a poté pouzijte klávesy sipka nahoru a sipka dolu.

K efektivnímu ovládání operacního systému je samozrejme nutné znát systémové príkazy. Zde nabízím referencní stránku se základními Linuxovými príkazy a konstrukcemi skriptovacího jazyka bash:

Práce v dávkovém rezimu

Ackoli bash nabízí pomerne komfortní prostredky pro práci v interaktivním rezimu, práce v dávkovém rezimu, neboli vytvárení skriptu, umoznuje mnohem efektivnejsí práci. Jazyk bash umí mnohem více nez jenom spoustet príkazy. Lze v nem pouzívat bezné rídící struktury (if, cykly, case, atd.), pouzívat promenné, ci vytváret obecnejsí podprogramy.

Shellové skripty není potreba prekládat, protoze jde o jazyk interpretovaný. To znamená, ze shell bere skript rádek po rádku a volá príkazy, které jsou zde zapsány. Skriptem se tedy rozumí obycejný textový soubor, který obsahuje volání programu operacního systému. Aby systém poznal, který interpret má pro vykonání skriptu pouzít, je nutné napsat na první rádek skriptu cestu ke konkrétnímu interpretu. Bezne vypadá první rádek skriptu takto:

#!/usr/bin/bash

V nekterých systémech je ovsem program bash umísten v jiném adresári, proto je lepsí pouzít tento fígl:

#!/usr/bin/env bash

Na dalsích rádcích uz muze následovat kód, nebo komentáre (od znaku # do konce rádku). Malá ukázka:

#!/usr/bin/env bash
#
# Vypíse obsah aktuálního adresáre.
#

for name in *; do
  if [ -d $name ]; then
    echo "$name je adresár"
  else
    echo "$name je soubor"
  fi
done

Pokud tento skript ulozíme pod jménem vypis.sh, lze jej spustit napríklad takto:

eva ~> bash vypis.sh

Pokud z nej chceme udelat spustitelný príkaz, musíme mu nastavit príslusná práva souboru:

eva ~> chmod 755 vypis.sh

Ted je mozné spustit príkaz z aktuálního adresáre nebo jej umístit do adresáre, který je v promenné PATH. Spoustení z aktuálního adresáre vypadá takto:

eva ~> ./vypis.sh

Reference

Skriptovací jazyk bash je dobre dokumentován, takze nemá velký smysl, abych psal nový návod. Na internetu lze najít mnozství kvalitních prírucek.


Poslední modifikace: 6. February 2006. Pokud v tomto dokumentu narazíte na chybu, dejte mi prosím vedet.