da.phhsnews.com


da.phhsnews.com / Hvad er forskellen mellem Bash, Zsh og andre Linux Shells?

Hvad er forskellen mellem Bash, Zsh og andre Linux Shells?


De fleste Linux-distributioner omfatter bash-shell som standard, men du kan også skifte til et andet shell-miljø. Zsh er et særligt populært alternativ, og der er andre skaller, som aske, dash, fisk og tcsh. Men hvad er forskellen, og hvorfor er der så mange?

Hvad skal du gøre?

Når du logger ind på kommandolinjen eller starter et terminalvindue på Linux, starter systemet shellprogrammet. Skaller tilbyder en standard måde at udvide kommandolinjemiljøet. Du kan bytte standardskal til en anden, hvis du vil.

Det første shell-miljø var Thompson Shell, der blev udviklet hos Bell Labs og udgivet i 1971. Shell-miljøer har bygget op på konceptet siden, og tilføjede en række af nye funktioner, funktionalitet og hastighedsforbedringer.

Bash tilbyder f.eks. kommando- og filnavnet, avancerede scriptfunktioner, en kommandobeskrivelse, konfigurerbare farver, kommandoaliaser og en række andre funktioner, der ikke var tilgængelige tilbage i 1971, da den første skal blev frigivet.

Skallen bruges også i baggrunden af ​​forskellige systemtjenester. Linux distributioner omfatter mange funktioner skrevet som shell scripts. Disse scripts er kommandoer og andre avancerede shell scripting funktioner løber gennem shell miljøet.

Skaller, der fører op til Bash: sh, csh, tsh og ksh

RELATERET: Hvad er Unix, og hvorfor betyder det ?

Den mest fremtrædende forfædler af moderne skaller er Bourne-skallen - også kendt som "sh" - som blev opkaldt efter sin skaber Stephen Bourne, der arbejdede hos AT & T's Bell Labs. Udgivet i 1979 blev det standard kommandotolk i Unix på grund af dets støtte til kommandosubstitution, piping, variabler, tilstandstestning og looping sammen med andre funktioner. Det gav ikke meget tilpasning til brugere, og understøttede ikke sådanne moderne nicetier som aliaser, kommandoafslutning og shellfunktioner (selvom sidstnævnte sidst blev tilføjet).

C-shellen eller "csh" blev udviklet i slutningen af ​​1970'erne af Bill Joy ved University of California, Berkley. Det tilføjede en masse interaktive elementer, som brugere kunne styre deres systemer, såsom aliaser (genveje til lange kommandoer), jobstyringsevner, kommandobeskrivelse og meget mere. Det blev modelleret ud fra C-programmeringssproget, som selve Unix-operativsystemet blev skrevet i. Det betød også, at brugere af Bourne-skalen skulle lære C, så de kunne indtaste kommandoer i den. Derudover havde csh et par fejl, der skulle hamre ud af brugere og skabere ens over en stor periode. Folk endte med at bruge Bourne-skalen til scripts, fordi det håndterede ikke-interaktive kommandoer bedre, men fast med C-skalen til normal brug.

Over tid stødte mange mennesker fejl og tilføjede funktioner til C-skalen, der kulminerede i en forbedret version af csh kendt som "tcsh". Men csh var stadig standard i Unix-baserede computere og havde tilføjet nogle ikke-standardfunktioner. David Korn fra Bell Labs arbejdede på KornShell, eller "ksh", som forsøgte at forbedre situationen ved at være baglæns kompatibel med Bourne-skalens sprog, men tilføjede mange funktioner fra csh-skalen. Den blev udgivet i 1983, men under en proprietær licens. Det var ikke fri software indtil 2000'erne, da den blev frigivet under forskellige open source-licenser.

Fødslen af ​​bash

Den bærbare operativsystemgrænseflade til Unix eller POSIX var et andet svar på den hektiske proprietære csh implementeringer. Det har med succes skabt en standard for kommandostolkning (blandt andet) og til sidst afspejlede mange af funktionerne i KornShell. Samtidig forsøgte GNU-projektet at oprette et gratis, Unix-kompatibelt operativsystem. GNU Project udviklede en gratis software shell til at være en del af det frie operativsystem og kaldte det "Bourne Again Shell" eller "bash".

Bash er blevet forbedret i årtier siden sin første udgivelse i 1989, men det er stadig standardskallen på de fleste Linux-distributioner i dag. Det er også standardskallen på Apples MacOS, og den er tilgængelig til installation på Microsofts Windows 10.

Nyere skaller: aske, dash, zsh og fisk

Mens Linux-fællesskabet har afgjort på Bash i årene siden, ophørte udviklere ikke med at oprette nye skaller, da Bash blev udgivet for første halv år siden.

Kenneth Almquist oprettet en Bourne shell klon kendt som Almquish shell, A Shell, "aske", eller nogle gange bare "sh". det var også POSIX-kompatibelt og blev standardskallen i BSD, en anden gren af ​​Unix. Askeskallen er mere let end bash, hvilket gør den populær i indlejrede Linux-systemer. Hvis du har en rodfæstet Android-telefon med BusyBox installeret eller en anden enhed med BusyBox-pakken med software, bruger den kode fra as.

Debian udviklede et shell-miljø baseret på aske og kaldte det "dash". Den er designet til at være POSIX-kompatibel og letvægts, så den er hurtigere end Bash, men vil ikke have alle dens funktioner. Ubuntu bruger dash shell som standard shell til ikke-interaktive opgaver, fremskynde shell scripts og andre opgaver, der kører i baggrunden. Ubuntu bruger stadig bash til interaktive skaller, så brugerne har stadig det komplette interaktive miljø.

