Shell BASH - uvod

18.06.2006 20:14 | patie

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 19.06.2006 | 15:48
      Avatar blackhole_ventYl   Používateľ

      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.

      --- Cuchat s nadchou, to je ako sniffovat bez promiscu.
      • re: 19.06.2006 | 16:02
        Avatar blackhole   Návštevník

        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 20.06.2006 | 01:04
          Avatar blackhole_ventYl   Používateľ

          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.

          --- Cuchat s nadchou, to je ako sniffovat bez promiscu.
          • minidistra 20.06.2006 | 14:35
            Avatar blackhole   Návštevník

            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 19.06.2006 | 17:45
      Avatar blackhole   Návštevník

      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.

    • shell k vyskusaniu 19.06.2006 | 20:00
      Avatar blackhole   Návštevník

      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.

      • putty 20.06.2006 | 00:01
        Avatar blackhole_ventYl   Používateľ

        ma putty vobec konkurenciu?:)))

        ---
        Riadit pracu programatorov je ako past macky.

        --- Cuchat s nadchou, to je ako sniffovat bez promiscu.
        • co do konfiguracie, 20.06.2006 | 17:37
          Avatar blackhole   Návštevník

          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 20.06.2006 | 22:29
            Avatar blackhole_ventYl   Používateľ

            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.

            --- Cuchat s nadchou, to je ako sniffovat bez promiscu.
    • zaujimavy clanok 19.06.2006 | 23:03
      Avatar blackhole   Návštevník
      a tesim sa na pokracovanie. snad by som len doporucil lepsiu korekturu - v clanku je dost chyb, hlavne co sa y a i tyka :-) ale inak good. len tak dalej.
      • presne 20.06.2006 | 22:52
        Avatar blackhole_yurij   Používateľ
        presne tak. este obcas s a z. ale clanok celkom pekny. letmy uvod do problematiky. -- rozculovat sa nad sprostostou inych znamena ublizovat sam sebe
        -- rozculovat sa nad sprostostou inych znamena ublizovat sam sebe
    • Myslim si, ze tento clanek 20.06.2006 | 09:30
      Avatar blackhole   Návštevník

      Myslim si, ze tento clanek na bhole vazne nepatri

      • ak sa dostane ku komplexnym 20.06.2006 | 10:53
        Avatar blackhole_ventYl   Používateľ

        ak sa dostane ku komplexnym veciam skriptenia v bashi, preco nie, mozes to brat ako jemny uvod :)

        ---
        Riadit pracu programatorov je ako past macky.

        --- Cuchat s nadchou, to je ako sniffovat bez promiscu.
      • hmm 20.06.2006 | 13:37
        Avatar patie   Návštevník

        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.

        zivot je tazky - jeden z najtazsich
      • myslis? 20.06.2006 | 15:14
        Avatar blackhole_thomm   Používateľ

        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 20.06.2006 | 15:56
        Avatar blackhole   Návštevník

        keby boli na bhole clanky iba typu "ako som nabural nbusr" tak by tu tych clankov vela nebolo..

        podla mna je super
        __________
        zero

    • fortuna 20.06.2006 | 16:43
      Avatar blackhole   Návštevník
      heh, ked som videl tento clanok, tak mi pripomenul jednu Fornax-acku fortunu: Dedo: "Co je na bash-i lepsie?" Marek: "Pozri... ukazem ti to. Radsej si ale otvorim nove okno, lebo to neviem vratit spat..."
    • chsh 22.06.2006 | 18:01
      Avatar blackhole   Návštevník

      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.

      • jop 22.06.2006 | 18:53
        Avatar patie   Návštevník

        jasne preklepol som sa. vdaka. uz to aj opravujem.

        zivot je tazky - jeden z najtazsich
    • len tak ďalej 24.06.2006 | 13:30
      Avatar blackhole   Návštevník

      Pre mňa, ako absolútnu lamu, sú takéto články vítane.

    • uz chceme dalsiu cast :) 30.06.2006 | 11:08
      Avatar psycho   Používateľ
      uz chceme dalsiu cast :) nebud lenivy ;) --- -Human knowledge belongs to us...
      --- Pokrok je možný jedine vtedy, keď sa inteligentne porušujú zákony. Boleslav Barlog