Fish (friendly interactive shell) to interaktywna powłoka nastawiona na wygodę, czytelność i nowoczesne funkcje, których w bash często szuka się w dodatkowych narzędziach.
- Fish shell – jak przejść z bash i skonfigurować nową powłokę
- Instalacja fish shell
- Pierwsze uruchomienie fish
- Jak ustawić fish jako domyślną powłokę
- Podstawowa konfiguracja fish
- Najważniejsze różnice między bash a fish
- Przydatne funkcje fish, które warto poznać od razu
- Jak wrócić z fish do bash
- Dobre praktyki przy migracji z bash do fish
- Dla kogo fish będzie najlepszy?
- Przykładowa krótka instrukcja „od zera”
Fish jest jednocześnie powłoką i językiem skryptowym, a oficjalna dokumentacja zaleca uruchamianie go poleceniem fish oraz kończenie sesji poleceniem exit.
Fish shell – jak przejść z bash i skonfigurować nową powłokę
Jeśli na co dzień korzystasz z bash, a chcesz spróbować czegoś bardziej nowoczesnego i przyjaznego, fish shell może być świetnym wyborem.
W odróżnieniu od klasycznego basha fish stawia na wygodę użytkownika: oferuje podpowiedzi w czasie rzeczywistym, sensowne ustawienia domyślne, prostą konfigurację i bardziej „interaktywny” sposób pracy.
W praktyce najlepiej podejść do zmiany stopniowo: najpierw zainstaluj fish, przetestuj go w bieżącej sesji, a dopiero potem ustaw jako domyślną powłokę. Dzięki temu bezpiecznie sprawdzisz składnię, zachowanie i autouzupełnianie.
Co wyróżnia fish na tle basha?
Poniżej znajdziesz skrót najważniejszych atutów fish w codziennej pracy:
- podpowiedzi i autouzupełnianie – sugestie w czasie rzeczywistym na podstawie historii i kontekstu poleceń;
- sensowne domyślne ustawienia – użyteczne funkcje działają „od razu”, bez instalowania pluginów;
- konfigurator w przeglądarce – wygodne GUI uruchamiane komendą
fish_configdo zmiany motywu i prompta; - nacisk na pracę interaktywną – fish błyszczy w codziennym użyciu terminala, a nie wyłącznie w skryptach.
Nie oznacza to, że bash jest przestarzały — nadal pozostaje standardem w wielu środowiskach. Fish to po prostu wygodna alternatywa dla osób, które chcą szybszej i przyjemniejszej pracy w terminalu.
Instalacja fish shell
Sposób instalacji zależy od systemu operacyjnego i menedżera pakietów. Najpopularniejsze metody to apt na Ubuntu/Debian oraz Homebrew na macOS:
Ubuntu/Debian
Na systemach Debian-based zainstalujesz fish poleceniem:
sudo apt install fish
To szybka, wspierana metoda dostępna w repozytoriach.
macOS
Na macOS popularną metodą jest Homebrew:
brew install fish
Po instalacji sprawdź ścieżkę do binarki i dodaj ją do listy dozwolonych powłok, jeśli planujesz ustawić fish jako domyślną:
which fish
Jeśli potrzeba, dopisz wynik do /etc/shells.
Inne systemy i metody
W zależności od dystrybucji lub systemu znajdziesz gotowe paczki i repozytoria w dokumentacji fish. Najlepiej sprawdzić instrukcje właściwe dla Twojego menedżera pakietów.
Pierwsze uruchomienie fish
Aby uruchomić fish w aktualnym terminalu, wpisz:
fish
Aby zakończyć sesję i wrócić do poprzedniej powłoki, użyj:
exit
To prosty i bezpieczny sposób na przetestowanie fish bez zmian w ustawieniach systemu.
Jak ustawić fish jako domyślną powłokę
Gdy uznasz, że fish Ci odpowiada, możesz ustawić go jako domyślny login shell (również dla sesji SSH) albo uruchamiać tylko w wybranym emulatorze terminala.
Metoda 1 – ustawienie fish jako login shell
To najczęściej wybierana opcja. Wykonaj poniższe kroki:
- Dodaj fish do
/etc/shells:
command -v fish | sudo tee -a /etc/shells
- Ustaw fish jako domyślną powłokę:
chsh -s "$(command -v fish)"
Aby wrócić do innej powłoki, użyj tego samego polecenia z /bin/bash, zsh lub inną ścieżką.
Metoda 2 – uruchamianie fish tylko w terminalu
Jeśli nie chcesz zmieniać powłoki logowania, skonfiguruj swój emulator terminala tak, by startował bezpośrednio z fish. To prosta i bezpieczna opcja, zwłaszcza gdy używasz fish tylko lokalnie.
Uwaga dla macOS i terminali typu iTerm2
Niektóre terminale mają własne ustawienia startowe, które nadpisują systemowy shell. Upewnij się, że profil terminala jest ustawiony na „Login shell”, a nie na ręcznie wpisaną komendę startową.
Podstawowa konfiguracja fish
Jednym z największych atutów fish jest szybka personalizacja bez długich plików konfiguracyjnych.
Konfiguracja przez przeglądarkę: fish_config
Aby uruchomić wygodne GUI w przeglądarce, wpisz:
fish_config
W niektórych opisach znajdziesz też polecenie:
fish_config browse
Otworzy się panel, w którym wybierzesz motyw, układ prompta i inne ustawienia wizualne.
Personalizacja prompta
Prompt możesz zmienić, definiując własną funkcję fish_prompt lub korzystając z narzędzi konfiguracyjnych fish. Przykład minimalnej funkcji:
function fish_prompt
set_color -o -i red
echo "$USER@$PWD 💻 "
end
W praktyce prompt często pokazuje także gałąź Gita, status ostatniego polecenia i poziom uprawnień.
Najważniejsze różnice między bash a fish
1. Inna składnia skryptów
Fish nie jest „bashem z innym wyglądem” — ma własną składnię i polecenia, więc skryptów bashowych nie przeniesiesz 1:1.
Jeśli używasz fish głównie interaktywnie, to nie problem. Gdy planujesz pisać skrypty, zdecyduj, czy mają działać w fish, czy w bash.
2. Lepsze podpowiedzi
Fish oferuje czytelne podpowiedzi poleceń, argumentów i ścieżek, co przyspiesza pracę i redukuje błędy.
3. Interaktywny charakter
Fish jest projektowany z myślą o codziennym użyciu terminala — wiele funkcji działa od razu, bez dodatkowych pluginów i skomplikowanego setupu.
Szybkie porównanie: fish vs bash
Dla przejrzystości zestawmy kluczowe aspekty obu powłok:
| Cecha | Fish | Bash |
|---|---|---|
| Podpowiedzi w czasie rzeczywistym | Tak (z historii i kontekstu) | Nie (wymaga dodatków) |
| Autouzupełnianie „out of the box” | Rozbudowane | Podstawowe |
| Konfigurator w przeglądarce | fish_config |
Brak |
| Zgodność ze skryptami bash | Natywnie nie | Tak |
| Domyślne ustawienia i ergonomia | Wygodne, gotowe do pracy | Wymagają częstej konfiguracji |
| Nacisk na tryb interaktywny | Silny | Umiarkowany |
Przydatne funkcje fish, które warto poznać od razu
Nawigacja po katalogach
Fish ma skróty do przechodzenia między ostatnio odwiedzanymi katalogami, np. Alt + Left Arrow (poprzedni) i Alt + Right Arrow (następny).
Szybkie wstawianie poleceń
Wybrane skróty pozwalają wstawiać gotowe fragmenty komend, np. Alt + L uruchamia ls, a Alt + P dopisuje potok | less.
Pomoc do poleceń
Skrót Alt + W wyświetla opis bieżącego polecenia — przydatne w nauce nowych narzędzi.
Jak wrócić z fish do bash
Jeśli chcesz tymczasowo wrócić do basha, zakończ sesję fish poleceniem:
exit
Gdy fish jest ustawiony jako domyślny, zmienisz powłokę z powrotem przez chsh:
chsh -s /bin/bash
Upewnij się, gdzie znajduje się Twój bash i jakie powłoki są dostępne w /etc/shells.
Dobre praktyki przy migracji z bash do fish
Migracja będzie znacznie łatwiejsza, jeśli podejdziesz do niej stopniowo.
Oto zalecany plan działania:
- najpierw uruchamiaj fish ręcznie, bez zmiany domyślnej powłoki,
- sprawdź, czy odpowiada Ci autouzupełnianie i prompt,
- przetestuj kilka najczęściej używanych poleceń,
- dopiero potem ustaw fish jako login shell,
- jeśli używasz skryptów bashowych, zostaw je w bashu albo świadomie przepisz na składnię fish.
Dla kogo fish będzie najlepszy?
Fish szczególnie dobrze sprawdza się u osób, które:
- dużo pracują w terminalu,
- chcą wygodniejszego autouzupełniania,
- cenią prostą konfigurację,
- wolą interaktywne narzędzie do codziennych zadań niż minimalistyczną powłokę.
Jeśli Twoim głównym celem jest kompatybilność ze starszymi skryptami bashowymi, fish nie będzie automatycznym zamiennikiem. W takiej sytuacji używaj go interaktywnie, a skrypty pisz i uruchamiaj w bash.
Przykładowa krótka instrukcja „od zera”
Poniższy skrót prowadzi krok po kroku:
- Zainstaluj fish.
- Uruchom
fishw terminalu. - Sprawdź prompt i autouzupełnianie.
- Otwórz
fish_config, aby wybrać wygląd powłoki. - Ustaw fish jako domyślny shell przez
chsh, jeśli wszystko działa. - W razie potrzeby wróć do basha poleceniem
chsh -s /bin/bash.








