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:
- Instalacja motywu
git clone - https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
- 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).
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.
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.
Takie może pytanie, od tych co się nie urodzili pod Linuxem. Czym się różni Bash od ZSH?
Zsh to po prostu rozszerzenie Basha, mocno rozbudowane komendy
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.
Oczywiście że tak, wpisujesz Ubuntu.exe i wget link
I ostatnie pytanie, czemu uważasz SASS/SCSS za przestarzałe rozwiązanie?
Trochę przesadziłem. Chodziło mi o Ruby, w którym do tej pory działały te scssy.odkad jest libsass, na bazie którego powstał node-sass to jest już Bajka.
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.
Bardziej chodziło mi o Ruby, w którym to środowisku działały te sassy. Libsass byl swego czasu Mocno zawodny ale jest to historia.
Wsl zostawiam na mniejsze projekty, bo większe i tak pakuje w kontenery.
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.
@bobiko coś nie tak jest z subskrypcją. Bo nie dostałem informacji o twoich odpowiedziach, ale jedynie info o wpisie @eRIZ
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ł :)