Developer

ZSH w Windowsie


Czas powrócić „na chwilę” do tematu Windows 10, poruszonego jesienią 2016 roku. Do chwili obecnej jestem i raczej będę aktywnym użytkownikiem tego systemu, bo w mojej opinii jest to bardzo udana kompilacja „dobrodziejstwa”, zwłaszcza gdy pojawiło się magiczne połączenie słów: Bash in Windows.

Bynajmniej nie mam na myśli Power Shella, a uniksowe środowisko – jakie znałem z czasów ubuntu – odpalany za pomocą komendy:

bash

lub

ubuntu

Piekło zamarzło, a webdeveloperzy tańcują – przynajmniej ta część, która jeszcze nie wydała hajsu nie zainwestowała w drogie MBP.

ZSH w Windowsie

Skoro Windows daje dostęp do uniksowej powłoki (sub)systemowej, to grzech nie skorzystać z alternatyw takich jak ZSH czy Fish, które możemy wykorzystywać zamiennie. Zakładam, że większość pro-userów ma zainstalowaną powłokę uniksową w Windowsie; jeśli nie, to z pomocą przychodzi MS Doc, który wyjaśnia instalację środowisk w dwojaki sposób i to nie tylko w oparciu o distro Ubuntu.

Instalacja i konfiguracja ZSH

No to lecimy z koksem, instalując GIT i ZSH:

sudo apt-get install git zsh

Dlaczego GIT? Bo będziemy korzystać z dedykowanego frameworka do zarządzania konfiguracją ZSH: Ohh My ZSH i utrzymania jego aktualnej, najnowszej wersji.

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

A skoro jesteśmy przy Ohh My Zsh, to możemy przejść do konfiguracji, przeglądając najpierw listę dedykowanych motywów i pluginów. Aby wprowadzić zmiany, należy edytować plik konfiguracyjny poleceniem:

nano ~/.zshrc
# lub 
vi ~/.zshrc

Po wprowadzeniu zmian należy przeładować shella, poleceniem zsh.

Jak widzicie, korzystam z PowerLevel9k, podobnego do Agnoster, ale rozbudowanego o kilka ficzerów, jakich brakowało w podstawowej konfiguracji.

Aby zainstalować, wystarczą 2 kroki:

  1. Instalacja motywu
    git clone - https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
  2. Edycja pliku konfiguracyjnego.

I to wszystko. Moja konfiguracja wygląda mniej więcej tak:

ZSH_THEME="powerlevel9k/powerlevel9k"
plugins=(
  git, Composer, docker, git-extras, node, npm, debian
)
POWERLEVEL9K_CONTEXT_TEMPLATE="%n"
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context time battery dir vcs virtualenv)

Jak widać, Powerleve9k można nieźle pod siebie dostosować – w repo znajdziecie więcej informacji o stylizowaniu linii poleceń (tu i tu).

zsh

Customowe fonty

Przy okazji PowerLeve9k pojawiły się problemy z wyświetlaniem znaków graficznych – wiąże się to z brakiem wsparcia standardowych czcionek (dedykowanych do programowania). Tutaj z pomocą przychodzi projekt Powerline, posiadający pokaźne repo ze zmienionymi pakietami fontów, zawierające owe znaki glyphs.

Z przyzwyczajenia korzystam z Ubuntu Mono, więc ściągnąłem je z powyższego repo i zainstalowałem ręcznie.

Następnie zmiany trzeba wprowadzić w ustawieniach terminalu (w zasadzie albo CMD.exe albo ubuntu.exe) – ja korzystam z Conemu, stąd prezentacja oparta na tej aplikacji.

zsh

Podsumowanie

Nowinka związana z podsystemem pojawiła się prawie 2 lata temu, ale dopiero teraz zabrałem się za konfigurację środowiska. Środowisko, jakie zawsze chciałem mieć na domowym i roboczym laptopie. W tej zabawie miałem jeszcze jeden ukryty cel: udowodnić, że nie trzeba wydawać ciężkich pieniędzy na MBP i że wystarczy dobry notebook z linii biznesowej / gamingowej z Windowsem 10 Pro.

Stack technologiczny

Na co dzień pracuję jako front-end developer i dużo działam w środowisku react/vue/node, dlatego bardzo ważne jest, by konfiguracja była elastyczna i działała w każdym środowisku. Trzeba przyznać, że większość rozwiązań, dostępnych na githubie, działa w 100% w windowsowym środowisku bez zająknięcia.

Nie bez znaczenia jest fakt, ze MS mocno wspiera rozwój nodeJS i widać tutaj efekty. Jestem ciekaw dalszego rozwoju sytuacji po „przejęciu” Githuba . W dużym uproszczeniu to wszystko wprowadza sie do środowiska NodeJS + NPM i GIT, bo reszta (patrz wpis z 2015 roku ) przestała mieć rację bytu, albo ma status deprecated, zwłaszcza Ruby i SASS (SCSS), z którego do dziś korzystam w większości projektów – nawet w typowo reactowych.

ps. Fota pochodzi z pexels

Poradnik
Gnome-Shell: Rozszerzenia powłoki, które warto zainstalować
Testy
Samsung R580-JS09PL – opinie
Techniczne
Powrót. Z tym razem Kubuntu

11
Dodaj komentarz

avatar
6 Comment threads
5 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
pakosbobikoeRIZSpeX Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
najnowszy najstarszy oceniany
Powiadom o
SpeX
Gość

Takie może pytanie, od tych co się nie urodzili pod Linuxem. Czym się różni Bash od ZSH?

SpeX
Gość

Przy okazji, pytanie czy pod takim winlinuxem mogę sobie zainstalować i potem spokojnie korzystać z np. wget? Czego mi braku, po tym jak zacząłem korzystać z hostingów z ssh.

SpeX
Gość

I ostatnie pytanie, czemu uważasz SASS/SCSS za przestarzałe rozwiązanie?

eRIZ
Gość

Bezedura z tym SASS/SCSS; odkąd jest sportowany do libsass natywnie, to możesz mieć go w czymkolwiek. Mrzonka z tym „deprecated”.

Co do WSL, to proponowałbym jednak Babuna, a nie pod WSL. Zwłaszcza, że operacje I/O w katalogach podmontowanych pod FS windowsowy są żenująco wolne. Lepiej albo wirtualka i montować sambą, albo Cygwin/Babun.

SpeX
Gość

Możesz trochę jaśniej o tym montowaniu? Bo szukam właśnie jakiegoś sensownego sposobu na dostęp do zewnętrznego archiwum różności.

SpeX
Gość

@bobiko coś nie tak jest z subskrypcją. Bo nie dostałem informacji o twoich odpowiedziach, ale jedynie info o wpisie @eRIZ

pakos
Gość

To chyba tylko na win 10 działa, tak? Trochę szkoda bo w wielu miejscach nadal króluje jeszcze win7 więc z braku laku np ja jestem skazany na virtualkę a pewnie bym przetestował :)

%d bloggers like this: