Potęga terminalu



Podczas, gdy dla wielu osób korzystanie z terminalu jest złem koniecznym, dla innych jest to podstawowe narzędzie pracy. Korzystanie z niego jest dla programistów kwestią polaryzującą. Nie da się przekonać każdego, że powinien go używać, ponieważ istnieje wiele narzędzi spełniających te same funkcje. Jednak nikt nie zaprzeczy, że korzystanie z terminalu jest trudniejsze — w szczególności z takiego, który nie posiada rozwiniętych funkcji, takich jak swobodne poruszanie się pomiędzy katalogami, czy podpowiedzi komend oraz nazw plików. W artykule pokażemy, że odpowiednio skonfigurowany terminal otwiera szereg nowych możliwości, a praca z nim przestaje być wymagająca — staje się bardziej efektywna od korzystania z zamienników.



Na początku należy wymienić jakie mamy typowej powłoki wiersza poleceń (Command Line Shell). Natywnie w systemach Linuxowych jest to Bash, a w wypadku Windowsa jest to Windows Command Prompt. Oba rozwiązania są użyteczne, ale CLS przewyższa zarówno w podstawowej funkcjonalności, daje możliwości dalszej modyfikacji oraz wzbogaca terminal o kolejne rozszerzenia. Jeżeli korzystasz z Linuxa, ten poradnik jest dla Ciebie 😉 a dla użytkowników Windowsa czeka zupełnie inne przygotowanie środowiska, które będzie przedstawione w osobnym artykule.


Pierwsza zmiana to pozbycie się podstawowego CLS na rzecz Zsh (Z-shell). Jest to rozbudowana wersja leciwego już CLS Bourne shell oraz miks funkcjonalności z innych powłok takich jak Bash, ksh oraz tcsh. Na systemach Mac OS wyparł on już Bash-a; od jakiegoś czasu jest natywnym CLS pre-instalowanym na Macach. Następnie możemy zainstalować Zsh. W zależności od dystrybucji możemy skorzystać z gotowych już paczek:


UBUNTU


sudo apt install zsh

Debian


sudo apt-get install zsh


Fedora


sudo dnf install zsh


OpenSUSE


sudo zypper install zsh


Arch Linux – jeżeli nie używasz już domyślnie Zsh


sudo pacman -S zsh

Następnie należy ustawić Zsh jako domyślny CLS.


sudo chsh -s /bin/zsh


Już sama zmiana CLS pozwala nam na skorzystanie z wielu nowych funkcjonalności, na przykład podpowiedzi nazw plików oraz komend (poprzez podwójne użycie tab-a) lub autokorekty. Jednak największą zaletą Zsh jest możliwość dalszego poszerzania funkcjonalności oraz modyfikacje wizualne, które można wprowadzać. Dalsza rozbudowa jest możliwa poprzez framework Oh my Zsh. Pozwala on w prosty sposób zarządzać konfiguracją Zsh, gdzie możemy dodawać kolejne wtyczki, zmieniać motywy czy dodawać autorskie skróty klawiszowe. Aby pobrać OMZ należy użyć poniższej komendy:


wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh


W rezultacie tworzony jest plik .zshrc, w którym zostaną zawarte zmiany oraz modyfikacje Zsh. Kolejnym krokiem jest zainstalowanie odpowiednich rozszerzeń oraz dodanie ich w konfiguracji w pliku .zshrc. Aby Zsh zaczął z nich korzystać należy ich nazwy umieścić w polu:


plugins = ()

Załadowanie wprowadzonych zmian w pliku konfiguracyjnym odbywa się poprzez wywołanie komendy:


source ~/.zsrhd

PLUGINY

Oh my Zsh zapewnia nam możliwość użycia ponad 120 pluginów. Jest bardzo mało prawdopodobne, że akurat wszystkie będą nam potrzebne, ale wiele z nich poprawia produktywność, umożliwia integrację z narzędziami programistycznymi, zapewnia gotowe skróty klawiszowe, aliasy dla komend itd. Poniżej lista tych, które osobiście stosuję oraz uważam za efektywne wsparcie przy pracy. Instrukcja dla każdego rozszerzenia jest powtarzalna. Za każdym razem należy pobrać repozytorium do specjalnego folderu przygotowanego przez OMZ:


~/.oh-my-zsh/custom}/plugins/

następnie dodać wtyczkę do listy wtyczek w pliku konfiguracyjnym. Plik zawierający aliasy natywnie wspierane przez OMZ.


Poniżej lista pluginów, które najbardziej wzbogacają możliwości ZSH:

  • zsh-autosuggestions - podpowiada polecenia w trakcie pisania na podstawie historii i uzupełnień.


  • zsh-history-substring-search - przeglądanie dopasowań



  • zsh-syntax-highlighting - podświetlanie składni


  • zsh-z – szybkie poruszanie się miedzy katalogami



Dodatkowe narzędzia:

  • Lf - menedżer plików


  • FZF - filtr Unix dla wiersza poleceń



Motyw


Poza wtyczkami poprawiającymi produktywność mamy też mnogość motywów oraz możliwość ich indywidualnej modyfikacji. Jednym z najbardziej popularnych jest Powerlevel10k, który od razu po instalacji przechodzi z nami przez konfigurację motywu, aby dobrać ją zgodnie z naszymi wizualnymi preferencjami.




Jak widać wachlarz dostępnych pluginów jest bardzo szeroki i każdy powinien znaleźć coś dla siebie. A jaki jest Twój ulubiony plugin lub motyw? Zapraszam do komentowania!




Paweł Pruchnicki

Junior Python Developer

pawel.pruchnicki@bitpeak.pl




Linki do pobrania konfiguracji zsh oraz lf.

https://gist.github.com/ppruchnicki/3dff7725fd49951406b943668539b555

https://gist.github.com/ppruchnicki/8ea66e657084a877f5a43ddb0e78a678



Bibliografia:

https://gist.github.com/derhuerst/12a1558a4b408b3b2b6e

https://zsh.sourceforge.io/

https://ohmyz.sh/

https://github.com/ohmyzsh/ohmyzsh

https://github.com/unixorn/awesome-zsh-plugins

https://github.com/zsh-users/zsh-autosuggestions

https://github.com/zsh-users/zsh-history-substring-search

https://github.com/zsh-users/zsh-syntax-highlighting

https://github.com/agkozak/zsh-z

https://github.com/gokcehan/lf

https://www.2daygeek.com/linux-lf-terminal-file-manager/

https://www.nerdfonts.com/

https://www.youtube.com/watch?v=HHjQFlzR2gw

https://github.com/junegunn/fzf

https://github.com/unixorn/fzf-zsh-plugin https://github.com/romkatv/powerlevel10k



137 wyświetleń

Ostatnie posty

Zobacz wszystkie