Et af de mest populære nyere skaller er Z-shell eller "zsh". Oprettet af Paul Falstad i 1990, er zsh en Bourne-stil shell, der indeholder de funktioner, du finder i bash, plus endnu mere. For eksempel har zsh stavekontrol, evnen til at se på logins / logouts, nogle indbyggede programmeringsfunktioner som bytecode, understøttelse af videnskabelig notation i syntax, giver mulighed for flydende aritmetik og flere funktioner.

En anden nyere shell er Friendly Interactive Shell, eller "fish", udgivet i 2005. Den har en unik kommandolinje syntaks, der er designet til at være lidt lettere at lære, men er ikke afledt af enten Bourne shell eller C shell. Det er en interessant ide, men hvad du lærer ved at bruge fisk, hjælper ikke nødvendigvis dig med at bruge bash og andre Bourne-afledte skaller.

Hvilken bør du vælge? (og hvorfor Zsh er populær)

Du behøver ikke at vælge en skal. Dit operativsystem vælger din standard shell til dig, og det valg er næsten altid bash. Sæt dig foran en Linux-distribution - eller endda en Mac - og du vil næsten altid have et bash shell miljø. Bash har et par avancerede funktioner, men du vil nok ikke bruge dem, medmindre du programmerer shell-scripts.

På embedded Linux-systemer eller BSD-systemer vil du ende med askeskallen. Men aske er en Bourne-baseret skal og er stort set kompatibel med bash. Enhver viden, du har fra at bruge bash, overføres til at bruge en aske- eller dash shell, selv om nogle avancerede scripting-funktioner ikke er tilgængelige i denne letvægts shell.

Næsten hver skal du møder, er Bourne-baseret og fungerer på samme måde, herunder zsh .

Derfor er zsh populært. Denne nyere shell er kompatibel med bash, men indeholder flere funktioner. Zsh-shell'en indeholder indbygget stavningskorrektion, forbedret kommandolinjeafslutning, indlæste moduler, der fungerer som plugin-moduler til din shell, globale aliaser, der giver dig mulighed for at alias filnavne eller noget andet på kommandolinjen i stedet for bare kommandoer og mere tema støtte. Det er ligesom bash, men med mange ekstrafunktioner, ekstra funktioner og konfigurerbare indstillinger, som du måske vil sætte pris på, hvis du bruger meget tid på kommandolinjen.

Hvis du er bekendt med bash, kan du skifte til zsh uden at lære en anden syntaks - du får bare ekstra funktioner. hvis du er bekendt med zsh, kan du skifte til bash uden at lære en anden syntaks - du vil bare ikke få adgang til disse funktioner.

"Oh My ZSH" er et værktøj, der hjælper dig lettere at aktivere zsh plug- ins og skifte mellem premade temaer, hurtigt tilpasse din zsh shell uden at bruge timer tweaking ting.

Der er også andre skaller. For eksempel er tcsh-skalen stadig rundt og stadig en mulighed. FreeBSD bruger tsch som standard root shell og aske som standard interaktive skal. Hvis du bruger C-programmeringen regelmæssigt, kan tsch være bedre egnet til dig. Det er dog ikke langt som almindeligt anvendt som bash eller zsh.

Sådan skifter du mellem skaller

Det er let at skifte til en ny skal for at prøve det. Installer kun skalen fra din Linux-distributionens pakkehåndtering og skriv kommandoen for at starte shell'en.

Lad os sige, at du vil prøve Zsh på Ubuntu. Du vil køre følgende kommandoer for at installere og derefter starte det:

sudo apt install zsh zsh

Du vil så sidde ved en zsh-shell. Skriv "exit" på skallen for at forlade det og vende tilbage til din nuværende shell.

Dette er bare midlertidigt. Når du åbner et nyt terminalvindue eller logger ind på dit system på kommandolinjen, vil du se din standardskal. Hvis du vil ændre skallen, ser du, når du logger ind, kendt som din login-shell. Du kan generelt bruge kommandoenchsheller "Change Shell".

For at bruge denne kommando bliver du først skal finde den fulde vej til din shell med hvilken kommando. Lad os f.eks. Sige, at vi ønskede at skifte til zsh-shell. Vi vil køre følgende kommando:

hvilken zsh

På Ubuntu, fortæller dette os, at zsh binæret er gemt på /usr/bin/zsh.

Run følgende kommando, indtast dit kodeord, og du ' Jeg bliver bedt om at vælge en ny login shell:

chsh

I henhold til ovenstående kommando vil vi indtaste/ usr / bin / zsh. Zsh-skalen ville da være vores standard, indtil vi kørte kommandoenchshog ændrede den igen.


Så du fik bare en Chromecast. Nu hvad?

Så du fik bare en Chromecast. Nu hvad?

Så du scorede bare en Chromecast. Det er fantastisk! Men du kan gøre meget mere end bare at se Netflix eller YouTube på den dårlige dreng - der er faktisk en masse kølige ting under sin lille hætte. Konfigurer din nye Chromecast RELATED: Sådan opsættes du Ny Chromecast Du har trukket den lille kreds af streaming godhed ud af sin pakke .

(how-top)

Sådan laver du din pc slukket om natten (men kun når du ikke bruger det)

Sådan laver du din pc slukket om natten (men kun når du ikke bruger det)

Det er godt at slukke for din pc, når du ikke bruger det, men gør det Glemmer du nogensinde og lader det gå? Sådan konfigurerer du Windows til automatisk at slukke om natten, men kun hvis du ikke bruger pc'en på det tidspunkt. Vi anbefaler virkelig at sætte din pc i seng i stedet for at lukke den som en normal handling.

(how-top)