Ostatnio Apple ogłosiło, że od następnej wersji macOS, Catalina, będą przyjmować zsh jako domyślną powłokę w miejsce basha. Jako początkujący student nauk o danych, który nauczył się wszystkich moich linii poleceń na bashu, zastanawiałem się, jak to na mnie wpłynie. Czy to czego nauczyłem się w bashu stało się po prostu bezużyteczne? Przyjrzyjmy się tym dwóm i dowiedzmy się.
„Powłoka Bourne-again” lub w skrócie bash została stworzona w 1989 roku przez Briana Foxa. Jest to powłoka uniksowa i język poleceń napisany jako zamiennik dla powłoki Bourne’a. Była szeroko rozpowszechniana jako domyślna powłoka logowania dla większości dystrybucji Linuksa i systemu macOS firmy Apple. Bash wprowadził ulepszenia w stosunku do powłoki Bourne’a, w tym możliwość używania go jako języka skryptowego. Użytkownicy mogli pisać własne skrypty powłoki do automatyzacji zadań.
„Z shell” lub w skrócie zsh, został stworzony w 1990 roku przez Paula Falstada. Jest to również powłoka uniksowa i język poleceń oparty na powłoce Bourne’a z dużą liczbą ulepszeń, włączając w to niektóre cechy basha. Zsh miał również możliwość bycia używanym jako język skryptowy z możliwością używania skryptów powłoki. Obecnie ma bardzo silne poparcie społeczności.
Bash vs. zsh:
Przez większość czasu bash i zsh są prawie identyczne, co jest ulgą. Nawigacja jest taka sama między nimi. Polecenia, których nauczyłeś się w bashu, będą również działać w zsh, chociaż mogą działać inaczej na wyjściu. Zsh wydaje się być znacznie bardziej konfigurowalny niż bash. Przejdę teraz przez kilka funkcji i jak się różnią w każdej z nich.
Auto-uzupełnianie
Jedną z pomocnych funkcji obu powłok jest funkcja auto-uzupełniania zakładek. W obu powłokach można wpisać polecenie, po którym następuje naciśnięcie tabulatora, by wyświetlić dostępne opcje po poleceniu. Uzupełnianie tabulatorów w Zsh jest bardziej bogate w funkcje, dając ci listę opcji, które mogą być następnie nawigowane i wybierane za pomocą klawiszy strzałek, zamiast zmagać się z przypadkami lub bałaganem z długą listą folderów ze spacjami. Zsh ma nawet uzupełnianie tabulatorów dla Git!
Autokorekta
Jeśli piszesz szybko i luźno, w zsh jeśli zrobisz literówkę podczas pisania polecenia, na przykład, korekta pisowni jest wbudowana, automatycznie wykryje literówkę i zapyta czy chcesz ją poprawić.
Wsparcie dla wtyczek
Zsh posiada społeczność online o nazwie Oh My Zsh, która jest jedną z najstarszych i najbardziej popularnych opcji zarządzania zsh. Oferuje ponad 250 wtyczek i 140 różnych motywów dostarczonych przez społeczność. Pozwala to użytkownikom na pracę w środowisku skonfigurowanym specjalnie do ich przepływu pracy. Poniżej znajduje się podgląd wtyczki git.
Jeśli zsh jest obecny w twoim systemie, zostanie zwrócona ścieżka do instalacji. Aby przełączyć się na zsh, wykonaj polecenie: chsh -s /bin/zsh i zostaniesz poproszony o podanie hasła.
Aby zacząć używać zsh, zrestartuj terminal.
Jeśli chcesz przełączyć się z powrotem na bash, wykonaj polecenie: which bash , które poda ci lokalizację twojej instalacji bash. Następnie wykonaj: chsh -s /bin/bash
Restartuj terminal, a wrócisz na znajome terytorium.
Więc która jest lepsza?
W sumie, uruchomienie którejkolwiek z powłok załatwi sprawę. Obecny problem z wersją bash na macOS polega na tym, że jest to przestarzała wersja 3.2. Obecna wersja to 5.0. Spekuluje się, że jest to spowodowane głównie problemami licencyjnymi w Apple. Przejście do zaktualizowanej powłoki będzie mile widzianą zmianą.
Wydaje się, że jest to głównie preferencja, jeśli chodzi o wybór jednego nad drugim. Wiele z udogodnień dostarczanych przez zsh może funkcjonować również w bash. Moim zdaniem, zsh wydaje się bardziej pomocny dla mnie, jako nowszego użytkownika powłoki. Twój przebieg może się różnić.
Aby uzyskać więcej informacji na temat Oh-My-Zsh, doskonałego, kierowanego przez społeczność frameworka do zarządzania konfiguracją zsh, odwiedź tutaj: https://github.com/robbyrussell/oh-my-zsh