Võib-olla olete kuulnud Bashist – enamiku Linuxi distributsioonide vaikekestast. Linuxile on eelinstallitud veel üks kest: Bourne'i kest.
Bourne'i kest on üks vanimaid tänapäevastes Linuxi süsteemides endiselt kasutusel olevaid kestasid, kuigi seda ei kasutata nii laialdaselt kui Bash. Siin on see, mida peate teadma Linuxi Bourne'i kesta kohta.
Mis on Bourne Shell?
Bourne'i kest, mida sageli lühendatakse kui "sh", on oma nime saanud Briti arvutiteadlase Stephen R. Bourne, kes töötas selle välja 1978. aastal Bell Labsis töötades. Kest asendas varasema Thompson Shelli, mille kirjutas üks Unixi algsetest loojatest Ken Thompson.
Bourne'i kest debüteeris Unixi versiooniga 7 1979. aastal. Sellel olid sellised funktsioonid nagu voolu juhtimine, muutujad ja täiustatud stringide käsitlemine. Need funktsioonid muutsid kesta kasutamise lihtsamaks programmeerimiskeelena, mitte lihtsalt teiste programmide väljakutsumiseks.
Kuigi Bourne'i kest jäi Unixi süsteemides kaasaskantavate skriptide kirjutamiseks populaarseks, oli see nii asendatud interaktiivseks kasutamiseks kest C, KornShell, Bourne Again kest, tuntud ka kui Bash, ja Z kest. Need kestad pakkusid selliseid funktsioone nagu
käsuajalugu ja käsurea redigeerimine mis tegi kasutajate ja administraatorite elu lihtsamaks.KornShelli, Bashi ja Z kesta (kajastatud hiljem) süntaksid on Bourne'i kesta mõjutatud.
Võimsamad platvormidevahelised skriptikeeled koos veelgi täiustatud funktsioonidega, nagu Perl ja Python, asendasid samuti suures osas shelliskriptimise.
Siiski on Bourne'i kest laialt mõistetav ja paljud Linuxi programmidega kaasas olevad skriptid kasutavad selle süntaksit erinevate ülesannete jaoks.
Bourne'i kesta käitumine kodifitseeriti POSIX standard, nii paljud kaasaegsed Unixi-laadsed süsteemid rakendavad seda mingil viisil, kasutades ühilduvat kesta.
Kaasaegsed Bourne Shelli alternatiivid
Linuxi süsteemides on Bourne'i algsele kestale mitu avatud lähtekoodiga kaasaegset alternatiivi. Siin on mõned tuntumad:
1. Bourne Again Shell (Bash)
Nimi Bourne Again kest (Bash) on näidend Bourne'i kesta kohta. See kest töötati algselt välja GNU süsteemi komponendina, eelnedes Linuxile juba mitu aastat.
See ühildub suures osas algselt Bourne'i kesta jaoks kirjutatud skriptidega. See hõlmas ka selliseid funktsioone nagu KornShelli poolt algatatud käsurea redigeerimine.
Bash on paljude Linuxi distributsioonide vaikekestaks ja seega on sellest saanud omaette de facto standard.
2. KornShell
KornShell, tuntud ka kui ksh, töötas algselt välja David Korn, samuti Bell Labsis, 1980. aastatel. Bourne'i kesta peale ehitatud KornShell tutvustas mõningaid lisafunktsioone, nagu töö juhtimine, massiivid ja käsurea redigeerimine. Viimane oli esmakordsel ilmumisel revolutsiooniline funktsioon, kuna see oli palju lihtsam kui C kesta ajaloomehhanismi kasutamine.
Kui teil oli vaja mõnda varem välja antud käsku uuesti redigeerida, saate selleks kasutada Vi või Emacsi sarnaseid käske.
KornShell oli vaikeseade mõnes kaubanduslikus Linuxi süsteemis, nagu Oracle Solaris. Kuna algse KornShelli andis algselt välja AT&T patenteeritud litsentsi alusel, anti lõpuks välja ka avatud lähtekoodiga versioon nimega pdksh.
3. Almquist/Debian Almquist Shell
Almquisti kesta kirjutas algselt Kenneth Almquist ja see oli mõeldud Bourne'i kesta kergeks asenduseks. Paljud BSD süsteemid sisaldavad seda sh rakendamisena.
Üks versioon porditi Debiani 1990ndatel ja seda tuntakse Debiani Almquisti kestana. Nagu nimigi viitab, on see sh juurutamine Debiani ja Ubuntu süsteemides.
4. Z Shell
Z kestzsh ehk zsh on üks uusimaid kestasid, mille töötas algselt välja 1990. aastal Paul Falsted. Z shell on saanud tuntuks oma täiustatud funktsioonide poolest. Hea näide on rekursiivne globbing ehk võimalus sobitada alamkataloogides metamärke.
Z kest on macOS-i ja Kali Linuxi vaikimisi sisselogimisshell.
Bourne Shelli ühilduvus
Kuigi need kestad ühilduvad suures osas algselt Bourne'i kesta jaoks kirjutatud skriptidega, on võimalik nende käitumist muuta nii, et need sarnaneksid rohkem algse kestaga.
Peamine viis seda teha on läbi sümboolne link. Enamik süsteeme lingib /bin/sh kas Bashile või muule kestale. Sel viisil käivitamisel siseneb kest Bourne'i kestaga ühilduvusrežiimi.
Saate näha, milline kest /bin/sh on seotud ls käsk:
ls -l /bin/sh
Nüüd teate Bourne Shelli kohta
Bourne'i kest on üks vanimaid Unixi-sarnaste süsteemide skriptimise standardeid. Isegi kui see on asendatud teiste kestadega, on see teiste kirjutatud skriptide käitamiseks siiski ülioluline.
Bash on üks parimaid Bourne'i tuletisi kodeerimiseks, eriti muutujatele lähenemise poolest. Sellel on mõned ainulaadsed muutujad, mis võivad tekitada soovi seda oma järgmises projektis kaaluda.