Serial je urceny zaciatocnikom pripadne mierne pokrocilim a budem sa snazit aby tejto teme pochopil kazdy (pokrocilejsim sa moze zdat ze je to pisane moc infantilne:). Z nazvu vypliva pojde o serial tykajuci sa shellu, konkretne BASH. Na zaciatok dame nieco z historie a teorie (naozaj minimalne), v dalsich castiach sa naucime nakonfigurovat bash, zivotne dolezite prikazy a skriptovat v BASH-i.
Ak nemate zaujem o strohu teoriu a historiu tak prejdite niekde k ruhej polovicke tohto serialu alebo tuto cast serialu ani necitajte a pockajte si na dalsiu..
Jeden s prvych shellov je Bourne shell (sh), postupom casu prisli dalsie ako bourne again shell (BASH), C shell (csh), TENEX C shell (tcsh), korn shell (ksh), Z shell (zsh).... pre vacsiu funkcionalitu a komfort. BASH je GNU verziou originalneho unixoveho shellu bourne shell a je s nim aj spatne kompatibilny, bol naprogramovany v roku 1987 autormi Brian Fox a Chet Ramey. BASH obsahuje mnohe features z inych shellov ako ksh a csh. Vyhody BASHu su napriklad: skriptovanie, editacia shellu, historia (prezerat si ju mozte bud v logu, prikazom history alebo sipkami hore/dole), POSIX norma, PPID premenne, aritmeticke vypocty, podpora dokoncovania prikazov.. V bash-i je napisana asi vacsina linux shell skriptov.. podla mna mnoho uzivatelov tento shell nedocenuje.
Shell je textove rozhranie medzi operacnym systemom a uzivatelom. Niekedy sa mu hovori aj interpreter alebo prikazovy riadok (pojem prikazovy riadok s tymto nerad spajam kedze sa mi vzdy vybavy dost primitivny m$ prikazovy riadok). Shell cita prikazy zo vstupu(subor,terminal..) a komunikuje z jadrom, jadro z hw........ Strucne....
Napiseme do shellu prikaz na spustenie nejakeho programu -> shell spracuje poziadavku na taku ktorej system rozumie -> odosle ju systemu -> a bud jej system vyhovie(spusti sa program) alebo nie a vrati spravu(vacsinou sa zobrazi hlaska o chybe). Ked program skonci(me) a system nas vrati do shellu. Unixovy shell je vemi univerzalny a silny nastroj. Skriptovanie v shell automatizuje mnoho prikazov, ktore by sme museli inak vypisovat do shellu manualne znova a znova.. Samozrejme dokaze ovela viac ako len spustat prikazy, podporuje premenne, riadiace struktury ako podmienky, cykly a podobne. Aby sme vedeli taketo skripty pisat treba najskor pochopit ako shell pracauje, jeho syntax taktiez je dobre poznat systemove prikazy - predpokladam ze ovladate aspon tie zakladne. Kedze sa jedna o interpretovany jazyk, skripty sa neprekladaju (nekompiluju) a tak nebudete potrebovat ziadne extra vyvojove nastroje ale postaci textovy editor v ktorom budete neskor pisat skripty - vi, vim, emacs, pico... pripadne iny, kazdemu podla chuti.
Ak neviete aky mate shell vpiste do shellu: echo $SHELL
Priklad:
$ echo $SHELL
$ /bin/bash
Zmenit shell si mozte cez chsh.
ak by nas zaujimali vsetci uzivatelia tak si to lahko pozrieme napriklad tu:
cat /etc/passwd.
pripadne si to mozte este vyGREPovat..
Zoznam shellov dostupnych v systeme
cat /etc/shells.
K BASHu su priznacne subory (skripty) .bash_profile, .bashrc, .bash_login, .bash_history alebo len .history pripadne dalsie "bash*oidne" subory :) Tieto subory sluzia na konfiguraciu samotneho shellu, ako logy...
Kazdy riadok v shelli zacina prompt-om. Napriklad:
uzivatel@server:~$
Prompt si mozme podla chuti samozrejme rozne nastavit. O tom ako na to si povieme v nasledujucom seriali ktora sa bude tykat konfiguracnych suborov. Potom nasleduje kurzor ktory pokial vidite mozte zadavat prikazy, to je vam snad jasne ;] Ak ho nevidite a kurzor je na zaciatku riadku zrejme system vykonava nejake ulohy.
(Ak vieme co robime! mozme toto vykonavanie prerusit skratkou ctrl+C)
Skor ako zacneme odporucam pozret - man bash :) jedna sa o obsiahli manual k bash-u a tiez help bash_prikaz popise dany prikaz.. skor ci neskor sa to urcite prida..
To by bol nejaky uvod... nabuduce sa pozreme na bash konfiguracne subory... akekolvek otazky piste pod clanok pripadne do boardu sem: BASH serial - board
snad len mozno dodat, ze casto byva na linuxoch miesto /bin/bash pouzivany symlink /bin/sh -> /bin/bash, hlavne z toho dovodu, ze povodny sh shell sa na linuxoch casto NEvyskytuje, co naopak neplati napriklad na FBSD, kde je sh shell standardny predvoleny a /bin/sh nie je linkom na /bin/bash
---
Riadit pracu programatorov je ako past macky.
k tomu mozem ja dodat, ze som sa nestretol s linuxovym distrom, ktory nema link /bin/sh (a defaultne ukazuje na bash). aj ine nastrojoe maju takyto symlink (cc ci awk). je to kvoli tomu, aby sa mohli skripty spoliehat na tieto nastroje a aby mohli byt viacere verzie v systeme (verzie gcc, mawk/gawk).
---
Ale je to smutná epocha, keď je ľahšie rozbiť atóm ako predsudky. Einstein.
su minidistra, ktore nemaju bash, ale iny shell... ale pravdu mas, ze pri distrach beznych velkosti a pouzitia je to pravidlom
---
Riadit pracu programatorov je ako past macky.
ano, minidistra som nechal bokom. tie vacsinou pouzivaju busybox.
---
Ale je to smutná epocha, keď je ľahšie rozbiť atóm ako predsudky. Einstein.
no to je dosledkom pouzivanie gnu toolov ktore maju predpony g (gawk,gcc,gdb),a jedna sa o snahu udrzat tie skripty spatne kompaibilne s inymi systemami:) kde je awk atd.
no aby sme neostali len pri teorii a mudrostiach inych (patie, tento serial vyzera byt kvalitny a uzitocnz pre noviceov :)) prejdime k cinom. Kto ma zaujem si nejaky ten BASH vyskusat, odporucam sa zaregistrovat tu. Kto pouziva operacne systemy Windows odporucam SSH klienta PuTTY.
ma putty vobec konkurenciu?:)))
---
Riadit pracu programatorov je ako past macky.
co do konfiguracie, pouzitelnosti a flexibility je to nadherne prepracovany tool pre windows a jednoduche ovladanie. Osobne si myslim, ze velmi pomaha nazriet do, pre niekoho neznamych, zakuti Un*x-ovych systemov, a tak priblizit windowsakom skutocny multitaskingovy system :). svoje prve shell konto (bol to nejak proprietarny un*x) som dostal, ked som mal 10 a viem o com hovorim, vsetci kamarati na mna pozerali ked som im povedal, ze posielam maily cez elm :)
mne zachutil pine, ale co budem hovorit... svojho casu redhat 6 alebo 7... potom som od tamojsieho administratora dostal vsetky instalacky po vyjdeni novej verzie ako dar, takze som mal zbierku od rh 6.2 az po 9, fedoru som uz nechcel :)
---
Riadit pracu programatorov je ako past macky.
Myslim si, ze tento clanek na bhole vazne nepatri
ak sa dostane ku komplexnym veciam skriptenia v bashi, preco nie, mozes to brat ako jemny uvod :)
---
Riadit pracu programatorov je ako past macky.
preco by nepatril ? ako som napisal je to uvod k serialu.. serialu pre zaciatocnikov. ak by som zacal od stredu asi nie vsetci pochopia o com tam ide.
neviem, ale keby som usudzoval podla ankety, ktora tu niekedy minule bola [http://blackhole.sk/node/622] tak taky clanok je tu velmi vitany: totiz ak predpokladame, ze je pre "plebs / lamerov" a zaroven bude kvalitny [verim ze bude:)] tak spolu ho chce 463 userov:)
keby boli na bhole clanky iba typu "ako som nabural nbusr" tak by tu tych clankov vela nebolo..
podla mna je super
__________
zero
Je tam preklep, shell sa meni cez chsh ,
alebo priamo cez #chsh -s /usr/local/bin/bash
Pekný článok. Hor sa do pokračovania.
jasne preklepol som sa. vdaka. uz to aj opravujem.
Pre mňa, ako absolútnu lamu, sú takéto články vítane.