Možno ste už počuli o Bash – predvolenom shellu vo väčšine linuxových distribúcií. V systéme Linux je predinštalovaný ďalší shell: Bourne shell.

Bourne shell je jedným z najstarších shellov, ktoré sa stále používajú na moderných systémoch Linux, aj keď nie je tak široko používaný ako Bash. Tu je to, čo potrebujete vedieť o Bourne shell v systéme Linux.

Čo je Bourne Shell?

Bourneova škrupina, často skracovaná na „sh“, je pomenovaná po britskom počítačovom vedcovi Stephenovi R. Bourne, ktorý ho vyvinul počas práce v Bell Labs v roku 1978. Shell nahradil skorší Thompson Shell, ktorý napísal jeden z pôvodných tvorcov Unixu Ken Thompson.

Bourne shell debutoval s verziou 7 Unix v roku 1979. Mal funkcie ako riadenie toku, premenné a vylepšené spracovanie reťazcov. Tieto funkcie uľahčili používanie shellu ako programovacieho jazyka, a nie len ako spôsob vyvolávania iných programov.

Zatiaľ čo Bourneov shell zostal populárny na písanie prenosných skriptov v systémoch Unix, bol nahradené pre interaktívne použitie shellmi C, KornShell, Bourne Again shell, tiež známymi ako Bash a Z škrupina. Tieto mušle ponúkali funkcie ako

instagram viewer
históriu príkazov a úpravu príkazového riadku ktoré uľahčili život používateľom a správcom.

KornShell, Bash a Z shell (uvedené neskôr) majú syntaxe ovplyvnené Bourne shellom.

Výkonnejšie multiplatformové skriptovacie jazyky s ešte pokročilejšími funkciami ako Perl a Python tiež do značnej miery nahradili skriptovanie shellu.

Napriek tomu je Bourne shell široko pochopený a veľa skriptov dodávaných s programami Linux používa jeho syntax na rôzne úlohy.

Správanie Bourne shell bolo zakódované do štandard POSIX, takže mnohé moderné systémy podobné Unixu to nejakým spôsobom implementujú pomocou kompatibilného shellu.

Moderné alternatívy Bourne Shell

V systémoch Linux existuje niekoľko moderných alternatív s otvoreným zdrojom k pôvodnému shellu Bourne. Tu sú niektoré z najznámejších:

1. Bourne Again Shell (Bash)

Názov Bourne Again shell (Bash) je hra na Bournovu mušľu. Tento shell bol pôvodne vyvinutý ako súčasť systému GNU a niekoľko rokov predchádzal Linuxu.

Je do značnej miery kompatibilný so skriptami pôvodne napísanými pre Bourne shell. Zahŕňal tiež funkcie, ako je úprava príkazového riadku, ktorú propagoval KornShell.

Bash je predvolený shell na mnohých distribúciách Linuxu, a preto sa stal de facto štandardom sám o sebe.

2. KornShell

KornShell, tiež známy ako ksh, bol pôvodne vyvinutý Davidom Kornom, tiež v Bell Labs, v 80. rokoch. KornShell, postavený na Bourne shell, zaviedol niektoré ďalšie funkcie, ako je ovládanie úloh, polia a úpravy príkazového riadku. Ten bol revolučnou funkciou, keď sa prvýkrát objavil, pretože to bolo oveľa jednoduchšie ako použitie mechanizmu histórie shellu C.

Ak ste potrebovali znova upraviť predtým zadaný príkaz, môžete na to použiť príkazy podobné Vi alebo Emacs.

KornShell bol predvolený v niektorých komerčných systémoch Linux, ako je Oracle Solaris. Keďže pôvodný KornShell bol pôvodne vydaný spoločnosťou AT&T pod proprietárnou licenciou, nakoniec bola vydaná verzia s otvoreným zdrojom s názvom pdksh.

3. Almquist/Debian Almquist Shell

Škrupinu Almquist pôvodne napísal Kenneth Almquist a bola určená ako ľahká náhrada škrupiny Bourne. Mnohé BSD systémy to zahŕňajú ako implementáciu sh.

Verzia bola prenesená do Debianu v 90. rokoch a je známa ako shell Debian Almquist. Ako už názov napovedá, ide o implementáciu sh na systémoch Debian a Ubuntu.

4. Z Shell

Z shell, alebo zsh, je jedným z najnovších škrupín, ktorý pôvodne vyvinul v roku 1990 Paul Falsted. Z shell sa stal známym pre svoje pokročilé funkcie. Dobrým príkladom je rekurzívne globovanie alebo schopnosť porovnávať zástupné znaky v podadresároch.

Z shell je predvolený prihlasovací shell pre macOS a Kali Linux.

Kompatibilita s Bourne Shell

Aj keď sú tieto shelly do značnej miery kompatibilné so skriptami pôvodne napísanými pre Bourne shell, existujú spôsoby, ako zmeniť ich správanie tak, aby sa viac podobalo pôvodnému shellu.

Hlavným spôsobom, ako to dosiahnuť, je cez symbolický odkaz. Väčšina systémov sa symbolicky prepojí /bin/sh do Bash alebo iného shellu. Pri vyvolaní týmto spôsobom shell vstúpi do režimu kompatibility s Bourne shell.

Môžete vidieť, ktorá škrupina /bin/sh je spojený s príkaz ls:

ls -l /bin/sh

Teraz viete o Bourne Shell

Bourne shell je jedným z najstarších štandardov pre skriptovanie na systémoch podobných Unixu. Aj keď bol nahradený inými shellmi, je stále dôležitý pre spúšťanie skriptov napísaných inými.

Bash je jedným z najlepších Bourneových derivátov na kódovanie, najmä pre svoj prístup k premenným. Má niekoľko jedinečných premenných, ktoré môžu spôsobiť, že ho budete chcieť zvážiť pri svojom ďalšom projekte.