Nyligen meddelade Apple att de från och med nästa version av macOS, Catalina, kommer att införa zsh som standardskal i stället för bash. Som blivande datavetenskapsstudent, som har lärt sig all min kommandorad i bash, undrade jag hur detta skulle påverka mig. Hade det jag lärt mig i bash blivit oanvändbart? Låt oss ta en titt på de två och ta reda på det.
The ”Bourne-again shell” eller kort sagt bash skapades 1989 av Brian Fox. Det är ett Unix skal och kommandospråk skrivet som en ersättning för Bourne shell. Det har fått stor spridning som standardinloggningsskal för de flesta Linuxdistributioner och Apples macOS. Bash införde förbättringar jämfört med Bourne shell, inklusive dess förmåga att användas som ett skriptspråk. Användarna kunde skriva egna skalskript för att automatisera uppgifter.
”Z shell” eller zsh förkortat, skapades 1990 av Paul Falstad. Det är också ett Unix-skal och kommandospråk som bygger på Bourne shell med ett stort antal förbättringar, inklusive vissa funktioner från bash. Zsh hade också möjlighet att användas som ett skriptspråk med möjlighet att använda skalskript. Det har för närvarande en mycket stark gemenskap som följer och stöder det.
Bash vs. zsh:
För det mesta är bash och zsh nästan identiska vilket är en lättnad. Navigeringen är densamma mellan de två. De kommandon du lärt dig för bash kommer också att fungera i zsh även om de kan fungera annorlunda på utdata. Zsh verkar vara mycket mer anpassningsbart än bash. Jag ska nu gå igenom några funktioner och hur de skiljer sig åt i respektive.
Autokomplettering
En hjälpsam funktion i båda shells är funktionerna för automatisk komplettering av fliken. I båda skalen kan du skriva kommandot och sedan trycka på tab för att visa tillgängliga alternativ efter kommandot. Zshs tabkomplettering är mer funktionsrik och ger dig en lista med alternativ som du sedan kan navigera och välja med hjälp av piltangenterna i stället för att behöva kämpa med stor- och små bokstäver eller krångla med långa listor med mappar med mellanslag. Zsh har till och med tabkomplettering för Git!
Autokorrigering
Om du skriver fort och oavbrutet, i zsh om du gör ett stavfel när du skriver ett kommando till exempel, så är stavningskorrigering inbyggd, den kommer att automatiskt upptäcka stavfelet, och frågar om du vill rätta det.
Plug-in-stöd
Zsh har ett online-community kallat Oh My Zsh som är ett av de äldsta och mest populära alternativen för att hantera zsh. Det erbjuder över 250 insticksprogram och 140 olika teman som tillhandahålls av gemenskapen. Detta gör det möjligt för användarna att arbeta i en miljö som är särskilt anpassad till deras arbetsflöde. Nedan finns en förhandsvisning av git-plugin.
Bash har en stor uppsättning programmeringsfunktioner, t.ex. sling- och villkorskonstruktioner, tilde- och parentesutvidgningar samt användandet av aliaser. Bash är också ett äldre och etablerat skal vilket innebär att det också har massor av online-resurser för att hitta det du behöver göra. Många av funktionerna i zsh kan replikeras i bash genom olika metoder.
Ta Zsh for a Spin!
Vill du prova zsh innan macOS catalina släpps? Om du använder macOS har du med största sannolikhet redan zsh på din dator. Du kan kontrollera detta genom att köra kommandot: which zsh
Om zsh finns på ditt system kommer sökvägen för installationen att returneras. För att växla till zsh kör du kommandot: chsh -s /bin/zsh och du kommer att uppmanas att ange ditt lösenord.
Om du vill börja använda zsh startar du om terminalen.
Om du vill växla tillbaka till bash kör du kommandot: which bash , vilket kommer att ge dig platsen för din bash-installation. Kör sedan: chsh -s /bin/bash
Starta om terminalen igen så är du tillbaka på bekant territorium.
Så vilket är bäst?
Sammanfattningsvis kommer du att få jobbet gjort med båda skalen. Det nuvarande problemet med versionen av bash på macOS är att det är en föråldrad version 3.2. Den nuvarande versionen är 5.0. Detta spekuleras bero främst på licensproblem hos apple. Övergången till ett uppdaterat skal kommer att vara en välkommen förändring.
Det verkar mest vara preferenser när det gäller att välja det ena framför det andra. Många av de bekvämligheter som zsh erbjuder kan fås att fungera även i bash. Enligt min åsikt verkar zsh vara till större hjälp för mig som nyare skalanvändare. Your milage may vary.
För mer information om Oh-My-Zsh ett utmärkt gemenskapsdrivet ramverk för att hantera din zsh-konfiguration, besök här: https://github.com/robbyrussell/oh-my-zsh