Powłoki – FISH, czyli nowoczesna powłoka dla dewelopera. Część pierwsza

Bash powstał ponad 28 lat temu i choć jest młodszy niż niejeden administrator, to z punktu widzenia oprogramowania jest to jednak kawał czasu. Przez ten okres na rynku zwiększyło się zapotrzebowanie na nowocześniejsze, bardziej użyteczne powłoki. Ten artykuł jest o jednej z nich.

Zgodnie z Badaniami opublikowanymi w Proceedings of the National Academy of Sciences, wraz z wiekiem stajemy się szczęśliwsi. Od 46 do 73 roku życia poziom naszego szczęścia rośnie. W tym czasie ludzie częściej odczuwają spokój i uczucie spełnienia. W powszechnym rozumieniu szczęśliwa starsza osoba, to właśnie osoba spełniona i kompletna, która często nie oczekuje od życia zbyt wiele, a mimo to potrafi z niego czerpać garściami. Co to ma wspólnego w powłoką fish?

Właśnie takim spełnionym staruszkiem jest bash – Bourne-again shell, którego nazwa nawiązuje do autora sh (Boure), a równocześnie do born again (narodzenia się na nowo). Ot kolejny zabawny akronim (tym razem nierekursywny) :) Bash powstał ponad 28 lat temu i choć jest młodszy niż niejeden administrator, to z punktu widzenia oprogramowania jest to jednak kawał czasu. Przez ten okres na rynku zwiększyło się zapotrzebowanie na nowocześniejsze, bardziej użyteczne powłoki. Ten artykuł jest o jednej z nich – fish.

Jak trafiłem na fisha?

Codziennie operuję na repozytoriach systemów kontroli wersji. „Goły” bash nie zapewnia jednak żadnego ich wsparcia.
Dodanie nowych wtyczek odpowiedzialnych za systemy kontroli wersji (git, svn, mercurial) może doprowadzić przeciętnego użytkownika do małego szału ze względu na niebywale powolne działanie. W tym samym czasie mój znajomy zaczął korzystać z fisha i słysząc o moich kłopotach z bashem, rozpoczął powolny i żmudny proces ewangelizacji. Po mniej więcej minucie pokazu możliwości fisha postanowiłem zainstalować to rewelacyjne oprogramowanie.

Dlaczego fish?

Fish jest powłoką, która jest gotowa do pokazania pełni swoich możliwości zaraz po instalacji. Po prostu działa. Takie zaskakujące stwierdzenie na pozór brzmi absurdalnie, ale jak zaraz zobaczymy, takie jednak nie jest. A wszystko dzięki potężnym mechanizmom autouzupełnień, uzupełniania komend, kolorowania składni i wielu więcej.

Co istotne, konfiguracja fisha, zmiana jego zachowań, a nawet pisanie własnych tematów, jest znacznie prostsze niż w bashu.

Instalacja fisha

W celu zainstalowania fisha udajemy się na stronę projektu fishshell.com i ściągamy odpowiednią paczkę. Paczką, która nas interesuje, jest ta stworzona dla projektu CentOS lub RHEL, jest ona w pełni zgodna z EuroLinuxem.

[~/V/fish]─> vagrant up; vagrant ssh
Bringing machine 'default' up with 'libvirt' provider..
...
[vagrant@localhost ~]$ sudo -i
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# wget https://download.opensuse.org/repositories/shells:fish:release:2/RHEL_7/shells:fish:release:2.repo
[root@localhost yum.repos.d]# yum install -y fish
...

Przy pomocy chsh możemy teraz zmienić domyślną powłokę dla użytkownika vagrant.

[vagrant@localhost ~]$ chsh -s /usr/bin/fish
Changing shell for vagrant.
Password:
Shell changed.
[vagrant@localhost ~]$

Po ponownym zalogowaniu się przywita nas standardowy wiersz poleceń fisha.

vagrant@localhost ~>

Pomoc i konfiguracja

W celu uzyskania pomocy wpisujemy po prostu.

[~]->help

W ten sposób lądujemy na naszej domyślnej przeglądarce w pliku file:///usr/share/doc/fish/index.html

Z kolei równie łatwa do zapamiętania komenda

[~]->fish_config

otwiera nam w przeglądarce intuicyjne, elastyczne i potężne narzędzie do konfiguracji naszej konsoli.

Krótki pokaz możliwości

Aby pokazać wszystkie możliwości fisha, sposobów jego konfiguracji itp., musiałbym poświęcić na to zapewne kilka godzin. Dla tego cyklu artykułów skoncentrujemy się na kilku najważniejszych i najciekawszych, a wśród nich:

1. Kolorowaniu składni.

1

2. Autouzupełnianiu.

2

3. Tab suggestion.

3

4. Automatycznym tworzeniu autouzpełniania/sugestii przy pomocy stron manuala (man pages).

4

5. Zmianie katalogu.

fish

6. Domyślnym wyświetlaniu historii.

fish

fish

Równie interesującą cechą fisha jest to, że łatwo się go uczymy poprzez eksploracje. Mówimy, że fish jest discoveralbe, czyli odkrywalny.

Następna część

W następnej części zajrzymy do Oh my Fish, projektu, który znacznie rozszerza możliwości naszej powłoki. Zainstalujemy najciekawsze motywy i wtyczki. Napiszemy też kilka prostych skryptów w celu porównania składni basha i fisha. Zwrócimy też uwagę na różnice wydajnościowe między jedną a drugą powłoką.

blank Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.