ebook img

Shell v příkladech, aneb, Aby váš UNIX skvěle Shell PDF

396 Pages·2010·2.746 MB·Czech
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Shell v příkladech, aneb, Aby váš UNIX skvěle Shell

SShheellll vv ppřřííkkllaaddeecchh aanneebb AABBYY VVÁÁŠŠ UUNNIIXX SSKKVVĚĚLLEE SSHHEELLLL Libor Forst matfyzpress PRAHA 2010 i Všechna práva vyhrazena. Tato publikace ani žádná její část nesmí být re pro du ko vá na nebo ší ře na v žádné formě, elek tro nic ké nebo me cha nic ké, včetně fo to kop ií, bez pí sem né ho sou- hla su vydavatele. © Libor Forst, 2010 © MATFYZPRESS, vydavatelství Matematicko-fyzikální fakulty Univerzity Karlovy v Praze, 2010 ISBN 978-80-7378-152-1 ii OBSAH ABY VÁŠ UNIX SKV(cid:267)LE SHELL.........................................................................1 PODROBNÝ OBSAH...............................................................................................3 (cid:253)ÁST 1 ÚVOD.................................................................................................19 1.1. ZA(cid:253)NEME ZLEHKA...................................................................................21 1.2. P(cid:283)IDÁME PARAMETRY..............................................................................22 1.3. POPRVÉ KOMBINUJEME............................................................................24 1.4. DALŠÍ P(cid:283)ESM(cid:267)ROVÁNÍ.............................................................................26 1.5. NEPATRN(cid:267) P(cid:283)IDÁME................................................................................27 1.6. A ZASE UBEREME.....................................................................................28 1.7. ZAMETÁME STOPY...................................................................................29 1.8. DÁREK K NAROZENINÁM..........................................................................30 1.9. HV(cid:267)ZDI(cid:253)KA..............................................................................................31 1.10. ZÁLUDNÁ JMÉNA.....................................................................................32 1.11. PRVNÍ PROGRAM VSHELLU......................................................................34 1.12. PO(cid:253)ÍTÁNÍ SOUBOR(cid:291) LÉPE.........................................................................36 1.13. PO(cid:253)ÍTÁNÍ PODADRESÁ(cid:283)(cid:291).........................................................................38 1.14. PO(cid:253)ÍTÁNÍ DO HLOUBKY............................................................................39 1.15. ROZSAH (cid:283)ÁDEK........................................................................................42 1.16. SLOUPE(cid:253)KY.............................................................................................43 1.17. ZE SLOUPE(cid:253)KU (cid:283)ÁDKA.............................................................................45 1.18. A NAOPAK................................................................................................46 1.19. ST(cid:283)ÍHÁNÍ A SLEPOVÁNÍ JINAK..................................................................49 1.20. SEZNAM SKUPIN BEZ POMOCI...................................................................50 1.21. NA CO N(cid:291)ŽKY NESTA(cid:253)Í............................................................................52 DALŠÍ NÁM(cid:267)TY NA PROCVI(cid:253)ENÍ.............................................................................53 (cid:253)ÁST 2 PRÁCE SE SOUBORY.....................................................................21 2.1. POŠTOVNÍ SCHRÁNKA..............................................................................57 2.2. NOVÝ P(cid:283)ÍKAZ PRO SKLEROTIKY...............................................................59 2.3. NOVÝ P(cid:283)ÍKAZ PRO LENIVÉ.......................................................................60 2.4. NOVÝ P(cid:283)ÍKAZ PRO NEROZHODNÉ.............................................................62 2.5. KOPÍROVÁNÍ LINK(cid:291)..................................................................................65 2.6. P(cid:283)ESUN LINK(cid:291).........................................................................................67 2.7. JAK VYROBIT NIC.....................................................................................68 2.8. P(cid:283)ÍKAZ PRO DR. WATSONA......................................................................69 2.9. TAKHLE NE, MILÝ WATSONE...................................................................70 iii 2.10. KAŽDÉMU, CO MU PAT(cid:283)Í..........................................................................72 2.11. KDO JE KDO..............................................................................................73 2.12. T(cid:283)ÍD(cid:267)NÍ...................................................................................................74 2.13. T(cid:283)ÍD(cid:267)NÍ S KLÍ(cid:253)EM....................................................................................75 2.14. T(cid:283)ÍD(cid:267)NÍ S PROBLÉMY...............................................................................76 2.15. T(cid:283)ÍD(cid:267)NÍ „JINDE“......................................................................................77 2.16. UNIKÁTNÍ T(cid:283)ÍD(cid:267)NÍ...................................................................................78 2.17. NAJDI DESET ROZDÍL(cid:291)..............................................................................79 2.18. NA NÁVŠT(cid:267)V(cid:267) U DATABÁZÍ......................................................................80 2.19. VSTUP VERSUS PARAMETRY.....................................................................82 DALŠÍ NÁM(cid:267)TY NA PROCVI(cid:253)ENÍ.............................................................................84 (cid:253)ÁST 3 EDITORY..........................................................................................59 3.1. DÉJÀ VU...................................................................................................87 3.2. (cid:253)ÍSLA (cid:283)ÁDEK...........................................................................................89 3.3. SLOŽIT(cid:267)JŠÍ VÝB(cid:267)R....................................................................................90 3.4. P(cid:283)EHAZOVÁNÍ SLOUPC(cid:291)..........................................................................92 3.5. HLEDÁNÍ DUPLICIT...................................................................................94 3.6. HLEDÁNÍ (cid:253)ÍSEL........................................................................................95 3.7. HLEDÁNÍ SLOV.........................................................................................97 3.8. ST(cid:283)ELBA NA POHYBLIVÝ CÍL....................................................................98 3.9. DALŠÍ, PROSÍM.......................................................................................100 3.10. CYKLUS.................................................................................................102 3.11. P(cid:283)IDÁVÁNÍ (cid:283)ÁDEK.................................................................................104 3.12. ÚSCHOVNA ZAVAZADEL........................................................................106 3.13. CO NA NÁDRAŽÍ NESNÁŠEJÍ....................................................................107 3.14. JEŠT(cid:267) JEDNOU DO ÚSCHOVNY.................................................................109 3.15. ZALOMENÉ (cid:283)ÁDKY.................................................................................110 3.16. PAM(cid:267)(cid:289)...................................................................................................111 3.17. VERTIKÁLNÍ ZRCADLO...........................................................................113 3.18. LEPORELO..............................................................................................115 3.19. EDITACE SOUBORU.................................................................................116 3.20. AKTUÁLNÍ (cid:283)ÁDKA..................................................................................118 3.21. GLOBALIZACE........................................................................................119 3.22. HORIZONTÁLNÍ ZRCADLO......................................................................121 3.23. MAŠINKA...............................................................................................123 DALŠÍ NÁM(cid:267)TY NA PROCVI(cid:253)ENÍ...........................................................................127 iv (cid:253)ÁST 4 SHELL...............................................................................................87 4.1. EXPANZNÍ ZNAKY..................................................................................131 4.2. PROGRAMOVÁNÍ „ON-LINE“...................................................................132 4.3. POUŽITÍ PROM(cid:267)NNÉ................................................................................133 4.4. DEFINICE PROM(cid:267)NNÉ.............................................................................134 4.5. JAK NAMALOVAT „OBRÁZEK“................................................................135 4.6. PROM(cid:267)NLIVÁ (cid:283)ÁDKA.............................................................................138 4.7. ODD(cid:267)LOVA(cid:253) POLÍ..................................................................................140 4.8. ZPRACOVÁNÍ CHYB................................................................................142 4.9. ŠET(cid:283)ÍME DISKY......................................................................................143 4.10. (cid:253)TENÍ „PER PARTES“..............................................................................144 4.11. KDYŽ READ NE(cid:253)TE..................................................................................145 4.12. KDYŽ READ PARSUJE...............................................................................147 4.13. PARAMETRY...........................................................................................148 4.14. HELLO, WORLD......................................................................................149 4.15. ŠKATULATA, HEJBEJTE SE......................................................................150 4.16. DYNAMICKÝ VSTUP...............................................................................152 4.17. AK, PAK.................................................................................................155 4.18. AK, PAK, INAK.......................................................................................156 4.19. KDYŽ IF NESTA(cid:253)Í..................................................................................159 4.20. P(cid:283)ÍKAZ CASE NARUBY............................................................................161 4.21. CYKLUS S P(cid:283)EKVAPENÍM.......................................................................162 4.22. CYKLUS BEZ P(cid:283)EKVAPENÍ......................................................................164 4.23. CYKLUS, JAK HO (NE)ZNÁME.................................................................166 4.24. POTÍŽE S RELATIVITOU...........................................................................168 4.25. AMOEBA................................................................................................171 4.26. JAK NA PARAMETRY...............................................................................173 4.27. PARAMETRY LÉPE..................................................................................176 4.28. PARAMETRY DO T(cid:283)ETICE.......................................................................177 4.29. POSLEDNÍ PARAMETR.............................................................................182 4.30. NEZNÁMÝ FORMÁT................................................................................184 4.31. INTERAKTIVNÍ MAZÁNÍ..........................................................................185 4.32. REKURZE A PROM(cid:267)NNÉ..........................................................................188 4.33. REKURZE A PROCESY.............................................................................191 4.34. PROCESY A PROM(cid:267)NNÉ...........................................................................195 4.35. N(cid:267)CO O EFEKTIVIT(cid:267)...............................................................................201 4.36. O EFEKTIVIT(cid:267) JEŠT(cid:267) JEDNOU..................................................................203 4.37. KDYŽ TEXT NESTA(cid:253)Í..............................................................................207 DALŠÍ NÁM(cid:267)TY NA PROCVI(cid:253)ENÍ...........................................................................211 v (cid:253)ÁST 5 FILTR AWK....................................................................................213 5.1. ZASE OD PÍKY.........................................................................................215 5.2. PO(cid:253)ITADLO DÉLEK SOUBOR(cid:291).................................................................216 5.3. NENÍ REGEXP JAKO REGEXP...................................................................218 5.4. KONE(cid:253)NÝ AUTOMAT..............................................................................220 5.5. A ZASE SKUPINY....................................................................................223 5.6. SKUPINY S PARAMETREM.......................................................................225 5.7. TRUMFOVÉ ESO AWK...............................................................................228 5.8. UKAŽ, CO MÁŠ.......................................................................................231 5.9. INTERAKCE............................................................................................232 5.10. EDITACE.................................................................................................235 5.11. FORMÁTOVÁNÍ.......................................................................................237 5.12. KDYŽ (cid:283)ÁDKA NENÍ (cid:283)ÁDKA.....................................................................239 5.13. BLOKY (cid:283)ÁDEK.......................................................................................241 5.14. PARSER..................................................................................................243 5.15. KONFIGURACE PROGRAMU.....................................................................245 5.16. MAMINKA M(cid:267)LA PRAVDU......................................................................249 5.17. JAK NEPODLEHNOUT REKLAM(cid:267)..............................................................252 5.18. PODSOUVÁNÍ SOUBOR(cid:291)..........................................................................255 DALŠÍ NÁM(cid:267)TY NA PROCVI(cid:253)ENÍ...........................................................................257 (cid:253)ÁST 6 P(cid:283)ÍPADOVÉ STUDIE...................................................................257 6.1. STAHOVÁNÍ WEBOVÝCH STRÁNEK.........................................................261 6.2. STAHOVÁNÍ DO HLOUBKY......................................................................275 6.3. WWW NEWS.........................................................................................283 6.4. PROHLEDÁVÁNÍ POŠTY..........................................................................290 ABY VÁŠ UNIX SKV(cid:267)LE SHELL.....................................................................301 P(cid:283)ÍLOHA A: STRU(cid:253)NÝ P(cid:283)EHLED P(cid:283)ÍKAZ(cid:291).............................................303 A.1 VYBRANÉ UTILITY.................................................................................306 A.2 P(cid:283)ÍKAZ AWK............................................................................................323 A.3 P(cid:283)ÍKAZ ED..............................................................................................328 A.4 P(cid:283)ÍKAZ FIND..........................................................................................331 A.5 P(cid:283)ÍKAZ SED............................................................................................333 A.6 P(cid:283)ÍKAZ SH A JAZYK SHELLU...................................................................337 A.7 REGULÁRNÍ VÝRAZY..............................................................................346 A.8 T(cid:283)ÍDY ZNAK(cid:291).........................................................................................347 A.9 FORMÁTOVACÍ DIREKTIVY PRO PRINTF..................................................348 vi P(cid:283)ÍLOHA B: FORMÁTY POUŽÍVANÝCH ZDROJ(cid:291) DAT..........................349 B.1 POPIS VYBRANÝCH SOUBOR(cid:291).................................................................349 B.2 POPIS VYBRANÝCH SOUBOR(cid:291).................................................................351 LITERATURA......................................................................................................353 REJST(cid:283)ÍK.............................................................................................................355 vii viii Aby váš UNIX skv(cid:268)le shell... ...budete se muset nau(cid:254)it hodn(cid:268) trik(cid:292) a fígl(cid:292). Mnohé z nich pochytíte na Internetu, od známých a z jiných zdroj(cid:292), ale (cid:254)asem vám to jist(cid:268) nebude sta(cid:254)it a budete si chtít n(cid:268)které z nich upravit anebo dokonce sami napsat. P(cid:284)i tom se budete muset více (cid:254)i mén(cid:268) pono(cid:284)it do studia nástroje, bez n(cid:268)hož v opera(cid:254)ním systému unixového typu neud(cid:268)láte prakticky nic. Tím nástrojem je shell. Termín shell ozna(cid:254)uje jednak interpret p(cid:284)íkaz(cid:292) – tedy tu sou(cid:254)ást ((cid:254)i spíše nadstavbu) systému, která (cid:254)te a vykonává p(cid:284)íkazy zadané uživatelem – a jednak vlastní jazyk tohoto interpretu. Tato kniha vám nabídne stru(cid:254)ný p(cid:284)ehled t(cid:268)ch nejd(cid:292)ležit(cid:268)jších vlastností shellu a základních pomocných program(cid:292), tzv. utilit, které se p(cid:284)i práci v shellu používají. To vše se budeme snažit ukázat na praktických p(cid:284)íkladech. Pokud si budete zkoušet úlohy (cid:284)ešit sami a p(cid:292)jdete na to jinak, neznamená to, že jste ud(cid:268)lali chybu. Cest k cíli vede vždycky více a ty naše sledují p(cid:284)edevším ur(cid:254)itý didaktický cíl. N(cid:268)která (cid:284)ešení proto nepokrývají beze zbytku daný problém – pokud by takové (cid:284)ešení bylo vy(cid:254)erpávající, vy(cid:254)erpalo by totiž p(cid:284)edevším (cid:254)tená(cid:284)e... Kniha si rozhodn(cid:268) neklade za cíl postihnout téma n(cid:268)jakým systematickým výkladem. Takových knih popisujících vlastnosti, architekturu (cid:254)i ideové ko(cid:284)eny UNIXu existuje celá (cid:284)ada. Naše kniha se snaží uvést (cid:254)tená(cid:284)e do stylu, jakým se v shellu programuje. Vychází tedy z praktické pot(cid:284)eby – z podobné praktické pot(cid:284)eby, z jaké opera(cid:254)ní systém UNIX p(cid:284)ed bezmála (cid:254)ty(cid:284)iceti lety sám vyvstal. Pro práci s touto knihou bude dobré mít p(cid:284)ístup na n(cid:268)jaký po(cid:254)íta(cid:254) se systémem unixového typu. Jaký konkrétn(cid:268) to bude, je vícemén(cid:268) nezajímavé – budeme se totiž snažit používat jen takové vlastnosti, které vyhovují nejen rozli(cid:254)ným normám ale dokonce i existujícím systém(cid:292)m. Ostatn(cid:268) samotné slovo „UNIX“ budeme používat v tom smyslu, jaký mu dali jeho tv(cid:292)rci dávno p(cid:284)ed tím, než si ho všimla komerce. Pokud by se n(cid:268)kdo domníval, že má na toto slovo výhradní právo (a že už v minulosti takové snahy byly), m(cid:292)žeme zodpov(cid:268)dn(cid:268) (cid:284)íci, že je nám to hluboce líto... Pokud se n(cid:268)kde budeme odvolávat na normu, budeme mít na mysli dokument [1] (jemuž se také krátce (cid:284)íká „POSIX“) a budeme to (cid:254)init bez p(cid:284)ehnané víry v to, že nás i vás to ochrání od problém(cid:292) s p(cid:284)enositelností našich program(cid:292). Takže si najd(cid:268)te libovolný UNIX, za(cid:284)i(cid:263)te si na n(cid:268)m ú(cid:254)et (tedy uživatelské jméno a heslo), p(cid:284)ihlaste se na n(cid:268)j a oto(cid:254)te stránku... 1 Pod(cid:268)kování P(cid:284)edevším bych cht(cid:268)l pod(cid:268)kovat svojí žen(cid:268) Lence a syn(cid:292)m Martinovi, Antonínovi a Albertovi, že to vydrželi... Neocenitelnou pomoc mi poskytl kolega Dan Lukeš svými up(cid:284)esn(cid:268)ními, radami (cid:254)i poznámkami, i když se všemi opravdu, ale opravdu nemohu souhlasit... Velký dík pat(cid:284)í i koleg(cid:292)m, kte(cid:284)í m(cid:268)li na starosti korekturu a recenze. Nejenom že p(cid:284)isp(cid:268)li k vyšší „štábní“ kultu(cid:284)e, ale odhalili celou (cid:284)adu chyb, v(cid:254)etn(cid:268) t(cid:268)ch nenápadných, které ten, kdo zná dop(cid:284)edu ideu v(cid:268)ty, odstavce (cid:254)i programu, má pramalou šanci odhalit. A kone(cid:254)n(cid:268) chci pod(cid:268)kovat Joelovi Berglundovi za nádherný obrázek perlorodky (cid:284)í(cid:254)ní, našeho kriticky ohroženého živo(cid:254)icha, který je, stejn(cid:268) jako já a brzo i vy, životn(cid:268) závislý na shellu... 2

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.