ZSH w Windowsie

ZSH w Windowsie? Tak, jest to możliwe dzięki linuksowemu subsystemowi, który zrewolucjonizował podejście do Windowsa. W jaki sposób skonfigurować środowisko?

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

0 0 votes
Article Rating
Subscribe
Powiadom o
guest

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

11 komentarzy
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments
SpeX
4 lat temu

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

SpeX
4 lat temu

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
4 lat temu

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

eRIZ
4 lat temu

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
Reply to  eRIZ
4 lat temu

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
4 lat temu

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

pakos
4 lat temu

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ł :)

11
0
Would love your thoughts, please comment.x
%d bloggers like this: