TechLife devBlog

How much is the fish

Internet 17th Mar 2016

Dzisiaj będzie o złotej rybce, która jest w stanie spełnić większość naszych życzyń dotyczących efektownej i efektywnej konsoli. Friendly Interactive SHell czyli fish to jedna z powłok systemowych, której możemy użyć w konsoli jako zamiennika basha czy zsh.

fish shell logo

Instalacja

Powłoka fish jest dostępna w repozytoriach większości dystrybucji. Wystarczy zainstalować paczkę.

# pacman -S fish

Następnie ustawić ją jako domyślną powłokę dla naszego użytkownika.

$ chsh -s /usr/bin/fish

Gotowe, po uruchomieniu nowej konsoli zobaczymy domyślne powitanie fisha.

fish default prompt

Menadżer pakietów

Dobre rozwiązania mają to do siebie, że są zbudowane na solidnej podstawie ale jednocześnie dają możliwość rozszerzania swoich funkcji za pomocą pluginów. Podobnie jest i w tym przypadku. Do wyboru mamy nawet kilka menadżerów pakietów tj.

  • fundle - inspirowany Vundle-m czyli podobnym menadżerem dla Vim-a
  • oh-my-fish - menadżer inspirowany oh-my-zsh
  • fisherman - nowy i podobno najszybszy z nich wszystkich

Jako że dzisiaj wpadłem na fishermana to właśnie jego zademonstruję. Do jego instalacji wystarczy nam curl.

$ curl -sL get.fisherman.sh | fish

fish default prompt

Do dyspozycji mamy teraz komendę fisher oraz dwa domyślnie zainstalowane pakiety.

$ fisher list
* debug
* spin

Rybaka w działaniu możecie dokładniej pooglądać tutaj - fisherman.sh/#demo

Szczegółową listę pakietów można podejrzeć wklepując:

$ fisher search --long

fisher search results

Oczywiście lista obejmuje jedynie wspierane i przetestowane paczki ale nie zabrania nam to zainstalowania dowolnej paczki ze ścieżki, url-a czy podając autora i nazwę repozytorium.

$ fisher install owner/repo

Osobiście moim must have w konsoli jest nazwa użytkownika i maszyny, na którą jestem obecnie zalogowany, dlatego pierwsze co robię po instalacji fisha to dostosowanie prompta poprzez instalację paczki lambda.

fisher lambda prompt

Użytkowanie

Fish jak już sama nazwa wskazuje został zaprojektowany jako przyjazna użytkownikowi interaktywna powłoka. Interakcje możemy zauważyć już po wpisaniu pierwszego znaku, ponieważ powłoka od razu podpowiada nam pasujące do wpisanego tekstu komendy.

fish interactive

Out of the box podpowiada też argumenty różnych komend.

fish git

Używając zsh często przyłapywałem się na tym, że 80% rzeczy które robię w konsoli zaczynają się od wciśnięcia ctrl+r czyli kombinacji pozwalającej na wyszukiwanie w historii. W fishu ten krok stał się zbędny ponieważ domyślnie wszystko co wklepujemy automagicznie przeszukuje historię w celu podpowiedzenia nam ostatniego użycia a strzałkami w górę i w dół możemy przeglądać pozostałe pasujące rezultaty.

fish history search

Mógłbym tu jeszcze pozachwycać się nad wieloma fajnymi rzeczami jakie można znaleźć w fishu, ale nie po to ktoś napisał do niego ładny tutorial, żebym go teraz pominął. Pluginy najlepiej przetestować samemu, ewentualnie korzystając z fisher search --long przejrzeć najpierw ich repozytoria ponieważ na większości znajdziecie gotowe screeny.

Na koniec oficjalnie: fishshell.com

h3. UPDATE

Ponieważ moja poprawka do lambdy dodająca wsparcie dla pythonowego virtualenva wisi od dłuższego czasu to działającą wersję możecie zainstalować z mojego repozytorium

fisher install trojkat/theme-lambda

Lub jeżeli korzystacie z omf:

omf install https://github.com/trojkat/theme-lambda


Komentarze