@akerro: oczywiscie ze nie. nikt na produkcyjnych maszynach nie bedzie instalowal dodatkowych shelli. trzeba nauczyc sie korzystac z basha na 105% z wszystkimi mozliwosciami. Mocna na prawde cuda robic z poziomu podstawowego shella. Prywatnie korzystam z sh jak najwiecej - wbrew pozorom to tez duzo potrafi. A wtedy - umiejąc basha/dasha/sh to na dowolnej maszynie wszystkie skroty klawiszowe beda po prostu dzialac. Przyzwyczajanie sie do rozwiązan niestandardowyc powoduje kompletne zagubienie na nowych innych maszynach.
@azhag: heh, zalozylbym sie ze potrafie wiecej z bashem i vimem niz ty z twoimi ;) prawda jest taka ze zarowno emacs jak i zsh nie są w lsb, co je automatycznie dyskriminuje jako podstawowe narzędzia ;)
@azhag: nie mowie ze jest zly. prywatnie - smialo. jednak ja jestem dosc ortodoksyjny, bo nie chcę się przyzwyczajac do "wygody" prywatnie, bo później nie odnajdę się na losowej maszynie. a co do produkcji, to trzymam wszystko uber-koszernie. Nie pozwalam na jakiekolwiek niedociągnięcia czy mozliwe niejasności ;)
@zskk: zgadzam się z tym co napisałeś na początku... ale częściowo. shell, bash, zsh, csh tak... ale jak pracujesz z wieloma programami na raz, to oh-my-zsh jest niezastąpione, podpowiadanie składni do wielu zadań? git rm [tab][tab] --cached (O TAK TO CHCIAŁEM). Komendę wykonuję raz na epokę, więc takie zachowanie powłoki mi bardzo opowiada, to samo jak raz dostałem obraz dysku .img - 4 partycje, dwie zaszyfrowane, każda z 4 w innym formacie plików, wiesz ile się męczyłem zanim zacząłem sobie podpowiadać składnie? każda ma inny blocksize, każda inny format, dużo łatwiej mi to wybrać z listy niż liczyć gdzie się zaczyna która partycja*blocksize...
@akerro: bash ma tez dobry system podpowiedzi (jak sobie zainstalujesz). W praktyce - brak podpowiedzi (moja opcja) zmusza mnie do ciąglego myslenia i pamietania, ergo - w przyszlosci nie bede goły i wesoly
@zskk: jakoś bash mnie nie odpowiadał, do zalet zsh dodam jedna historia komend, niezależna od ilości terminali, więcej domyślnych bindów i przyjaźniejsze ustawienia (case non-sensitive)
@zskk: czy w bashowym systemie podpowiedzi można sobie po podpowiedziach latać tabem i strzałkami?
Nawet po zainstalowaniu bash-completion, podpowiedzi w bashu są nieopisanie toporne (chyba, że trzeba to jakoś specjalnie skonfigurować). Zaczynam pisać coś w bashu, klikam dwa razy tab i szlag mnie trafia, bo ta prymitywna powłoka tylko podpowiada co mogę wpisać zamiast po prostu to "wpisać".
Obok braku definiowania katalogów (hash -d) oraz "skrótu" do which (=polecenie zamiast which polecenie) jest to jeden z powodów absolutnie dyskryminujących dyskwalifikujących tę powłokę.
Z plusów basha trzeba jednak oddać, że autorzy wielu programów sami tworzą podpowiedzi dla basha, dzięki czemu dla wielu dość niszowych programów są podpowiedzi. Ale to właściwie wynika tylko z popularności basha.
@azhag: ale odchodzimy od powodu calej dyskujsi. zsh nie jest domyslnym/standardowym shellem, więc jest to dodatkowa paczka ktora trzeba by na produkcji instalowac i pozniej utrzymac. zsh ma wiele fancy ficzerów, mozliwe ze jest lepsze od basha. Osobiscie uwazam, że cwiczenie pamięci i robienie wszystkiego z palca (względnie z manem) jest podstawą bycia profesjonalistą. Smialo sobie automatyzuj podpowiedzi, jakies zabawne aliasy. Dla mnie pięc literek w te czy we wte nie robi roznicy. Dzieki temu jak dostane "golego" basha, ja odnajdę sie szybko bez instalacji czegokolwiek, ty bedziesz narzekac "jakie to gowno". Zlej baletnicy ;)
@zskk: no ale proszę nie rób ze mnie ofiary, która nie potrafi się odnaleźć w powłoce, która nie jest jego ulubioną. Pracowałem w bashu, dashu, ashu, mkshu, kshu i fishu -- istota działania, może pomijając skryptowe rzeczy typu for (nie wiem co kierowało deweloperami fisha...), jest dokładnie taka sama: wpisujesz polecenie, które chcesz wykonać.
I co właściwie profesjonalnego jest w klepaniu z palca nazw plików podawanych jako argumenty?
Jeszcze rozumiem niechęć przed instalacją emacsa (choć podtrzymuję niechęć do vi(ma), eda i innych edytorów z minionej epoki), ale powłoka?
pozniej utrzymac
Właściwie jak się "utrzymuje" powłokę? Trzeba ją jakoś zabezpieczać przed ingerencją z zewnątrz? Blokować na firewallu? Działa ona jako demon? Dodaje własne moduły do jądra? Pytam jako potykający się o rąbek dopełniania amator, który wreszcie spotkał profesjonalistę na swej naznaczonej potknięciami drodze. ;)
PS
We FreeBSD, OpenWRT, OpenBSD, MirBSD (nawiasem mówiąc twórca to świetny facet!) i Grmlu (również!) bash nie jest domyślną powłoką, ba -- w każdym jest inna (nawet w jednym z nich jest to zsh właśnie). A to tylko kilka systemów, które przychodzą mi na myśl teraz. Nazywanie basha Domyślną Powłoką Świata™ jest nadużyciem.
@azhag: E no, luz w dupie panie :D nie probuje sie wywyższać pod zadnym pozorem. Raczej chodzi mi o to, że ciągłe cwiczenie pamięci jest podstawą w byciu profesjonalistą ;) Aczkolwiek doceniam podjęcie tematu i merytoryczną argumentację (do tego sensowną!) - tak bardzo tego brak w internetach. Nie robię z nikogo ofiary, nie wytykam ;) Staram się raczej wymagać od siebie (i moich pracownikow) umiejętnosci odnalezienia się "na już" w kazdym systemie który dostaną - a zakres to tylko pochodne debiana i redhata.
Co do utrzymania - chociazby aktualizacje. Nie mówie juz o zlosliwym kodzie, bo to jest odsiewane na wszystkich poprzednich etapach, ale o wszelkich błędach, memory leakach itp. Bash jest dużo starszym shellem, przeżyl wszystkie etapy okresu mlodzienczego.
Za to nie waż mi się nazywać vima przestarzałym :D za to należy się solidne ukręcenie wora :D jest to fantastyczny edytor, z możliwosciami daleko wybiegającymi poza zakres np sublime.
Zsh aktualizuje się dokładnie tak samo jak basha. Dzięki repozytoriom i pakietom nie trzeba nawet ślęczeć z kompilacją samodzielnie.
Bash jest dużo starszym shellem, przeżyl wszystkie etapy okresu mlodzienczego.
Bash powstał w 1988, zsh w 1990. Oba są w wieku, w którym dwa lata nie robią już żadnej różnicy. Ba, niewykluczone że w wielu kwestiach zsh odchorował co trzeba wcześniej -- cytując Fenia, jednego z deweloperów Debiana, komentującego, jeśli mnie pamięć nie myli, wydanie basha 4.0:
coś mi się zdaje, że roadmap basha to changelog zsh i to z dość odległej wersji ;)
Raczej chodzi mi o to, że ciągłe cwiczenie pamięci jest podstawą w byciu profesjonalistą ;)
Dziękuję, zapamiętałem już, że gdzie jest konfig Apache'a. Ale czy na pewno za każdym razem muszę wpisywać praktycznie całą ścieżkę ręcznie?
Co do sciezki - autocompletion scieżki jest out of box, wiec i tak wcale wiele klepania sciezki nie ma ;)
ale, jak pisałem gdzie indziej, dopełnianie działa inaczej: w zsh wystarczy wcisnąć tab kolejny raz lub użyć strzałek, żeby wstawić odpowiednie dopełnienie, w bashu tylko dostanę listę możliwych propozycji, którą muszę wpisywać dalej ręcznie.
@azhag: tylko pierwsza literke :P czepialstwo, osobiscie mnie irytowala okropnie ta opcja, bo często zdarzalo mi sie wybrac zla opcje, potem ctr+w usuwa cala sciezke i tak znowu z powrotem...
@azhag: a ja wrócę do tej dyskusji. Dzisiaj Fenia przepytalem z zsh - jest jego fanatykiem się okazuje ;) niemniej nie przekonal mnie, a co więcej - zupelnie zniechęcil do zsh opowiadając o jego zaletach :P
@azhag: raczej radosc. zsh to chory pomysl niedojebanych psychopatów. Oni jako zaletę chwalą się tym, że język jest niejednoznaczny! Aliasy mają i mogą byc tylko i wylącznie uzywane na początku. Uzywanie aliasu z kategorii G="|grep" i potem "komenda G cos" jest CHORE....
@zskk: nawet nie wiedziałem, że tak można :) Zresztą to, że powłoka umożliwia coś niestandardowego, nie znaczy przecież, że trzeba z tego korzystać.
Przypomniałem sobie jeszcze jedną fajną rzecz z zsh. Jeśli zacznę pisać "xyz" i dam strzałkę w górę, to przechodzi o ostatniego polecenia zaczynającego się od "xyz", zamiast jak w bashu przejść poprostu do ostatniego polecenia. Z tego powodu zresztą nie znoszę sudo, bo kompletnie wypacza tę funkcję. ;)
@zskk: w złożonych skryptach oczywiście lepsza jest konstukcja $( ... ), ale przy prostym jednolinijkowcu gravisy się sprawdzają (no i zawsze dwa znki zamiast trzech!111). Nawiasem mówiąc jskrypt fluxbox-generate_menu zawiera(ł) na początku dłuuuugi komentarz na temat dobrych praktyk przy ulepszaniu go, m.in. zalecał, jeśli mnie pamiięć nie myli, gravisy zamiast $( ... ) ze względu na większą przenośność.
PS
Nie chcę być "epicko patetyczny", ale słowo "deprecjonować" w języku polskim oznacza coś innego niż chyba Ci się wydaje.
@azhag: meh, faktycznie, za duzo ponglisza... a co do przenośności `` - 95% distro ma link symboliczny /bin/sh do /bin/bash to raz (nawet to chyba LSB uwzglednia). Dwa - ubuntowy dash akceptuje $(). Nie mam niczego egzotycznego aby przetestować gdzie indziej. A poza tym odsetek uzytkownikow tcsh csh czy ksh jest tak niewielki ze mam w dupie portowanie tego tam ;)
Comments
A to wszystko + więcej w oh-my-zsh
@akerro: oczywiscie ze nie. nikt na produkcyjnych maszynach nie bedzie instalowal dodatkowych shelli. trzeba nauczyc sie korzystac z basha na 105% z wszystkimi mozliwosciami. Mocna na prawde cuda robic z poziomu podstawowego shella. Prywatnie korzystam z sh jak najwiecej - wbrew pozorom to tez duzo potrafi. A wtedy - umiejąc basha/dasha/sh to na dowolnej maszynie wszystkie skroty klawiszowe beda po prostu dzialac. Przyzwyczajanie sie do rozwiązan niestandardowyc powoduje kompletne zagubienie na nowych innych maszynach.
@zskk:
nikt - 1
@azhag: wciąż, dostaniesz nowa maszynke do zabawy i jestes w dupie, bo brakuje ci wszystkiego co fancy ;)
@zskk: e tam, wystarczy doinstalować normalną powłokę (zsh) oraz normalny edytor (emacs) i już jest wszystko co potrzeba :)
Pomijając sytuacje gdy ma się pod opieką Gentoo, albo jeszcze gorzej jakiegoś AIX-a, wystarczy dosłownie moment
@azhag: pfff, wyjebalbym cie z pracy za to :) tylko bash i vim :)
produkcja jest święta. im mniej paczek tym mniej problemu
@zskk: pff, sam bym odszedł :) to w ogóle zgodne z prawem zmuszanie do korzystania z tak prymitywnych narzędzi? ;)
@azhag: heh, zalozylbym sie ze potrafie wiecej z bashem i vimem niz ty z twoimi ;) prawda jest taka ze zarowno emacs jak i zsh nie są w lsb, co je automatycznie dyskriminuje jako podstawowe narzędzia ;)
@zskk: LSB ma wiele niedoróbek
Chalenge accepted: włam się vimem przez sendmaila ;)
@azhag: heh, wolasz polecenie systemowe... ;) a co do emacsa... jest gnus - klient pocztowy dizalajacy z poziomu emacsa
@zskk: emacs ma wiele innych dziwnych rzeczy :D
@azhag: nie mowie ze jest zly. prywatnie - smialo. jednak ja jestem dosc ortodoksyjny, bo nie chcę się przyzwyczajac do "wygody" prywatnie, bo później nie odnajdę się na losowej maszynie. a co do produkcji, to trzymam wszystko uber-koszernie. Nie pozwalam na jakiekolwiek niedociągnięcia czy mozliwe niejasności ;)
@zskk: zgadzam się z tym co napisałeś na początku... ale częściowo. shell, bash, zsh, csh tak... ale jak pracujesz z wieloma programami na raz, to oh-my-zsh jest niezastąpione, podpowiadanie składni do wielu zadań? git rm [tab][tab] --cached (O TAK TO CHCIAŁEM). Komendę wykonuję raz na epokę, więc takie zachowanie powłoki mi bardzo opowiada, to samo jak raz dostałem obraz dysku .img - 4 partycje, dwie zaszyfrowane, każda z 4 w innym formacie plików, wiesz ile się męczyłem zanim zacząłem sobie podpowiadać składnie? każda ma inny blocksize, każda inny format, dużo łatwiej mi to wybrać z listy niż liczyć gdzie się zaczyna która partycja*blocksize...
@akerro: bash ma tez dobry system podpowiedzi (jak sobie zainstalujesz). W praktyce - brak podpowiedzi (moja opcja) zmusza mnie do ciąglego myslenia i pamietania, ergo - w przyszlosci nie bede goły i wesoly
@zskk: jakoś bash mnie nie odpowiadał, do zalet zsh dodam jedna historia komend, niezależna od ilości terminali, więcej domyślnych bindów i przyjaźniejsze ustawienia (case non-sensitive)
@akerro: to tez dziala w bashu (historia) :) a case-sensitivity to podstawa...
@zskk: wiem, że to jest w bashu... napisałem domyślny config przecież.
@zskk: czy w bashowym systemie podpowiedzi można sobie po podpowiedziach latać tabem i strzałkami?
Nawet po zainstalowaniu bash-completion, podpowiedzi w bashu są nieopisanie toporne (chyba, że trzeba to jakoś specjalnie skonfigurować). Zaczynam pisać coś w bashu, klikam dwa razy tab i szlag mnie trafia, bo ta prymitywna powłoka tylko podpowiada co mogę wpisać zamiast po prostu to "wpisać".
Obok braku definiowania katalogów (hash -d) oraz "skrótu" do which (=polecenie zamiast
which polecenie
) jest to jeden z powodów absolutniedyskryminującychdyskwalifikujących tę powłokę.Z plusów basha trzeba jednak oddać, że autorzy wielu programów sami tworzą podpowiedzi dla basha, dzięki czemu dla wielu dość niszowych programów są podpowiedzi. Ale to właściwie wynika tylko z popularności basha.
@azhag: ale odchodzimy od powodu calej dyskujsi. zsh nie jest domyslnym/standardowym shellem, więc jest to dodatkowa paczka ktora trzeba by na produkcji instalowac i pozniej utrzymac. zsh ma wiele fancy ficzerów, mozliwe ze jest lepsze od basha. Osobiscie uwazam, że cwiczenie pamięci i robienie wszystkiego z palca (względnie z manem) jest podstawą bycia profesjonalistą. Smialo sobie automatyzuj podpowiedzi, jakies zabawne aliasy. Dla mnie pięc literek w te czy we wte nie robi roznicy. Dzieki temu jak dostane "golego" basha, ja odnajdę sie szybko bez instalacji czegokolwiek, ty bedziesz narzekac "jakie to gowno". Zlej baletnicy ;)
@zskk: no ale proszę nie rób ze mnie ofiary, która nie potrafi się odnaleźć w powłoce, która nie jest jego ulubioną. Pracowałem w bashu, dashu, ashu, mkshu, kshu i fishu -- istota działania, może pomijając skryptowe rzeczy typu for (nie wiem co kierowało deweloperami fisha...), jest dokładnie taka sama: wpisujesz polecenie, które chcesz wykonać.
I co właściwie profesjonalnego jest w klepaniu z palca nazw plików podawanych jako argumenty?
Jeszcze rozumiem niechęć przed instalacją emacsa (choć podtrzymuję niechęć do vi(ma), eda i innych edytorów z minionej epoki), ale powłoka?
Właściwie jak się "utrzymuje" powłokę? Trzeba ją jakoś zabezpieczać przed ingerencją z zewnątrz? Blokować na firewallu? Działa ona jako demon? Dodaje własne moduły do jądra? Pytam jako potykający się o rąbek dopełniania amator, który wreszcie spotkał profesjonalistę na swej naznaczonej potknięciami drodze. ;)
PS We FreeBSD, OpenWRT, OpenBSD, MirBSD (nawiasem mówiąc twórca to świetny facet!) i Grmlu (również!) bash nie jest domyślną powłoką, ba -- w każdym jest inna (nawet w jednym z nich jest to zsh właśnie). A to tylko kilka systemów, które przychodzą mi na myśl teraz. Nazywanie basha Domyślną Powłoką Świata™ jest nadużyciem.
@azhag: E no, luz w dupie panie :D nie probuje sie wywyższać pod zadnym pozorem. Raczej chodzi mi o to, że ciągłe cwiczenie pamięci jest podstawą w byciu profesjonalistą ;) Aczkolwiek doceniam podjęcie tematu i merytoryczną argumentację (do tego sensowną!) - tak bardzo tego brak w internetach. Nie robię z nikogo ofiary, nie wytykam ;) Staram się raczej wymagać od siebie (i moich pracownikow) umiejętnosci odnalezienia się "na już" w kazdym systemie który dostaną - a zakres to tylko pochodne debiana i redhata.
Co do utrzymania - chociazby aktualizacje. Nie mówie juz o zlosliwym kodzie, bo to jest odsiewane na wszystkich poprzednich etapach, ale o wszelkich błędach, memory leakach itp. Bash jest dużo starszym shellem, przeżyl wszystkie etapy okresu mlodzienczego.
Za to nie waż mi się nazywać vima przestarzałym :D za to należy się solidne ukręcenie wora :D jest to fantastyczny edytor, z możliwosciami daleko wybiegającymi poza zakres np sublime.
@zskk:
Zsh aktualizuje się dokładnie tak samo jak basha. Dzięki repozytoriom i pakietom nie trzeba nawet ślęczeć z kompilacją samodzielnie.
Bash powstał w 1988, zsh w 1990. Oba są w wieku, w którym dwa lata nie robią już żadnej różnicy. Ba, niewykluczone że w wielu kwestiach zsh odchorował co trzeba wcześniej -- cytując Fenia, jednego z deweloperów Debiana, komentującego, jeśli mnie pamięć nie myli, wydanie basha 4.0:
Dziękuję, zapamiętałem już, że gdzie jest konfig Apache'a. Ale czy na pewno za każdym razem muszę wpisywać praktycznie całą ścieżkę ręcznie?
@azhag: hahaha :) Fenio jest na urlopie to nie potwierdze jego wersji :P on sam uzywa debiana, basha i podstawowych podstaw lsb :P
Co to zsh, to dobry punkt, nie wiedzialem ze jest tak stare ;)
Co do sciezki - autocompletion scieżki jest out of box, wiec i tak wcale wiele klepania sciezki nie ma ;)
@zskk:
ale, jak pisałem gdzie indziej, dopełnianie działa inaczej: w zsh wystarczy wcisnąć tab kolejny raz lub użyć strzałek, żeby wstawić odpowiednie dopełnienie, w bashu tylko dostanę listę możliwych propozycji, którą muszę wpisywać dalej ręcznie.
@azhag: tylko pierwsza literke :P czepialstwo, osobiscie mnie irytowala okropnie ta opcja, bo często zdarzalo mi sie wybrac zla opcje, potem ctr+w usuwa cala sciezke i tak znowu z powrotem...
@zskk:
znalazłem chwilę, żeby sprawdzić: bash i vi(m) również nie są, czy to je także dyskwalifikuje? ;)
@azhag: przyznam ze musi ci sie niezle w pracy nudzic :D pozniej zweryfikuję i się ustosunkuję ;)
@azhag: a ja wrócę do tej dyskusji. Dzisiaj Fenia przepytalem z zsh - jest jego fanatykiem się okazuje ;) niemniej nie przekonal mnie, a co więcej - zupelnie zniechęcil do zsh opowiadając o jego zaletach :P
@zskk: twoja strata ;)
@azhag: raczej radosc. zsh to chory pomysl niedojebanych psychopatów. Oni jako zaletę chwalą się tym, że język jest niejednoznaczny! Aliasy mają i mogą byc tylko i wylącznie uzywane na początku. Uzywanie aliasu z kategorii G="|grep" i potem "komenda G cos" jest CHORE....
@zskk: nawet nie wiedziałem, że tak można :) Zresztą to, że powłoka umożliwia coś niestandardowego, nie znaczy przecież, że trzeba z tego korzystać.
Przypomniałem sobie jeszcze jedną fajną rzecz z zsh. Jeśli zacznę pisać "xyz" i dam strzałkę w górę, to przechodzi o ostatniego polecenia zaczynającego się od "xyz", zamiast jak w bashu przejść poprostu do ostatniego polecenia. Z tego powodu zresztą nie znoszę sudo, bo kompletnie wypacza tę funkcję. ;)
@azhag: wolę klasyczne ctrl-R ;)
Szczerze powiedziawszy z basha wystarcza mi:
(oczywiście po uprzednim wpisaniu chsh -s =zsh i przeklnięciu basha ;))
@azhag: widac jak malo go znasz ;) nie uzywa się, co wiecej - są mocno deprecjonowane apostrofy ;)
@zskk: w złożonych skryptach oczywiście lepsza jest konstukcja $( ... ), ale przy prostym jednolinijkowcu gravisy się sprawdzają (no i zawsze dwa znki zamiast trzech!111). Nawiasem mówiąc jskrypt fluxbox-generate_menu zawiera(ł) na początku dłuuuugi komentarz na temat dobrych praktyk przy ulepszaniu go, m.in. zalecał, jeśli mnie pamiięć nie myli, gravisy zamiast $( ... ) ze względu na większą przenośność.
PS Nie chcę być "epicko patetyczny", ale słowo "deprecjonować" w języku polskim oznacza coś innego niż chyba Ci się wydaje.
@azhag: meh, faktycznie, za duzo ponglisza... a co do przenośności `` - 95% distro ma link symboliczny /bin/sh do /bin/bash to raz (nawet to chyba LSB uwzglednia). Dwa - ubuntowy dash akceptuje $(). Nie mam niczego egzotycznego aby przetestować gdzie indziej. A poza tym odsetek uzytkownikow tcsh csh czy ksh jest tak niewielki ze mam w dupie portowanie tego tam ;)
@zskk: Są w uniksowym świecie inne systemy niż dystrybucje Linuksa.
@azhag: nie mowie ze nie, nie mam jak przetestowac aby potwierdzic. z drugiej strony nikt nie bedzie instalowac fluxa na aixach :)
@zskk:
a jednak :D http://www.perzl.org/aix/index.php?n=Main.Fluxbox
@azhag: plus dla ciebie :P powinienem dodac, ze wyłączam ludzi z duzym poczuciem humoru ;)