Bash Shell er over 30 år gammel og går stadig stærk. Hvad gør det, hvor kom det fra, og hvorfor er det stadig den mest almindelige shell på Linux-systemer?
Hvad er en shell?
Når du åbner et terminalvindue og type kommandoer, skal noget tage det, du har skrevet, find ud af, hvad du har tænkt, og kør de opgaver, du bad om. Softwaren, der gør dette, er skallen. En shell er en kommandolinter. Det scanner, hvad du har skrevet og vælger kommandoerne, katalognavne, filnavne og programnavne, så det kan finde ud af, hvad du forsøger at opnå.
Folk bruger ofte sætningerne "Terminal Windows", "Command Line" og "Shell" udskifteligt, men de er tre forskellige ting. Et terminal vindue er en software repræsentation af en fysisk TELETYPE Terminal. . Det giver dig en forbindelse til computeren. For at gøre noget nyttigt skal du kunne skrive instruktioner på en kommandolinje. Kommandolinjen leveres af skallen, og terminalvinduet giver dig mulighed for at få adgang til skallen.
Skaller giver dig også mulighed for at pakke op en samling af kommandoer i en tekstfil kaldet et script. Alle kommandoer i scriptet udføres for dig hver gang du kører scriptet. Scripts leverer effektivitet, repeterbarhed og bekvemmelighed.
Den første
Unix.
Shell var
Thompson Shell.
, hedder
SH.
. Det blev skrevet af
Ken Thompson
, der muligvis er det mest nøglemedlem i de oprindelige UNIX-grundlæggere på
Bell Labs.
. Thompson Shell blev brugt som standard Unix Shell op til og med UNIX version 6. Det blev erstattet af
Bourne Shell.
i version 7 af UNIX i 1979.
RELATEREDE: Hvad er Unix, og hvorfor betyder det noget?
Bourne Shell.
Bourne Shell, skrevet af
Stephen Bourne.
, Var en opgraderet udskiftning til Thompson Shell. Det blev endda begyndt at bruge den samme kommando som Thompson Shell,
SH.
, For at opretholde tilbagevendende kompatibilitet med eksisterende scripts. Baglænet kompatibilitet var vigtig, men nye funktioner var inkluderet, der gav meget funktionalitet, som vi stadig bruger i dag.
Bourne Shell var en interaktiv shell og et scripting sprog. Det understøttede forgrunds- og baggrundsopgaveudførelse og elementær jobkontrol. Rør og omdirigering blev tilsat sammen med forbedringer i håndteringssløjfer.
Skallen indeholdt nu nogle indbyggede kommandoer, hvilket betyder, at det ikke behøvede at passere alt ud til eksterne forsyningsselskaber, hvilket gør det mere effektivt. Bourne Shell selv understøttet "Her dokumenter" en elegant måde at automatisere at sende data til kommandoer.
Bourne Shell rejste baren og blev den nye standard.
RELATEREDE: Sådan bruges "her dokumenter" i bash på Linux
Fødslen af bash
I 1984, da GNU-projekt meddelte, at den har til hensigt at gøre en gratis UNIX klon-skrevet fra jorden op og med en Ny, permissiv licensering -Holdet havde brug for en skal. Når en frivillig, der havde arbejdet på en skal for GNU-projektet, kunne gentagne gange levere noget overhovedet, Brian Fox. blev til opgave at skrive en klon af Bourne Shell.
Det blev kaldt Bourne igen shell. eller bash. Dette var delvis i hyldest til Stephen Bourne og delvis Wordplay for dens skyld. Efter udgivelsen i 1989, Chet ramey. bidrog til nogle fejlrettelser til bash. Han blev til sidst en co-vedligeholdelse af bash shell. I dag er han stadig opretholderen af Bash-projektet.
Linus Torvalds.
, skaberen af Linux-kernen har sagt, at de første to programmer, han løb på sin nye kerne i 1991, var bash og
GCC.
Vi
GNU's compiler.
. Parringen af GNU-værktøjerne med Linux-kernen var gensidigt fordelagtigt. GNU-operativsystemet havde brug for en kerne, og Linux-kernen havde brug for alt andet, der udgør en UNIX-klon.
Fordi Bash er standard GNU Shell, blev det standard shell på alle GNU / Linux-distributioner. Linux blomstrede til det punkt, at det nu understøtter en forbløffende mængde af den moderne verden . Bash Shell blev også surfet, at der også var bølge af succes.
Bash inkorporerer og forbedrer på Funktionssætet af Bourne Shell, men det tog også inspiration fra andre skaller, som f.eks
C shell.
(
CSH.
) og
Kornshell.
(
ksh.
). For eksempel udvidelsen af tilld "
~
"Til værdien i
$ HOME.
Miljøvariablen kommer fra C-skallen, og
FC.
kommando, der påberåber standard editor på kommandoer i
kommandoen historie.
kommer fra Kornshell.
Bash introducerede config filer som f.eks ".bashrc" og ".bash_profile" filer . Command-line redigering på BASH langt overgået evnen til tidligere skaller. Manipulationen af tidligere udførte kommandoer i kommandohistorikken var en forbedret version af C-skallerne "Bang History" -funktionen. Brace Expansion var en funktion, der manglede fra Bourne Shell, der blev implementeret i Bash som en superset af den funktionalitet, der blev fundet i C Shell. Arrays blev forbedret ved at fjerne deres størrelse grænser. Parameterudvidelse I kommandoprompten giver brugerne mulighed for at tilpasse deres bashprompt.
Bash Shell sigter mod at være i overensstemmelse med POSIX P1003.2 / ISO 9945.2 Shell og Utilities standard.
RELATEREDE: Gjorde Linux Kill Commercial Unix?
Hvorfor Bash er stadig vigtig
Bash kunne ikke have varet denne lange over 30 år - som standard Linux Shell, hvis det ikke var op til jobbet. På grund af sin lange levetid og massiv brugerbase er Bash moden og meget stabil. Der er mange alternative skaller til rådighed, fra veteraner som C-shell og Kornshell til nyere skaller som
Z shell (
zsh
)
og
Venlig interaktiv shell.
(
fisk
). Både z-skallen og fiskeskallen har nogle funktioner, som bash ikke så godt som uden tvivl bedre måder at opnå nogle af de samme ting, som Bash gør. Så hvorfor er Bash stadig den dominerende skal?
Ud af alle Linux-maskinerne er jeg nogensinde blevet opfordret til at administrere, jeg husker ikke en enkelt, der ikke havde bash som skallen. UNIX-maskiner, ja, men linux kasser, nej. Det er bash hver gang. Denne fortrolighed giver dig mulighed for at komme på arbejde hurtigt og være effektiv straks. Du kender allerede bash, så der er ingen læringskurve. Du får ikke Hamstrung ved små forskelle i syntaks, der har du i gang i cirkler, der forsøger at finde ud af, hvorfor noget ikke virker. Tid brugt til at finde ud af, hvad inkantationen skal være på det her Shell er død tid, så det er i klientvirksomhedens interesser at bruge en velkendt og bredt brugt skal.
Ved hjælp af en skal, der er - eller forsøger meget svært at være-POSIX-kompatible forhold til mange Linux-distributioner, men der betyder noget mere er kompatibilitet med tidligere udgivelser. Gør ændringer, der kunne bryde eksisterende scripts, er naturligvis uinteressant. Attraktiv eller ej, nogle gange skal du bare bide kuglen. Den 3. september 1967 byttede Sverige fra kørsel til venstre for at køre til højre. Klokken 4:50 A.m. var alle trafikken at stoppe, langsomt gøre sin vej til den anden side af vejen og stoppe endnu en gang. Klokken 5:00 kl. 5, kunne trafik fortsætte med alle, der nu kører til højre.
Vil bash nogensinde blive erstattet?
Hvad der måske virker utænkeligt nu, kan faktisk ske senere. Medmindre vi vil klamre os på troen på, at vi alle vil bruge Bash indtil Doomsday, er sandheden sandsynligvis den en dag, bash vil blive erstattet som standard Linux Shell - uanset om det stadig er GNU Standard Shell eller ej. Eller måske vil det være bash, men forbedret langt ud over den shell, vi bruger i dag. Men hvad der sker stedet for nutidens bash, skal enten være helt (eller meget næsten) bagudkompatible eller være værd at ophee, uanset fordelene kan være.
Dette er ikke uden præcedens. Siden Version 10.15. af MacOSer. , Apple har faldet bash og adopteret z-skallen som standard shell. Apple har problemer med GNU General Public License (GPL) V.3. Desværre er det den licens, som bash bruger. Den sidste version af Bash, der blev udgivet under GPL V.2, var 2007's version 3.2. Den nuværende version er 5.1. Apple var næsten et årti og et halvt bagved. Den eneste måde, som Apple kunne indeholde en up-to-date skal uden at flytte til GPL V.3, var at flytte til en anden shell helt. Til Apple, det var værd at forstyrrelsen. (Men du kan stadig Skift tilbage til bash på MacOS Hvis du foretrækker det!)
Der er en verden af forskel mellem en strømbrugers arbejdsstation og en line-of-business Linux-server, som du skal administrere fjernbetjening over en SSH-forbindelse . Ud af næsten 1,5 millioner Amazon EC2 hostede servere, Over 93% kører Linux . Næsten 75% af webservere kører Linux. . Organisationer som Red Hat, Amazon, og Google bruger Linux internt.
Det er svært at forestille sig, hvilke fordele en ny skal kunne tilbyde, at det ville retfærdiggøre den slags global omvæltning. Derfor er Bash cementeret på plads.
Selv Microsoft tilbyder nu en måde at Kør en Linux-baseret bash shell på Windows 10 !