Ubun­tu i Bash, od cze­go zacząć?

Piszę z zawo­do­wą spra­wą, pyta­niem do eks­per­ta Linu­xa. Kie­dyś przez krót­ki czas korzy­sta­łem z Min­ta, ale posta­no­wi­łem się poznać go na porząd­nie korzy­sta­jąc z naj­pow­szech­niej­szej wer­sji – Ubun­tu.
Czy możesz mi pole­cić co powi­nie­nem poznać by poru­szać się po nim spraw­nie oraz gdzie/jak mogę tego doko­nać (szko­le­nia, tuto­ria­le)?
Dodat­ko­wo możesz mi wytłu­ma­czyć popu­lar­ność Basha, dla­cze­go jest tak waż­ny? Jego też bym chciał poznać więc wszel­kie wska­zów­ki do nauki mile widzia­ne.

Ubun­tu będzie cał­ko­wi­cie w porząd­ku do nauki sys­te­mów GNU/Linux. Obec­nie obok Cen­tos zda­je się być stan­dar­dem zarów­no na desk­to­pach jak i na ser­we­rach. Włącz­nie z tym, że bez skła­da­nia spe­cjal­ne­go zamó­wie­nia, mój służ­bo­wy kom­pu­ter przy­szedł wła­śnie z Ubun­tu na pokła­dzie. Obec­nie korzy­stam z Ubun­tu Stu­dio, któ­re uła­twia mi kon­fi­gu­ra­cję i pra­cę z mul­ti­me­dia­mi, któ­rą dość czę­sto wyko­nu­ję.

W spra­wie porząd­nej nauki Ubun­tu gorą­co pole­cam Ci książ­kę Ubun­tu. Ofi­cjal­ny pod­ręcz­nik. Wyda­nie VIII. Nie jest dro­ga, a zawie­ra cał­kiem faj­nie przed­sta­wio­ne roz­ma­ite aspek­ty sys­te­mu nie tyl­ko dla począt­ku­ją­cych, ale rów­nież dla zaawan­so­wa­nych. Poza książ­ką naj­prost­szą meto­dą ucze­nia się sys­te­mu jest wyszu­ki­wa­nie roz­wią­zań swo­ich pro­ble­mów w sie­ci i wpro­wa­dza­nie ich w życie oraz samo­dziel­ne kom­bi­no­wa­nie bez oba­wy o zepsu­cie sys­te­mu. Zakła­da­jąc, że będziesz robił kopię zapa­so­wą waż­nych dla sie­bie danych ponow­na insta­la­cja sys­te­mu zaj­mie zale­d­wie kil­ka­dzie­siąt minut.

Dobry­mi ser­wi­sa­mi zawie­ra­ją­cy­mi infor­ma­cje, porad­ni­ki oraz arty­ku­ły o cie­ka­wych pro­gra­mach są WebUp­d8 oraz OMG! Ubun­tu!.

Bash wywo­dzi się z cza­sów, kie­dy inter­fej­sy gra­ficz­ne jesz­cze nie ist­nia­ły, a potem przez dłu­gi czas nie były zbyt powszech­ne. W tam­tym okre­sie do wyko­ny­wa­nia akcji takich jak obli­cze­nia na pod­sta­wie danych z otrzy­ma­ne­go doku­men­tu i two­rze­nie gra­fów oraz innych form prze­twa­rza­nia wyma­ga­ło łącze­nia ze sobą wie­lu małych pro­gra­mów (takich jak AWK/SED – prze­twa­rza­nie doku­men­tu czy bc – wyko­ny­wa­nie obli­czeń). Two­rząc taki zbiór komend połą­czo­nych ze sobą zna­ka­mi | (prze­każ wyj­ście do następ­nej komen­dy) lub && (po zakoń­cze­niu wyko­naj nastę­pu­ją­cą komen­dę) za pomo­cą jed­nej linij­ki jeste­śmy w sta­nie na przy­kład pobrać wszyst­kie wystą­pie­nia dane­go sło­wa w pli­kach i poli­czyć je wyko­nu­jąc następ­nie na pod­sta­wie tej infor­ma­cji wpro­wa­dze­nie nowe­go rekor­du do bazy danych. Takie linij­ki nazy­wa­my one-line­ra­mi.

