Co to jest zsh?
Autor: Redakcja Domeny.ForSale Opublikowano
W skrócie: Zsh, czyli Z shell, to powłoka systemowa — program, który interpretuje wpisywane polecenia i uruchamia wskazane zadania. Ułatwia pracę w terminalu dzięki rozbudowanemu uzupełnianiu komend, historii i możliwościom konfiguracji. Przydaje się przede wszystkim do interaktywnej pracy z systemem; nie trzeba go jednak znać, aby zacząć korzystać z terminala.
Zsh a terminal — czym się różnią?
Terminal to aplikacja zapewniająca miejsce do wpisywania poleceń i wyświetlania wyników. Powłoka działa wewnątrz tej aplikacji: odczytuje komendy, rozpoznaje ich składnię i zleca wykonanie operacji. W jednym terminalu możesz uruchomić różne powłoki, na przykład zsh lub Bash.
Gdy wpisujesz cd Dokumenty, zsh wykonuje własne polecenie zmiany katalogu. Gdy wpisujesz git status, uruchamia zewnętrzny program Git, o ile jest zainstalowany i dostępny w ścieżce wyszukiwania programów. To rozróżnienie jest istotne: instalacja zsh nie instaluje automatycznie narzędzi, których nazw używasz w poleceniach.
Zsh jest dostępny między innymi w systemach Linux i macOS. W macOS od wersji Catalina jest domyślną powłoką dla nowych kont użytkowników, choć konkretne konto może korzystać z innego ustawienia. W Windows można używać go na przykład w WSL, czyli środowisku pozwalającym uruchamiać narzędzia Linuksa.
Co zsh daje podczas codziennej pracy?
Największą korzyścią zsh jest ograniczenie ręcznego wpisywania powtarzalnych fragmentów poleceń. Wygoda zależy jednak od konfiguracji: świeża instalacja nie musi wyglądać ani zachowywać się tak jak terminal pokazywany w poradniku.
Do przydatnych możliwości należą:
- Uzupełnianie klawiszem Tab: może podpowiadać nazwy poleceń, ścieżki, opcje i argumenty. Zakres podpowiedzi zależy od dostępnych definicji uzupełniania.
- Historia poleceń: pozwala wracać do wcześniejszych komend. Zapisywanie historii między sesjami i jej współdzielenie wymagają odpowiednich ustawień.
- Dopasowywanie nazw plików: wzorce pozwalają wskazywać grupy plików bez wyliczania każdej nazwy osobno.
- Konfigurowalny znak zachęty: tekst przed kursorem może pokazywać katalog, stan ostatniego polecenia albo informacje o repozytorium Git.
Przykładowo, jeśli pracujesz w katalogu zawierającym folder projekt-sklepu, możesz wpisać cd proj i nacisnąć Tab. Powłoka spróbuje uzupełnić nazwę; gdy pasuje kilka katalogów, może pokazać dostępne możliwości. Podobne funkcje oferują też inne powłoki — przewagą zsh dla części użytkowników jest zakres konfiguracji i dostępnych rozszerzeń, a nie sama obecność uzupełniania.
Zsh czy Bash — co wybrać?
Bash to inna popularna powłoka, często spotykana w Linuksie i skryptach administracyjnych. Zsh i Bash obsługują wiele podobnych poleceń, ale nie są w pełni zgodne składniowo. Różnice dotyczą między innymi tablic, rozwijania zmiennych i dopasowywania nazw plików.
Praktyczny przykład: przy domyślnych ustawieniach zsh polecenie ls *.txt zgłosi błąd dopasowania, jeśli w katalogu nie ma plików z rozszerzeniem .txt. Bash domyślnie przekaże wtedy dosłowny argument *.txt do programu ls, który zgłosi brak takiego pliku. Pozornie identyczna komenda może więc zatrzymać się na innym etapie.
Do codziennej pracy wybierz powłokę, w której łatwiej ci wykonywać zadania. Do skryptów dobieraj interpreter świadomie. Skrypt zaczynający się od #!/bin/bash wskazuje Bash jako interpreter przy bezpośrednim uruchomieniu. Korzystanie z zsh w terminalu nie oznacza, że trzeba przepisywać taki skrypt; uruchomienie go poleceniem zsh skrypt.sh może natomiast spowodować błędy zgodności.
Jak sprawdzić i uruchomić zsh?
Najpierw sprawdź, czy program jest dostępny:
zsh --version
Jeżeli otrzymasz numer wersji, możesz uruchomić zsh na próbę, wpisując zsh. Polecenie exit zakończy tę sesję i przywróci poprzednią powłokę. Nie zmienia to domyślnych ustawień konta.
Jeśli system nie znajduje programu, w Linuksie zainstaluj go przez menedżer pakietów swojej dystrybucji. Przykładowo w Debianie i Ubuntu służy do tego sudo apt install zsh. Komenda wymaga uprawnień administracyjnych; w innej dystrybucji sprawdź właściwą procedurę w jej oficjalnej dokumentacji.
Często polecane echo $SHELL pokazuje zwykle ustawioną powłokę logowania, a niekoniecznie tę działającą w bieżącej sesji. Po uruchomieniu zsh możesz sprawdzić echo $ZSH_VERSION — w zsh ta zmienna zawiera numer jego wersji.
Domyślną powłokę konta można zwykle zmienić narzędziem chsh. Zanim to zrobisz, potwierdź ścieżkę programu oraz zasady swojego systemu: powłoka może wymagać wpisu na liście /etc/shells, a konta firmowe mogą mieć ograniczenia administracyjne.
Konfiguracja zsh i rola Oh My Zsh
Podstawowym plikiem konfiguracji interaktywnych sesji jest zwykle ~/.zshrc, gdzie ~ oznacza katalog domowy użytkownika. Możesz umieścić w nim aliasy, czyli skróty poleceń, oraz ustawienia uzupełniania. Prosty początek wygląda tak:
alias ll='ls -lh'
autoload -Uz compinit
compinit
Alias umożliwia wpisanie ll zamiast ls -lh, a kolejne linie inicjalizują system uzupełniania. Przed edycją istniejącego pliku zrób jego kopię i sprawdź, czy podobne ustawienia już się w nim znajdują. Zmiany najłatwiej przetestować w nowej sesji zsh.
Oh My Zsh to opcjonalny zestaw konfiguracji, motywów i wtyczek, a nie sama powłoka. Kolorowe podpowiedzi podczas pisania czy podświetlanie składni często pochodzą z dodatkowych rozszerzeń. Nie są automatycznie dostępne po zainstalowaniu zsh.
Na początek uruchom zsh bez zmiany domyślnej powłoki i wykonaj kilka swoich zwykłych zadań. Dodawaj rozszerzenia dopiero wtedy, gdy potrafisz wskazać, jaką konkretną czynność mają ułatwić; przed uruchomieniem instalatora sprawdź jego źródło i zakres zmian.
Zobacz też: Co to jest AGI?
