Mi az a Bash Shell és miért olyan fontos Linux-on?
A Bash Shell jelenleg 30 éves és még mindig nagy szerepe van Linux operációs rendszerek működésében. Jogos lehet a kérdés kezdőbbek részéről, hogy mi a lényege, honnan jön és miért ez a legnépszerűbb Shell a modern Linux rendszereken? Nézzük!
Mi az a Shell?
Most nem a benzinkútra gondolunk természetesen, hanem egy olyan rendszerkomponensre, mely fogadja parancsainkat, melyeket Linux-on a terminálba (parancssorba) írunk. A Shell fogadja a megadott parancsokat, megállapítja szándékainkat és ennek megfelelően futtat le kérvényezett feladatokat. A Shell a Linux rendszer szoftveres része, mely mindezt csinálja.
Szkenneli, amit a terminálba írtunk, azonosítja a referált parancsokat, könyvtárakat, fájlneveket és programokat, majd végrehajtja a kódot.
Sok felhasználó szinonímaként használja a parancssort, a terminált és a shell-t, de valójában ez 3 különböző dolog. Linux-on egy terminál egy szoftveres reprezentációja egy interfésznek, mely hozzáférést ad a rendszer funkcióihoz. Maga a parancssor ezen belül foglal helyet, ugyanis ebbe kell beírni a tényleges kódot és utasításokat. Magát a parancssort a rendszer shell-je biztosítja és így a terminál által közvetlenül használjuk a shell-t, ami teljesíti parancsainkat.
A Shell-ek azt is lehetővé teszik, hogy „felkockázzunk” parancsok tömbjeit külön fájlokba, melyeket script-eknek nevezünk. Amikor a script-et futtatjuk, minden benne található parancs teljesítésre kerül, így tehát könnyen lehet parancsok tucatjait egymás után egy kattintással lefuttatni. Az első Unix shell a Thompson volt, amit még Ken Thompson csinált az akkori Bell labs-nél. Thompson az egyik legfontosabb figura volt az Unix megalkotásában, melyből később lett a Linux. A Thompson shell-t a Bourne shell váltotta 1979-ben.
A Bourne Shell
A Stephen Bourne által készített Bourne shell hasonlított a korábbi Thompson shell-re de fejlettebb változata volt minden szempontból, habár a régi „sh” parancs megmaradt, hogy megtartsák a visszafelé kompatibilitást a régebbi script-ekhez. A Bourne shell egy egészen interaktív shell és programozói nyelv volt. Támogatta a feladatok előtérben és háttérben történő végrehajtását is, továbbá egyszerű volt az átirányítások kialakítása és a végtelen köröket (loop) is jobban kezelte.
A Bourne shell-ben már volt néhány beépített parancs is, ami azt jelentette, hogy nem kellett minden kiszervezni más programokhoz, így az egész rendszer gyorsabb lett. A shell még a „here document”-eket is támogatta, melyek elegáns megvalósítását biztosították annak, hogy automatizáljuk adatok küldését parancsokba.
A következő részben folytatjuk!