Nedávno společnost Apple oznámila, že od příští verze systému macOS, Catalina, bude jako výchozí shell místo bashe používat zsh. Jako začínajícího studenta datových věd, který se všechny příkazové řádky naučil v bashi, mě zajímalo, jak se mě to dotkne. Stalo se to, co jsem se naučil v bashi, zbytečným?? Pojďme se na ně podívat a zjistit to.
„Bourne-again shell“ neboli zkráceně bash vytvořil v roce 1989 Brian Fox. Jedná se o unixový shell a příkazový jazyk napsaný jako náhrada za shell Bourne. Byl široce rozšířen jako výchozí přihlašovací shell pro většinu distribucí Linuxu a MacOS společnosti Apple. Bash přinesl oproti Bourne shellu vylepšení, včetně možnosti používat jej jako skriptovací jazyk. Uživatelé mohli psát vlastní shellové skripty pro automatizaci úloh.
„Z shell“ neboli zkráceně zsh vytvořil v roce 1990 Paul Falstad. Jedná se rovněž o unixový shell a příkazový jazyk založený na Bourne shellu s velkým množstvím vylepšení, včetně některých vlastností bashe. Zsh měl také možnost být používán jako skriptovací jazyk s možností používat shellové skripty. V současné době má velmi silnou komunitní podporu a následovníky.
Bash vs. zsh:
Většinou jsou bash a zsh téměř totožné, což je úleva. Navigace je u obou stejná. Příkazy, které jste se naučili pro bash, budou fungovat i v zsh, i když na výstupu mohou fungovat jinak. Zsh se zdá být mnohem přizpůsobitelnější než bash. Nyní projdu několik funkcí a jejich rozdíly v každém z nich.
Auto-completion
Jednou z užitečných funkcí obou shellů jsou funkce automatického dokončování tabulek. V obou shellech můžete zadat příkaz, po kterém následuje stisknutí tabulátoru, a zobrazí se dostupné možnosti za příkazem. Funkce tabulátoru v příkazu Zsh je bohatší na funkce a poskytuje seznam možností, které lze následně procházet a vybírat pomocí kláves se šipkami, místo abyste museli bojovat s velkými a malými písmeny nebo se trápit s dlouhým seznamem složek s mezerami. Zsh má dokonce tabulátorové doplňování pro Git!!!
Automatická oprava
Chcete-li začít používat zsh, restartujte terminál.
Chcete-li se přepnout zpět na bash, spusťte příkaz: which bash , který vám poskytne umístění vaší instalace bashe. Poté spusťte příkaz: chsh -s /bin/bash
Restartujte terminál a vrátíte se na známé území.
Tak co je lepší?
Vcelku vzato, spuštění kteréhokoli z obou shellů bude stačit. Současný problém s verzí bashe v systému MacOS spočívá v tom, že se jedná o zastaralou verzi 3.2. V tomto případě se jedná o zastaralou verzi bashe. Aktuální verze je 5.0. Spekuluje se, že je to způsobeno především licenčními problémy společnosti Apple. Přechod na aktualizovaný shell bude vítanou změnou.
Zdá se, že jde hlavně o preference, pokud jde o výběr jednoho z nich. Mnoho vymožeností, které poskytuje zsh, lze zprovoznit i v bashi. Podle mého názoru se mi jako novějšímu uživateli shellu zdá zsh užitečnější. Váš názor se může lišit.
Další informace o Oh-My-Zsh, vynikajícím komunitním frameworku pro správu konfigurace zsh, najdete zde: https://github.com/robbyrussell/oh-my-zsh