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.
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.
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
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
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.
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.
Out of the box podpowiada też argumenty różnych komend.
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.
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