Dlouho jsem používal Bash, byla to prostě první volba. Nebo spíš jsem nemusel řešit volbu, Bash byl hned po instalaci Debianu/Archu/Gentoo(?)/Ubuntu po ruce.
Nicméně před několika měsíci jsem viděl pár cool fíčurek, které jsem chtěl taky, u kamaráda. Nainstaloval jsem si tedy ZSH a jsem s ním celkem spokojen. Po pár měsících bych nechtěl Bash zpátky. Kdykoli se dostanu k Bashi, je to pro mě krok zpět.
Instalace ZSH sice nebyla jen o apt-get install zsh, ale zas tak moc těžké to nebylo. Prošel jsem po prvním spuštění interaktivní konfiguraci (fajn věc, díky tomu jsem objevil pár fíčurek, které bych jinak nejspíš vůbec neznal). Potom jsem něco trošku nastavil, snad nefungovalo správně ctrl+šipka, vygooglil jsem k tomu tak dva řádky a funguje.
Potom příšly na řadu customizace Bashe/ZSH. Svého času jsem si potunil bash, ale v zásadě většinu tuningu může .bashrc a .zshrc sdílet. Místo undistract-me používám notifyosd.zsh. Přepsal jsem si při té příležitosti svoji definici promptu, ale nově toho ten prompt umí víc.
ZSH má mnohem lepší autocomplete, i když je to možná z části záležitost podpůrných skriptů. Třeba u git add mi to nabízí pouze relevantní (nové a změněné) soubory a ne všechny soubory. Lze nastavit chytré napovídání, napčíklad /v//ke mi rozbalí na /var/log/kern.log. Alias fungují lépe než v Bashi. Tam mi, co si pamatuju, tročku rozbíjely autocomplete. ZSH si zřejmě nejdřív rozbalí alias a potom nad tím řeší autocomplete, což dává lepší výsledky.
Komunita kolem ZSH vypadá, že je relativně velká. Na Oh-my-zsh se toho dá najít spousta.
Možná byla hlavním důvodem pro zařazení ZSH místo Bashe do Mac OS X licence, ale věřím, že ne jediným. Naučit se s ZSH je pro Bashistu celkem zdarma, základní věci prostě bude umět z Bashe. Pro toho, kdo si potunil Bash, to bude o něco málo více práce, ale výsledek nejspíš ocení o to víc.
Je přechod k fish z ZSH stejně snadný jako přechod k ZSH a Bashe? Tzn. až na nějaké edge cases (např. poněkud divoké používání wildcards*) mohu přejmout zvyky z původního prostředí a postupně se učit nový shell?
Nebo je to spíše skoková změna?
*) Například echo 2*3
v Bashi vypíše 2*3, pokud neexistuje odpovídající soubor. V ZSH to selže. Správné řešení je použít uvozovky. ZSH je zde striktnější, ale většinou je to to, co chci.
Pokud se nepodari expanze, tak se vrati navratova hodnota 124.
Celkove jsem mel pocit, ze fish je docela jiny, ale vklouznul jsem do nej jako do botek na miru. nektere vymozenosti zsh funguji porad stejne, napriklad **
Pouzivam ho jenom pro interaktivni veci, pokud nedejboze potrebuju nejaky script v shelu, tak pisu v bashi (a vetsinou to asi je neco, co by spustil i staricky sh)
První dojem takový rozporuplný. V promptu mi adresář /usr/share/fonts/truetype zkrátí na /u/s/f/truetype, zřejmě bez nějaké složitější logiky. No dobře, na 17.3" notebooku s 16:9 to moc neocením. Ale čekal jsem od toho, že bude umět podobné cesty expandovat (stejně jako ZSH), což je moc nekonalo. Možná to bude "jen" potřeba někde nastavit. (V tomto byl ZSH při prvním spuštění fajn.)
Dal jsem si do readig listu http://arstechnica.com/information-technology/2005/12/linux-20051218/2/ , třeba mě to přesvědčí a k rybě se vrátím. (Ostatně ani do ZSH jsem nešel na poprvé.)
Jo, skripty taky píšu spíš v Bashi, možná budu používat Dash.
Jak rikam - mne sednul do ruky, ale tady jsme nejspis v dost individualnim pasmu... A fakt je, ze po prvnim kontaktu jsem venoval dost casu prizpusobeni (ostatne to same bylo se zsh a pozdeji s objevem oh'my). Kazdopadne doporucuji vsem zkusenejsim unixarum k ozkouseni, ale zaroven celkem dobre chapu ty, kterym se nebude libit.