Hlavní navigace

Úvod do skriptování v Linuxu

Jakub Šťastný 31. 8. 2007

Unixové systémy byly odjakživa vývojářským rájem a vývojářské nástroje zde nebyly nikdy před zraky běžných uživatelů nikterak skrývány. Že programovat neumíte? Chtěli byste umět psát alespoň jednoduché systémové skripty? Zjednodušovat si svou každodenní práci s počítačem?

Co očekáváme?

Programování má mnoho možností a záleží na nás, co od programovacího jazyka očekáváme. Dnešní článek je zaměřen na jazyky skriptovací. Ty zpravidla byly vhodné na zpracování textu, pro psaní systémových skriptů, tvorbu webů a podobně, doba však pokročila a s dnešními skriptovacími jazyky již můžeme plnohodnotně psát i GUI, tedy grafické uživatelské rozhraní, lidově řečeno „okýnka”, stejně dobře jako větší programy a aplikace.

Jaký je rozdíl mezi skriptovacími a kompilovanými jazyky?

Kromě jazyků skriptovacích existují ještě evolučně původnější jazyky kompilované. Mezi ně patří například assembler, C nebo Fortran. Kdežto skript slouží jak jako zdrojový kód, který editujeme, tak jako vlastní program, u kompilovaných jazyků musíme zdrojový kód zkompilovat, čímž vznikne binárka, což je vlastní výkonný program.

Skriptovací jazyky jsou obecně vysokoúrovňové jazyky s velkou dávkou abstrakce, díky níž jsou mnohem intuitivnější a zároveň úspornější ve vyjadřování. Vývoj v nich je mnohem rychlejší, ale jsou zase pomalejší než jazyky kompilované. Velmi dobře se hodí jak na vlastní programování, tak třeba také na prototypování. Až na některé shelly jsou snad všechny multiplatformní.

Z jakých jazyků máme na výběr?

Shell

Narozdíl od humorné parodie na shell ve Windows jsou unixové shelly plnohodnotými programovacími nástroji, které nelze jen tak ignorovat. S ostatními skriptovacími jazyky si příliš nekonkuruje, spíše se vhodně doplňují, protože ne na všechno se shell hodí a ne na všechno je nutné použít klasický skriptovací jazyk.

Shell lze použít na zpracování textu či nejrůznější systémové skripty, zde je opravdu k nezaplacení, na weby se však nehodí a grafické rozhraní zde také nevykouzlíte, budete-li potřebovat něco více než nabízí zenity, xdialog a podobné programy.

Na Linuxu bezpochyby nejčastější je BASH, nástupce prapůvodního SH, není však zdaleka jediný. Skvělým shellem je například také CSH či jeho novější alternativa TCSH, KSH nebo třeba také ZSH, který je bez debat mezi shelly jeden z nejlepších.

Perl

Nejstarší klasický skriptovací jazyk je patrně Perl. Zřetelně jsou na něm vidět rysy jazyku C, z kterého vychází. Za jeho výhody jsou považovány velké možnosti při zpracování textu, což je sice pravda, na druhou stranu jimi dnes disponují přinejmenším některé další skriptovací jazyky také. Co se však Perlu rozhodně upřít nedá, je úžasná úspornost, s níž lze kód vyjádřit – bohužel však na úkor čitelnosti. Vůbec syntaxe Perlu je zvláštní, velmi volná a začátečníky může svádět ke špatným programátorským návykům.

Co se dokumentace týče, nelze si díky jeho zavedenosti stěžovat – ať již sháníte dokumentaci v angličtině, češtině či třeba eskymáčtině, jistě ji najdete.

Ačkoliv moderní trend dneška volá spíše po Pythonu, Ruby, Javě a dalších jazycích, i dnes má Perl na webech své významné místo – využívá jej například i redakční systém vašeho oblíbeného serveru.

Krom již zmíněné podivné syntaxe má Perl ještě jednu velkou nevýhodu – je starý a nejsou v něm v adekvátní míře reflektovány novější trendy, jako je například tzv. objektově orientované programování. Ačkoliv se jedná o mocný jazyk, začátečníkům o programování bych spíše doporučil níže uvedený Python nebo Ruby.

Blaničtí rytíři, Hurd a Perl 6

Dávná pověst praví, že až bude zemi s velbloudem ve znaku nejhůře a nepřátelé se na ni pohrnou ze všech čtyř světových stran, příjde Perl 6, mocný a neporazitelný, všechny je tam rozpráší a nepřátele zažene.

