Je hebt misschien wel eens gehoord van Bash, de standaardshell op de meeste Linux-distributies. Er is nog een shell die voorgeïnstalleerd is op Linux: de Bourne-shell.

De Bourne-shell is een van de oudste shells die nog steeds in gebruik is op moderne Linux-systemen, ook al wordt hij niet zo veel gebruikt als Bash. Dit is wat u moet weten over de Bourne-shell op Linux.

Wat is de Bourne-schaal?

De Bourne-shell, vaak afgekort tot "sh", is vernoemd naar de Britse computerwetenschapper Stephen R. Bourne, die het ontwikkelde tijdens zijn werk bij Bell Labs in 1978. De shell verving de eerdere Thompson Shell, geschreven door een van de oorspronkelijke makers van Unix, Ken Thompson.

De Bourne-shell debuteerde met versie 7 Unix in 1979. Het had functies zoals flow control, variabelen en verbeterde stringafhandeling. Deze functies maakten het gemakkelijker om de shell als programmeertaal te gebruiken in plaats van alleen een manier om andere programma's op te roepen.

Hoewel de Bourne-shell populair bleef voor het schrijven van draagbare scripts op Unix-systemen, was het dat wel vervangen voor interactief gebruik door de C-shell, KornShell, Bourne Again-shell, ook bekend als Bash, en Z schelp. Deze shells boden functies zoals

instagram viewer
opdrachtgeschiedenis en opdrachtregelbewerking die het leven van gebruikers en beheerders gemakkelijker maakte.

KornShell-, Bash- en Z-shell (later behandeld) hebben syntaxen die zijn beïnvloed door de Bourne-shell.

Krachtiger platformonafhankelijke scripttalen met nog geavanceerdere functies zoals Perl en Python hebben ook grotendeels shell-scripting vervangen.

Toch wordt de Bourne-shell algemeen begrepen en veel scripts die bij Linux-programma's worden geleverd, gebruiken de syntaxis ervan voor verschillende taken.

Het gedrag van de Bourne-granaat werd vastgelegd in de POSIX-standaard, zoveel moderne Unix-achtige systemen implementeren het op de een of andere manier door een compatibele shell te gebruiken.

Moderne Bourne Shell-alternatieven

Er zijn verschillende open-source moderne alternatieven voor de originele Bourne-shell op Linux-systemen. Hier zijn enkele van de bekendste:

1. Bourne opnieuw Shell (Bash)

De naam Bourne Again-schelp (Bash) is een spel op de Bourne-schelp. Deze shell is oorspronkelijk ontwikkeld als onderdeel van het GNU-systeem en dateert van voor Linux.

Het is grotendeels compatibel met scripts die oorspronkelijk voor de Bourne-shell zijn geschreven. Het bevat ook functies zoals bewerking via de opdrachtregel, ontwikkeld door KornShell.

Bash is de standaardshell op veel Linux-distributies en is dus op zichzelf een de facto standaard geworden.

2. KornShell

KornShell, ook wel bekend als ksh, werd oorspronkelijk ontwikkeld door David Korn, ook bij Bell Labs, in de jaren tachtig. KornShell is gebouwd bovenop de Bourne-shell en heeft een aantal extra functies geïntroduceerd, zoals taakbeheer, arrays en bewerking via de opdrachtregel. Dit laatste was een revolutionair kenmerk toen het voor het eerst verscheen, omdat het een stuk eenvoudiger was dan het gebruik van het geschiedenismechanisme van de C-shell.

Als u een eerder uitgegeven commando opnieuw moet bewerken, kunt u hiervoor commando's gebruiken die vergelijkbaar zijn met Vi of Emacs.

KornShell was een standaard op sommige commerciële Linux-systemen zoals Oracle Solaris. Omdat de originele KornShell aanvankelijk door AT&T werd uitgebracht onder een eigen licentie, werd uiteindelijk een open-sourceversie met de naam pdksh uitgebracht.

3. Almquist/Debian Almquist-shell

De Almquist-schaal is oorspronkelijk geschreven door Kenneth Almquist en was bedoeld als lichtgewicht vervanging voor de Bourne-schaal. Veel BSD-systemen bevatten het als de implementatie van sh.

Een versie werd in de jaren negentig naar Debian geporteerd en staat bekend als de Debian Almquist-shell. Zoals de naam al aangeeft, is het de implementatie van sh op Debian- en Ubuntu-systemen.

4. Z Shell

Z-schaal, of zsh, is een van de nieuwste shells, oorspronkelijk ontwikkeld in 1990 door Paul Falsted. Z shell is bekend geworden om zijn geavanceerde functies. Een goed voorbeeld is recursieve globbing, of de mogelijkheid om wildcards in subdirectories te matchen.

Z-shell is de standaard login-shell voor macOS en Kali Linux.

Bourne Shell-compatibiliteit

Hoewel deze shells grotendeels compatibel zijn met scripts die oorspronkelijk voor de Bourne-shell zijn geschreven, zijn er manieren om hun gedrag te veranderen om meer op de originele shell te lijken.

De belangrijkste manier om dit te doen is via een symbolische koppeling. De meeste systemen zullen symlinken /bin/sh naar Bash of een andere shell. Wanneer deze op deze manier wordt aangeroepen, gaat de shell in compatibiliteitsmodus met de Bourne-shell.

Je kunt zien welke schaal /bin/sh is gekoppeld aan het ls-commando:

ls -l /bin/sh

Nu weet je over de Bourne Shell

De Bourne-shell is een van de oudste standaarden voor scripting op Unix-achtige systemen. Zelfs als het is vervangen door andere shells, is het nog steeds essentieel voor het uitvoeren van scripts die door anderen zijn geschreven.

Bash is een van de beste Bournederivaten voor codering, vooral vanwege de benadering van variabelen. Het heeft enkele unieke variabelen waardoor u het misschien wilt overwegen voor uw volgende project.