iMagazine

Fish Shell zamiast bash dla macOS

24/05/2017, 17:14 · · · 9

Od kilku dni wykonywałem syzyfową pracę za pomocą programu ImageOptim i Findera. Wiedziałem, że muszę to sobie zautomatyzować, ale nie miałem na to czasu, więc w wolnych chwilach brałem kilkaset plików, wrzucałem do ImageOptim i czekałem aż się skompresują. Dzisiaj w końcu sobie to zautomatyzowałem pisząc skrypt, który wszystko zrobi za mnie, ale żeby nie było za łatwo, to postanowiłem podmienić sobie basha na fish.

Dlaczego fish? Bo naukę basha zacząłem prawdopodobnie 23 lata temu i nigdy za nim nie przepadałem. Poza tym nie wykorzystywałem go do pisania skryptów od przynajmniej 15 lat, więc i tak musiałbym przypomnieć sobie składnię. Stwierdziłem więc, że przejdę na nowocześniejszego fisha, przy okazji zaczynając naukę „od nowa”.

Bash jest domyślnym shellem pod macOS, a fisha trzeba doinstalować. Można to zrobić na kilka sposobów – za pomocą Homebrew, MacPorts lub ręcznie. Brew miałem już na komputerze z innych powodów, więc skorzystałem z tej metody. Wszystkie są opisane tutaj.

Najpierw instalacja Homebrew

Jeśli nie macie Homebrew, to należy go zainstalować następującą komendą, wpisywaną w Terminalu:

Jeśli już macie, to uruchomcie Terminal i upewnijcie się, że wszystko gra…

A potem…

Instalujemy Fish

Jeśli już macie Homebrew, to czas na instalację fisha… W Terminalu wpisujemy…

Po jego zainstalowaniu, które może chwilę zająć, trzeba będzie jeszcze zmienić basha z domyślnego shella na fisha. Pierwszym krokiem będzie edycja pliku /etc/shells, aby dodać do niego fisha. Ja w tym celu używam BBEdit, ale każdy edytor tekstu powinien się nadawać. Do edycji tego pliku będzie potrzebne hasła administratora. Domyślnie wygląda on tak:

Na dole trzeba dodać jedną linię tekstu…

… aby system wiedział o istnieniu fisha. Teraz pozostaje już tylko zmienić basha na fisha następującą komendą.

Jeśli teraz zamkniecie okno Terminala i otworzycie nowe, to uruchomi się już fish, a nie bash.

W następnej części opiszę swój fish-owy skrypt…

fish shell


Wojtek Pietrusiewicz

Wydawca, fotograf, podróżnik, podcaster – niekoniecznie w tej kolejności. Lubię espresso, mechaniczne zegarki i zwinne samochody. Niedawno rozpocząłem prowadzenie kursów Lightrooma i fotografii na Pikselowe.pl – zapraszam.


9
Dodaj komentarz

avatar
3 Comment threads
6 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
Kuba FlorczukButhimildMoridinPiotr Zaborowskimatipl Recent comment authors
  Subscribe  
najnowszy najstarszy oceniany
Powiadom o
matipl
Gość

Ciekawe, ale wolę chyba i tak zsh + oh-my-zsh jako shell.

Buthimild
Gość
Buthimild

+ zsh-autosuggestions
+ zsh-syntax-highlighting

ZSH używam praktycznie od zawsze (jeszcze za czasów linuksowych). Muszę jednak przyznać, że zawsze patrzałem na Fisha jako godnego konkurenta dla ZSH.

@Moridin:disqus: Czekam na dalszy tekst; jak dokładnie wygląda sprawa z tymi skryptami? Czy tak napisany skrypt w Fishu jestem w stanie wykorzystać np. do crona?

Moridin
Gość

Jesteś, niezależnie od shella.

Moridin
Gość

@matipl:disqus @disqus_xuANHLc7JB:disqus A dlaczego zdecydowaliście się na ZSH?

Buthimild
Gość
Buthimild

1. (Istotne dla mnie): jeżeli wklepiesz w terminalu na Maku bash --version dostaniesz info, że jest to wersja z 2007 oznaczona jako 3.2.57(1). Można naturalnie zrobić upgrade za pomocą wspomnianego przez Ciebie Homebrew (do wersji 4.4.12 ze stycznia 2017). Natomiast jeżeli chodzi o ZSH to jest on na Maku w miarę aktualny (5.2 vs 5.3.1).

2. Aliasy globalne np. alias -g G=' | grep -i'. Wpisujesz wtedy cat plik.txt G szukana_fraza (ZSH potraktuje to jak: cat plik.txt | grep -i szukana_fraza).

3. Lepsze „podpowiadanie” przy użyciu cd. Lepsze uzupełnianie TABem: wpisując np. cd /u/l/b i naciskając TAB otrzymasz cd /usr/local/bin.

4. Zamienianie ścieżek: jeżeli się pomyliłeś i chcesz np. dotrzeć do katalogu share zamiast bin wpisujesz po prostu cd bin share i zostajesz przeniesiony do /usr/local/share. Bardzo pomocna opcja (przykład trochę słaby, bo ścieżka jest krótka i łatwo taki błąd naprawić, ale rozumiesz o co chodzi).

5. Uzupełnianie dla git.

6. Korekta pisowni.

I sporo więcej. Nie jestem też teraz w stanie powiedzieć, czy coś z powyższej listy nie jest zasługą https://github.com/robbyrussell/oh-my-zsh . Jest też sporo wtyczek rozszerzających funkcjonalność (choćby te wspomniane przeze mnie wyżej). Uważam, że ZSH jest zdecydowanie lepszy od Basha. A w każdym bądź razie ZSH jest na pewno lepszą opcją na Maku niż przestarzały Bash. Nie wiem, jak ma się to do Fisha, będę musiał się przyjrzeć tej powłoce, jak znajdę chwilkę :).

Moridin
Gość

Dzięki – właśnie takiej odpowiedzi się spodziewałem. 🙂

Piotr Zaborowski
Gość

Shella można jeszcze zmienić po instalacji w taki sposób. To pozwala mi na trzymanie shella w terminalu innego, a w WebStormie jeszcze innego. https://uploads.disquscdn.com/images/74c4404f92a33e09d53e7007481673c4f882a02d8f43156e6b90879d79036de7.png

Moridin
Gość

Yep.

Kuba Florczuk
Gość
Kuba Florczuk

fish jest zajebisty ! korzystam od dawna !

Dbamy o Twoją prywatność

Od dnia 25 maja 2018 r. dostosowujemy naszą działalność do nowego Rozporządzenia Unii Europejskiej o Ochronie Danych Osobowych (RODO).

Zaktualizowaliśmy naszą Politykę Prywatności, aby udzielić Ci bardziej szczegółowych informacji, w jaki sposób iMagazine.pl chroni twoją prywatność, oraz w jaki sposób możesz korzystać ze swoich praw odnośnie danych osobowych.

Kliknij w poniższy link, aby zapoznać się z zaktualizowaną Polityką Prywatności.

Dziękujemy, że jesteś z nami,
redakcja iMagazine

DOWIEDZ SIĘ WIĘCEJ OK