sv.phhsnews.com


sv.phhsnews.com / Vad är skillnaden mellan Bash, Zsh och andra Linux-skal?

Vad är skillnaden mellan Bash, Zsh och andra Linux-skal?


De flesta Linux-distributioner inkluderar bash-skalet som standard, men du kan också byta till en annan skalmiljö. Zsh är ett särskilt populärt alternativ, och det finns andra skal, som aska, bindestreck, fisk och tcsh. Men vad är skillnaden, och varför är det så många?

Vad gör Shells?

När du loggar in på kommandoraden eller startar ett terminalfönster på Linux startar systemet skalprogrammet. Skal erbjuder ett vanligt sätt att utvidga kommandoradsmiljön. Du kan byta ut standardskalet för en annan, om du vill.

Den första skalmiljöen var Thompson Shell, utvecklad på Bell Labs och släpptes 1971. Shell-miljöer har byggt upp konceptet sedan dess och lägger till en mängd av nya funktioner, funktionalitet och hastighetsförbättringar.

Bash erbjuder till exempel kommando- och filnamn, avancerade skriptfunktioner, en kommandog History, konfigurerbara färger, kommandoaliaser och en mängd andra funktioner som inte var tillgängliga igen 1971 när det första skalet släpptes.

Skalet används också i bakgrunden av olika systemtjänster. Linux-distributioner innehåller många funktioner skrivna som skalskript. Dessa skript är kommandon och andra avancerade skalskriptfunktioner går igenom skalmiljön.

Skal som leder upp till bash: sh, csh, tsh och ksh

RELATERADE: Vad är Unix och varför är det? ?

Den mest framträdande stamgruppen för moderna skal är Bourne-skalet - även känt som "sh" - som namngavs efter sin skapare Stephen Bourne som arbetade på AT & T: s Bell Labs. Frigjord 1979, blev det standardkommandotolkaren i Unix på grund av dess stöd för kommandosubstitution, piping, variabler, tillståndstestning och looping, tillsammans med andra funktioner. Det erbjöd inte mycket anpassning för användarna, och stödde inte sådana moderna nicetier som alias, kommandotillförsel och skalfunktioner (även om den senare till sist tillkom).

C-skalet eller "csh" utvecklades i slutet av 1970-talet av Bill Joy vid University of California, Berkley. Det lade till många interaktiva element som användarna kunde styra sina system, som aliaser (genvägar för långa kommandon), arbetshanteringsförmågor, kommandoradshistorik och mycket mer. Det modellerades av C-programmeringsspråket, som Unix-operativsystemet själv skrevs in. Detta innebar också att Bourne-skalet skulle behöva lära C så att de kunde komma in i kommandon i den. Dessutom hade csh en hel del buggar som skulle hamras ut av användare och skapare likadant under en stor tidsperiod. Människor slutade använda Bourne-skalet för skript eftersom det hanterade icke-interaktiva kommandon bättre, men fastnade med C-skalet för normal användning.

Över tiden fixade många människor buggar i och lagt till funktioner i C-skalet som kulminerade i en förbättrad version av csh känd som "tcsh". Men csh var fortfarande standard i Unix-baserade datorer, och hade lagt till några icke-standardfunktioner. David Korn från Bell Labs arbetade på KornShell, eller "ksh", som försökte förbättra situationen genom att vara bakåtkompatibel med Bourne-skalets språk men lägga till många funktioner från csh-skalet. Det släpptes 1983, men under en licensierad licens. Det var inte fri programvara förrän 2000-talet, när den släpptes under olika open source-licenser.

Födelsen av bash

Den bärbara operativsystemgränssnittet för Unix eller POSIX var ett annat svar på den hektiska proprietära csh implementeringar. Det skapade framgångsrikt en standard för kommandotolkning (bland annat) och så småningom speglade många funktioner i KornShell. Samtidigt försökte GNU-projektet skapa ett gratis, Unix-kompatibelt operativsystem. GNU Project utvecklade ett gratis mjukvara skal vara en del av sitt fria operativsystem och kallade det "Bourne Again Shell" eller "bash".

Bash har förbättrats under årtiondena sedan den första utgåvan 1989, men det är fortfarande standardskalet på de flesta Linux-distributioner idag. Det är också standardskalet på Apples macOS, och det är tillgängligt för installation på Microsofts Windows 10.

Nyare shells: aska, dash, zsh och fish

Medan Linux-gemenskapen har avgjort på Bash under årens lopp har utvecklarna inte slutat skapa nya skal när Bash släpptes för första gången för 28 år sedan.

Kenneth Almquist skapade en Bourne skal klon som kallas Almquish skal, ett Shell, "aska", eller ibland bara "sh". det var också POSIX-kompatibelt och blev standardskalet i BSD, en annan gren av Unix. Askskalet är lättare än bash, vilket gör det populärt i inbyggda Linux-system. Om du har en rotad Android-telefon med BusyBox installerad eller någon annan enhet med BusyBox-paketet med programvara, använder den kod från ash.

Debian utvecklade en skalmiljö baserad på aska och kallade det "dash". Den är utformad för att vara POSIX-kompatibel och lätt, så den är snabbare än Bash, men har inte alla funktioner. Ubuntu använder dash shell som standard skal för icke-interaktiva uppgifter, påskyndar skalskript och andra uppgifter som körs i bakgrunden. Ubuntu använder fortfarande bash för interaktiva skal, men så har användarna fortfarande den perfekta interaktiva miljön.