Stop­nio­wo łączo­ne ze sobą pro­gra­my sta­wa­ły się co raz bar­dziej skom­pli­ko­wa­ne i dal­sze trzy­ma­nie ich w jed­nej linij­ce nie mia­ło sen­su. Powo­do­wa­ło, że były one kom­plet­nie nie­czy­tel­ne i nie­moż­li­we do dal­sze­go roz­wi­ja­nia, nie mówiąc już o ponow­nym wpro­wa­dza­niu. Zaczę­to zapi­sy­wać je w skryp­tach (pli­kach tek­sto­wych z roz­sze­rze­niem *.sh zawie­ra­ją­cych listę instruk­cji do wyko­na­nia). Bash jest jed­nym ze śro­do­wisk, w któ­rych może­my wyko­ny­wać nasze komen­dy. Dostar­cza do tego celu mecha­ni­zmy pętli oraz instruk­cji warun­ko­wych, któ­re uła­twia­ją two­rze­nie pro­gra­mów (pury­ści lubią trzy­mać się nazy­wa­nia ich skryp­ta­mi) wyko­nu­ją­cych za nas skom­pli­ko­wa­ne zada­nia bez potrze­by nasze­go czu­wa­nia nad ich wyko­na­niem i podej­mo­wa­nia kolej­nych decy­zji. Jest to zatem świet­ne narzę­dzie do auto­ma­ty­za­cji zadań wyko­ny­wa­nych w sys­te­mach z rodzi­ny Unik­sa (od nie­daw­na rów­nież MS Win­dows). War­to jed­nak pamię­tać, że bash to jedy­nie śro­do­wi­sko i zestaw pod­sta­wo­wych funk­cji. Zaawan­so­wa­ne zada­nia może­my reali­zo­wać dzię­ki zesta­wom apli­ka­cji dostar­cza­nych w pakie­tach takich jak coreutils. To dzię­ki nim w sys­te­mie poja­wia­ją się apli­ka­cje awk/sed/cron (pla­no­wa­nie auto­ma­tycz­ne­go wyko­na­nia zadania)/bc i wie­le innych. Two­rzo­ne przez nas linij­ki czy skryp­ty są w rze­czy­wi­sto­ści kom­pi­lo­wa­niem ich funk­cji ze sobą, tak byśmy nie musie­li żmud­nych zadań wyko­ny­wać samo­dziel­nie.

Do nauki basha i pozo­sta­łych narzę­dzi linii komend pole­cam: nixCraft (publi­ku­ją świet­ne porad­ni­ki), Serię Bash by exam­ple” od IBM, SEDAWK” na stro­nie Grze­go­rza Nale­py, kie­dyś O’Reilly wyda­ło świet­ną książ­kę sed & awk, któ­ra zosta­ła nawet wyda­na u nas przez Helion, ale nie­ste­ty cięż­ko jest nasze rodzi­me wyda­nie gdzie­kol­wiek jesz­cze dostać. Tu podob­nie jak w przy­pad­ku sys­te­mu Ubun­tu, dobrze jest uczyć się kom­bi­nu­jąc i sta­ra­jąc się zro­zu­mieć roz­wią­za­nia przed­sta­wia­ne onli­ne dla pro­ble­mów, któ­re mamy do roz­wią­za­nia.

Gra­fi­ka Ubun­tu dzię­ki uprzej­mo­ści Cano­ni­cal Ltd. udo­stęp­nio­na na licen­cji CC BY-SA 3.0.

Podobne wpisy