For nylig meddelte Apple, at de fra og med den næste version af macOS, Catalina, vil indføre zsh som deres standardskal i stedet for bash. Som en spirende datalogistuderende, der har lært al min kommandolinje på bash, undrede jeg mig over, hvordan dette ville påvirke mig. Var det, jeg havde lært i bash, bare blevet ubrugeligt?? Lad os tage et kig på de to og finde ud af det.
Den “Bourne-again shell” eller bash forkortet bash blev skabt i 1989 af Brian Fox. Det er en Unix-shell og et kommandosprog, der er skrevet som en erstatning for Bourne-shell’en. Den er blevet distribueret bredt som standard login shell for de fleste Linux-distributioner og Apples macOS. Bash indførte forbedringer i forhold til Bourne shell, herunder dens evne til at blive brugt som et scriptingsprog. Brugerne kunne skrive deres egne shell-scripts til automatisering af opgaver.
“Z shell” eller zsh forkortet, blev skabt i 1990 af Paul Falstad. Det er også en Unix shell og et kommandosprog baseret på Bourne shell med en lang række forbedringer, herunder nogle funktioner fra bash. Zsh havde også mulighed for at blive brugt som et scriptingsprog med mulighed for at bruge shell-scripts. Det har i øjeblikket meget stor tilslutning og støtte fra fællesskabet.
Bash vs. zsh:
For det meste er bash og zsh næsten identiske, hvilket er en lettelse. Navigationen er den samme mellem de to. De kommandoer, du har lært til bash, vil også fungere i zsh, selv om de kan fungere anderledes på output. Zsh ser ud til at være meget mere tilpasningsdygtig end bash. Jeg vil nu gennemgå et par funktioner og hvordan de adskiller sig fra hinanden.
Auto-komplettering
En nyttig funktion i begge shells er fanebladets autokompletteringsfunktioner. I begge skaller kan du skrive kommandoen efterfulgt af at trykke på tabulator for at få vist de tilgængelige muligheder efter kommandoen. Zsh’s tab-komplettering er mere funktionsrig og giver dig en liste med muligheder, som du derefter kan navigere og vælge med piletasterne i stedet for at skulle kæmpe med store og små bogstaver eller rode med en lang liste af mapper med mellemrum. Zsh har endda tab-opfyldelse til Git!
Auto-korrektion
Hvis du skriver hurtigt og løst, i zsh, hvis du laver en slåfejl, mens du f.eks. skriver en kommando, er stavekorrektion indbygget, vil automatisk opdage slåfejlen og spørge, om du ønsker at rette den.
Plug-in support
Zsh har et online-fællesskab kaldet Oh My Zsh, som er en af de ældste og mest populære muligheder for at administrere zsh. Det tilbyder over 250 plugins og 140 forskellige temaer leveret af fællesskabet. Dette giver brugerne mulighed for at arbejde i et miljø, der er sat op specifikt til deres arbejdsgang. Nedenfor er et eksempel på git-plugin’et.
Bash har et stort sæt programmeringsfunktioner såsom looping og betingede konstruktioner, tilde- og parentesudvidelser og brug af aliaser. Bash er også en ældre og etableret shell, hvilket betyder, at den også har tonsvis af online ressourcer til at finde det, du har brug for at gøre. Mange af funktionerne i zsh kan kopieres i bash via forskellige metoder.
Tag Zsh til en tur!
Vil du prøve zsh før udgivelsen af macOS catalina? Hvis du er på macOS, har du højst sandsynligt allerede zsh på din computer. Du kan tjekke det ved at køre kommandoen: which zsh
Hvis zsh er til stede på dit system det, vil stien til installationen blive returneret. Derfra for at skifte til zsh skal du køre kommandoen: chsh -s /bin/zsh, og du vil blive bedt om din adgangskode.
For at begynde at bruge zsh genstartes din terminal.
Hvis du ønsker at skifte tilbage til bash, skal du køre kommandoen: which bash , som vil give dig placeringen af din bash-installation. Kør derefter: chsh -s /bin/bash
Start din terminal igen, og du vil være tilbage på kendt territorium.
Så hvilken er bedst?
Alt i alt vil det at køre en af de to skaller få arbejdet gjort. Det aktuelle problem med den version af bash på macOS er, at det er en forældet version 3.2. Den nuværende version er 5.0. Dette spekuleres at være mest på grund af licensproblemer hos apple. Skiftet til en opdateret shell vil være en velkommen ændring.
Det ser ud til at være mest præference, når det kommer til at vælge den ene frem for den anden. Mange af de bekvemmeligheder, som zsh giver, kan også bringes til at fungere i bash. Efter min mening virker zsh mere hjælpsomt for mig som nyere shell-bruger. Your milage may vary.
For mere info om Oh-My-Zsh en fremragende fællesskabsdrevet ramme til styring af din zsh-konfiguration, besøg her: https://github.com/robbyrussell/oh-my-zsh