Fakticky se situace má tak, že ačkoliv se Perl stává spíše minulostí než budoucností, pythonisté, rubyisté a další -isté dotírají víc a víc, již přes deset let slibovaný Perl 6 zatím stále uvolněn není. Ale všichni stále tvrdí, že už bude co nevidět…

Python

Poslední dobou se ve velké míře prosazuje skriptovací jazyk Python, který je jednoduchý a intuitivní, přitom však velmi mocný a poměrně slušně rychlý. Dokumentace k němu je dost a docela i té české, a v Pythonu se dá bez problémů programovat i GUI, důkazem čehož může být například populární IM klient Gajim a mnohé další programy. Schválně dejte zkusmo odinstalovat Python ze systému, uvidíte, kolik programů na něm závisí.

Pythonu patří nemalé místo také na webových stránkách, ostatně bylo v něm napsáno spoustu webových frameworků – za všechny jmenujme třeba Django a CherryPy. Mají mnoho do sebe a pokud děláte weby, určitě stojí alespoň za vyzkoušení.

Ruby

Téměř všechny atributy Pythonu, které jsem jmenoval, by se daly použít i na jeho mladšího japonského bratříčka Ruby. Ruby je striktně objektově orientovaný jazyk se skvělou podporou všech důležitých objektových technik. Osobně Ruby považuji za nejintuitivnější jazyk vůbec, což jej předurčuje jako ideální jazyk na učení se programování.

Na webech je Ruby jako doma – dá se buď použít přímo nebo lze využít webový framework Ruby on Rails.

A nevýhody? Našly by se – v prvé řadě je to nepodpora unicode, ale řekněme si na rovinu, že Ruby není zdaleka jediný jazyk, který si s unicode tak docela nerozumí, ostatně ani pythonní rozlišování řetězců a řetězců v unicode není příliš velká výhra.

Pokud je pro vás angličtina denním chlebem, nemá smysl řešit dostupnost dokumentace pro Ruby – je ji spoustu a to velmi kvalitní. To se však již nedá říct o dokumentaci české, které je méně.

Další skriptovací jazyky

Z dalších populárních jazyků jsem nejmenoval PHP, které patří na weby a na systémové skriptování se příliš nehodí, o programování složitějších aplikací ani nemluvě. Kdybyste však po tom tak mermomocí toužili, PHP má vazbu například i na GTK a lze v něm tedy teoreticky psát i grafické rozhraní.

Velmi pěkným jazykem je také Lua, velmi minimalistický a hlavně dokonale rozšiřitelný jazyk. V systému jej moc nenajdete, i když výjimky také existují – využívá ji například správce oken ION.

Dalším drobným skriptovacím jazykem je JavaScript, který se těší velké oblibě na webech zejména v souvislosti s populární technologií Ajax. Používá se jako vestavěný jazyk například ve webových prohlížečích nebo prohlížečích PDF.

Závěr

Dnes jsme se věnovali jednotlivým skriptovacím jazykům, příště si řekneme, v čem se zdrojový kód edituje a hlavně jak se spouští. V článku jsem se dopustil několika zjednodušení, zkušenější nechť prominou, ale článek je určen začínajícím.

Našli jste v článku chybu?

1. 9. 2007 14:48

Biktop (neregistrovaný)
Správně! Proč by nemohl být BASIC tím pravým ořechovým - hlavně když to uklohnili v microsoftí kuchyni, je to pro LO dostatečným důvodem k jásotu.
Že vás to ještě baví, vy za to opravdu musíte být placený. Je to jako by byl někdo placený za to, že do vědeckých diskusí neustále píše, jak evoluce nefunguje a jak je země placatá a spočívá na hřbetě obrovské želvy.

6. 9. 2007 14:40

uživatel si přál zůstat v anonymitě
Program v Perlu je čitelný podle toho, jak si ho napíšete.
Ale hlavně, v Perlu se dají strašně snadno skripty opravovat a aktualizovat, protože Perl má příkaz GOTO !!!
A když si prinicipiálně od začátku Labely pojmenujete podle funkčního obsahu, tak je to lepší než (neaktualizovaná) dokumentace.
P.S.
To se ale nějak nesmí říkat, protože všichni teoretici musí vše buď struktutované anebo objektivní.
Proto máme ale tolik chyb v programech (a skriptech zvlášť), protože bez GOTO už v nich nikdo nikd…




Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Root.cz: 250 Mbit/s po telefonní lince, když máte štěstí

250 Mbit/s po telefonní lince, když máte štěstí

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Podnikatel.cz: Na poslední chvíli šokuje výjimkami v EET

Na poslední chvíli šokuje výjimkami v EET

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Vitalia.cz: Dáte si jahody s plísní?

Dáte si jahody s plísní?

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“