En av de mest populära nyare skalen är Z-skalet eller "zsh". Skapad av Paul Falstad 1990, är ​​zsh ett Bourne-stilskal som innehåller de funktioner du hittar i bash, plus ännu mer. Zsh har exempelvis stavningskontroll, möjligheten att titta på inloggningar / logouts, vissa inbyggda programmeringsfunktioner som bytecode, stöd för vetenskaplig notation i syntax, möjliggör flytande punkträkning och flera funktioner.

En annan nyare skalet är det vänliga interaktiva skalet eller "fisken", som släpptes 2005. Den har en unik kommandoradssyntax som är utformad för att vara lite lättare att lära, men är inte härledd från antingen Bourne-skalet eller C-skalet. Det är en intressant idé, men det du lär dig genom att använda fisk hjälper inte nödvändigtvis dig att använda bash och andra Bourne-härledda skal.

Vilka ska du välja? (och varför Zsh är populär)

Du behöver inte välja ett skal. Ditt operativsystem väljer ditt standardskal för dig, och det valet är nästan alltid bash. Sätt dig framför en Linux-distribution - eller till och med en Mac - och du kommer nästan alltid att ha en bash-skalmiljö. Bash har en hel del avancerade funktioner, men du brukar inte använda dem om du inte programmerar skalskript.

På inbyggda Linux-system eller BSD-system kommer du att sluta med askskalet. Men aska är ett Bourne-baserat skal och är i stort sett förenligt med bash. Vilken kunskap du har från att använda bash kommer att överföras till att använda ett ask- eller dash-skal, även om vissa avancerade skriptfunktioner inte finns i detta lätta skal.

Nästan varje skal du stöter på är Bourne-baserad och fungerar på liknande sätt, inklusive zsh .

Därför är zsh populär. Detta nyare skal är kompatibelt med bash, men innehåller fler funktioner. Zsh-skalet erbjuder inbyggd stavningskorrektion, förbättrad kommandoradsfyllning, laddningsbara moduler som fungerar som plugin-moduler för ditt skal, globala aliaser som låter dig alias filnamn eller något annat på kommandoraden istället för bara kommandon, och mer tema stöd. Det är som bash, men med många extrafunktioner, ytterligare funktioner och konfigurerbara alternativ som du kan uppskatta om du spenderar mycket tid på kommandoraden.

Om du är bekant med bash kan du växla till zsh utan att lära dig en annan syntax - du får bara extra funktioner. Om du är bekant med zsh kan du växla till bash utan att lära sig en annan syntax. Du kommer inte bara ha tillgång till de här funktionerna.

"Oh My ZSH" är ett verktyg som hjälper dig att lättare aktivera zsh plug- ins och byta mellan premade teman, snabbt anpassa ditt zsh-skal utan att spendera timmar tweaking saker.

Det finns också andra skal. Tcsh-skalet är till exempel kvar och är fortfarande ett alternativ. FreeBSD använder tsch som standard root shell och aska som standard interaktivt skal. Om du använder C-programmeringen regelbundet kan tsch passa dig bättre. Det är dock ingenstans lika vanligt som bash eller zsh.

Så här byter du mellan skal

Det går lätt att byta till ett nytt skal för att prova det. Installera bara skalet från din Linux-distributionens pakethanterare och skriv kommandot för att starta skalet.

Låt oss säga att du vill prova zsh på Ubuntu. Du skulle köra följande kommandon för att installera och sedan starta det:

sudo apt install zsh zsh

Du skulle då sitta i ett zsh-skal. Skriv "avsluta" på skalet för att lämna det och återgå till ditt nuvarande skal.

Detta är bara tillfälligt. När du öppnar ett nytt terminalfönster eller loggar in i ditt system på kommandoraden ser du ditt standardskal. För att ändra skalet du ser när du loggar in som ditt inloggningsskal, kan du generellt använda kommandotchsheller "Change Shell".

För att använda den här kommandot kommer du först måste hitta hela vägen till ditt skal med vilket kommando. Låt oss till exempel säga att vi ville byta till zsh-skalet. Vi skulle köra följande kommando:

vilken zsh

På Ubuntu berättar vi att zsh binären är lagrad på /usr/bin/zsh.

Run följande kommando, skriv in ditt lösenord och du " ll bli ombedd att välja ett nytt inloggningsskal:

chsh

Enligt ovanstående kommando skulle vi ange/ usr / bin / zsh. Zsh-skalet skulle då vara vår standard tills vi körde kommandotchshoch ändrade det tillbaka.


Vad är skillnaden mellan CC och BCC när du skickar en e-post?

Vad är skillnaden mellan CC och BCC när du skickar en e-post?

Fälten CC och BCC när du skickar e-post på samma sätt. CC står för "kol kopi", medan BCC står för "blind kol kopi". Även om dessa villkor kan ha varit omedelbart uppenbara när e-post uppfanns, är de föråldrade idag. CC och BCC är båda sätten att skicka kopior av ett mail till ytterligare personer. Du kan emellertid också skicka kopior av ett e-postmeddelande till ytterligare personer genom att ange flera adresser i fältet Till.

(how-top)

Hur man gör det svårare för människor att hitta ditt Facebook-konto

Hur man gör det svårare för människor att hitta ditt Facebook-konto

Facebook börjar bli nödvändig. Från att logga in på webbplatser för att hålla kontakten med gamla vänner har det bara blivit en del av vardagen. Alla ser på dig roligt om du säger att du inte har ett Facebook-konto. Många människor vill emellertid inte att deras Facebook-konto enkelt ska hittas. Om du är lärare, är det sista du vill att dina elever kryper igenom dina gamla bilder.

(how-top)