Unix / Linux Shells 101

Forfatter: Eugene Taylor
Oprettelsesdato: 11 August 2021
Opdateringsdato: 1 Kan 2024
Anonim
Unix Shell Crash Course || Unix Shell Tutorial for Beginners
Video.: Unix Shell Crash Course || Unix Shell Tutorial for Beginners

Indhold



Kilde: Tomasz Bidermann / Dreamstime.com

Tag væk:

Unix og Linux-skaller er meget magtfulde og ekstremt tilpasselige.

Kommandolinjen på Unix- og Linux-systemer er allerede meget kraftfuld, men skaller er et endnu mere kraftfuldt værktøj, end det møder øjet. Du kan tilpasse dem og skifte dem til dit hjerte indhold, så længe du ved hvordan.

Hvad er en skal?

Næsten hver Unix- og Linux-manual har standarddiagrammet over en skal, der ombrydes rundt om operativsystemet, der ligner en slags candy bar. Skallen er virkelig intet andet end en grænseflade mellem operativsystemet, inklusive kernen, filsystemet og de forskellige systemopkald og brugeren. I mange år var det den eneste interaktive brugergrænseflade, før grafiske brugergrænseflader blev almindelige i 1980'erne. Grafiske brugergrænseflader kan også betragtes som en type shell, da de tjener mange af de samme funktioner: lancering af programmer, konfiguration af systemet og styring af filer.

Disse ydmyge-baserede grænseflader har en overraskende mængde kraft. For det første er de fulde programmeringssprog. Før udseendet af endnu mere kraftfulde scripting-sprog som Python, var shell-scripts ideelle til at skrive programmer, der ikke nødvendigvis har brug for kraften fra C. De er stadig nyttige til at automatisere systemopgaver og til hurtig prototype.

De har også en række funktioner, der gør det lettere at arbejde med og finde filer. En af de mest anvendte er "wildcarding" eller "globbing." Næsten alle Unix- og Linux-brugere er bekendt med wild * -kortet, der matcher ethvert tegn. Dette er faktisk skalets job. Forskellige skaller har endnu mere kraftfulde muligheder.

En af Unixs særpræg er evnen til at omdirigere programinput og output. Skallen implementerer denne funktionalitet.

Shellen er bare et andet program, så det er muligt for enhver programmør med de rigtige færdigheder at oprette et. Der har været flere større skaller, der er vokset frem gennem årene.

Historie og en roundup af skaller

Selvom der var flere Unix-skaller i de tidlige dage af operativsystemet, var den første, der fik større anerkendelse uden for Bell Labs, Bourne Shell, opkaldt efter Stephen R. Bourne. Den vigtigste nyskabelse af skaller var, at den understøttede funktioner til struktureret programmering, hvilket gjorde det muligt for første gang at bruge skallen som et rigtigt programmeringssprog. Det er så uundværligt, at alle moderne Unix- og Linux-versioner stadig bruger den, skønt det som regel er en af ​​de nyere skaller, der emulerer Bourne-skallen.

Den næste større skal var C Shell, der ofte forkortes som "csh." Denne skal blev udviklet ved UC Berkeley og blev en vigtig komponent i BSD-smagen af ​​Unix. Som navnet antyder er dens syntaks designet til at ligne C-programmeringssprog, men det var virkelig designet til interaktiv brug.

Det inkluderede en historikmekanisme, der gjorde det muligt for brugere at gå tilbage og gentage alle kommandoer, de udstedte tidligere, uden at skulle indtaste en hel linje og forbedret jobkontrol, hvilket gjorde det at køre flere opgaver lettere. (Husk, dette var en tid, hvor de fleste stadig brugte terminaler.)

Den næste større skal var Korn Shell, der også kom ud af Bell Labs. Skallen blev forresten opkaldt efter David Korn, ikke bandet. Korn-skalens vigtigste innovation er introduktionen af ​​kommandolinjebearbejdning, der udvider historikfunktionaliteten yderligere. Brugere kan gå tilbage og redigere de kommandoer, de har skrevet, vha. Kommandoer, der ligner enten vi- eller Emacs-redigeringsprogrammet.

Af de store skaller er Bourne Again Shell eller bash den mest populære siden dens introduktion i slutningen af ​​80'erne. Denne skal, der er udviklet som en del af GNU-projektet, inkorporerer nyskabelserne i C- og Korn-skaller, mens den opretholder kompatibilitet med Bourne-skallen, og dermed navnet. Det er den "standard" shell på de fleste Linux-distributioner.

Z Shell (zsh), der først blev frigivet i 1990, er en drøm om en kommandolinjebruger. Ikke kun har det de fleste af de andre store funktioner, som de andre skaller har, det er sindssygt tilpasses med masser af kraftige funktioner. En af de mest kraftfulde er rekursiv klodning, der giver brugerne mulighed for at matche filnavne i undermapper, når de udsteder kommandoer i stedet for filer i den aktuelle arbejdsmappe. Virkelig avancerede brugere kan også tilpasse kompletteringsindstillingerne, så de matcher filer uden at skulle udtaste dem helt. Og for de fedtfattede maskinskrivere kan det også rette din stavemåde. Denne skal er så avanceret, at dens manuelle side er opdelt i flere meget lange sektioner.

Scripting

Som tidligere nævnt er skaller ikke kun kommandolinjegrænseflader, men kraftfulde programmeringssprog. Det fine med shell-scripting er, at du kan bruge det samme sprog i både regelmæssig interaktiv brug såvel som i scripts, hvilket gør læringskurven meget fladere. Moderne skaller inkluderer alle de sædvanlige programmeringssprogfunktioner, herunder flowkontrol, funktioner og variabler. Et par af dem har endda avancerede datastrukturer som assosiative arrays.

På trods af deres magt har programmering i skaller et par faldgruber. Det største problem er, at det er for let at skrive manuskripter, der afhænger af et program, der muligvis ikke er på et andet system, eller som afhænger af en bestemt smag af Unix eller Linux. Derfor er shell-scripts bedst egnede til programmer, du ved, at de kun skal køres på et system. Hvis du prøver at bygge noget bærbart og ikke ønsker at skrive et C-program, er dit bedste alternativ at skrive på et andet scriptsprog som Perl eller Python.

Et kig under hætten på Unix / Linux kommandolinjen

Der er mere magt, der lurer under overfladen på din Unix / Linux-kommandolinje. Denne artikel inspirerer dig muligvis til at kigge under hætten på dit yndlingsskal for at se, hvad du virkelig kan gøre. Hvis du ønsker at komme ind på shell-scripting, kan du tjekke bøgerne Unix Power Tools og Learning the Bash Shell. Stephen R. Bournes originalpapir på hans shell fungerer også som en god introduktion til verdenen af ​​shell-scripting, selvom det er gammelt.