Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Úvod do skriptování v Linuxu

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?

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

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.

davame_internetu_obsah
       

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.

Jakub Šťastný

Jakub Šťastný

Jakub Šťastný byl v letech 2007 až 2008 redaktorem serveru Root.cz. Mezi jeho zájmy patří Linux, programování a typografický systém TeX.

Školení: Linux – Firewall, Samba, VPN

Na třídenním školení se naučíte nainstalovat a spravovat Firewall a Router, SAMBA Doménový a Souborový server. Dále si zprovozníte vlastní, zabezpečený VPN server.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,99

Přehled názorů

A proč ne PHP?
Techi 31. 8. 2007 00:35
Nový
├ 
Re: A proč ne PHP?
dron 31. 8. 2007 01:13
Nový
├ 
Re: A proč ne PHP?
anonymní uživatel 31. 8. 2007 01:28
Nový
│
├ 
Re: A proč ne PHP?
Ivo 31. 8. 2007 10:04
Nový
│
└ 
Re: Nečisté
LO 31. 8. 2007 22:48
Nový
│
 
└ 
Re: Nečisté
Biktop 1. 9. 2007 14:45
Nový
│
 
 
└ 
Re: Nečisté
Tomas 1. 9. 2007 19:29
Nový
│
 
 
 
└ 
Re: Nečisté
polymorpheus 1. 9. 2007 19:49
Nový
│
 
 
 
 
└ 
Re: Nečisté
Biktop 2. 9. 2007 02:23
Nový
│
 
 
 
 
 
└ 
Re: Nečisté
mys elf 2. 9. 2007 10:43
Nový
├ 
Re: A proč ne PHP?
......... 31. 8. 2007 08:12
Nový
│
├ 
Re: A proč ne PHP?
Pavel Holica 31. 8. 2007 08:23
Nový
│
│
└ 
Re: A proč ne PHP?
LO 31. 8. 2007 22:51
Nový
│
│
 
└ 
Re: A proč ne PHP?
Biktop 1. 9. 2007 14:48
Nový
│
│
 
 
└ 
Re: A proč ne PHP?
LO 2. 9. 2007 19:57
Nový
│
└ 
Re: A proč ne PHP?
anonymní uživatel 31. 8. 2007 09:39
Nový
│
 
└ 
Re: A proč ne PHP?
anonymní uživatel 31. 8. 2007 09:40
Nový
│
 
 
└ 
Re: A proč ne PHP?
Jakub Šťastný 31. 8. 2007 09:44
Nový
├ 
Re: A proč ne PHP?
Misko 31. 8. 2007 08:18
Nový
│
└ 
Re: A proč ne PHP?
tommy 31. 8. 2007 09:15
Nový
│
 
├ 
Re: A proč ne PHP?
Misko 31. 8. 2007 11:27
Nový
│
 
│
├ 
Re: A proč ne PHP?
tommy 31. 8. 2007 13:03
Nový
│
 
│
└ 
Python vs PHP
anonymní uživatel 1. 9. 2007 11:41
Nový
│
 
│
 
└ 
Re: Python vs PHP
repulsive 1. 9. 2007 22:08
Nový
│
 
│
 
 
└ 
Re: Python vs PHP
Ondrej 'SanTiago' Zajicek 2. 9. 2007 09:55
Nový
│
 
└ 
Re: A proč ne PHP?
Emo 31. 8. 2007 23:03
Nový
│
 
 
└ 
Re: A proč ne PHP?
LO 31. 8. 2007 23:50
Nový
│
 
 
 
└ 
Re: A proč ne PHP?
Emo 1. 9. 2007 12:03
Nový
│
 
 
 
 
└ 
Re: A proč ne PHP?
LO 2. 9. 2007 20:04
Nový
│
 
 
 
 
 
├ 
Re: A proč ne PHP?
Emo 3. 9. 2007 01:03
Nový
│
 
 
 
 
 
└ 
Re: A proč ne PHP?
J 3. 9. 2007 19:01
Nový
├ 
Re: A proč ne PHP?
koax 31. 8. 2007 10:14
Nový
│
└ 
Re: A proč ne PHP?
petris 31. 8. 2007 11:09
Nový
│
 
└ 
Re: A proč ne PHP?
Karel Zak 31. 8. 2007 11:40
Nový
│
 
 
└ 
Re: A proč ne PHP?
petris 31. 8. 2007 12:20
Nový
│
 
 
 
└ 
Re: A proč ne PHP?
Biktop 1. 9. 2007 14:51
Nový
└ 
Re: A proč ne PHP?
Pavel Mlady 1. 9. 2007 02:44
Nový
Unicode
Creckx 31. 8. 2007 00:42
Nový
└ 
Re: Unicode
tsh 31. 8. 2007 00:49
Nový
 
├ 
Re: Unicode
Jakub Šťastný 31. 8. 2007 09:47
Nový
 
└ 
Re: Unicode
Creckx 31. 8. 2007 14:14
Nový
A co SCSH?
Ondrej 'SanTiago' Zajicek 31. 8. 2007 02:03
Nový
├ 
Re: A co SCSH?
anonymní uživatel 31. 8. 2007 02:29
Nový
│
├ 
Re: A co SCSH?
tom 31. 8. 2007 07:50
Nový
│
│
└ 
Re: A co SCSH?
repulsive 31. 8. 2007 16:33
Nový
│
├ 
Re: A co SCSH?
Honza 31. 8. 2007 08:22
Nový
│
├ 
Re: A co SCSH?
mys elf 31. 8. 2007 08:36
Nový
│
│
└ 
Re: A co SCSH?
tomas z 31. 8. 2007 08:50
Nový
│
│
 
├ 
Re: A co SCSH?
mys elf 31. 8. 2007 09:49
Nový
│
│
 
└ 
Re: A co SCSH?
mys elf 31. 8. 2007 09:51
Nový
│
├ 
Re: A co SCSH?
Ondrej 'SanTiago' Zajicek 31. 8. 2007 11:42
Nový
│
├ 
Re: A co SCSH?
deda.jabko 31. 8. 2007 11:57
Nový
│
│
└ 
Re: A co SCSH?
Ondrej 'SanTiago' Zajicek 31. 8. 2007 12:03
Nový
│
└ 
Re: A co SCSH?
martin 31. 8. 2007 14:32
Nový
│
 
└ 
Re: A co SCSH?
anonymní uživatel 31. 8. 2007 14:35
Nový
└ 
Re: A co SCSH?
Jakub Šťastný 31. 8. 2007 09:54
Nový
 
└ 
Re: A co SCSH?
Vuk 31. 8. 2007 10:24
Nový
Skriptovací jazyky
tomas z 31. 8. 2007 08:28
Nový
└ 
Re: Skriptovací jazyky
Jakub Šťastný 31. 8. 2007 09:53
Nový
 
├ 
Re: Skriptovací jazyky
Ondrej \'SanTiago\' Zajicek 31. 8. 2007 11:45
Nový
 
└ 
Re: Skriptovací jazyky
Dominik 31. 8. 2007 13:05
Nový
dokumentace Ruby
Ladislav Thon 31. 8. 2007 08:45
Nový
├ 
Re: dokumentace Ruby
Jakub Šťastný 31. 8. 2007 09:50
Nový
└ 
Re: dokumentace Ruby
Láďa 31. 8. 2007 10:28
Nový
 
└ 
Re: dokumentace Ruby
Christof 31. 8. 2007 12:33
Nový
 
 
└ 
Re: dokumentace Ruby
Láďa 31. 8. 2007 13:48
Nový
Účení programování a dokumentace
David Majda 31. 8. 2007 09:48
Nový
├ 
Re: Účení programování a dokumentace
me 31. 8. 2007 13:09
Nový
│
└ 
Re: Účení programování a dokumentace
Dramenbejs 31. 8. 2007 13:18
Nový
│
 
└ 
Re: Účení programování a dokumentace
Ondrej 'SanTiago' Zajicek 31. 8. 2007 13:42
Nový
└ 
Re: Účení programování a dokumentace
polymorpheus 31. 8. 2007 22:18
Nový
 
└ 
Re: Účení programování a dokumentace
polymorpheus 31. 8. 2007 22:24
Nový
perl je zivy
samo 31. 8. 2007 10:27
Nový
└ 
Re: perl je zivy
pht 1. 9. 2007 07:40
Nový
 
└ 
Re: perl je zivy
LO 2. 9. 2007 20:09
Nový
 
 
└ 
Re: perl je zivy
anonymní uživatel 6. 9. 2007 14:40
Nový
:)
lol 31. 8. 2007 13:30
Nový
├ 
Re: :)
anonymní uživatel 31. 8. 2007 13:52
Nový
│
└ 
Re: :)
mys elf 31. 8. 2007 14:01
Nový
├ 
Re: :)
tom 31. 8. 2007 13:55
Nový
└ 
Re: :)
repulsive 31. 8. 2007 16:43
Nový
 
└ 
Re: :)
anonymní uživatel 31. 8. 2007 17:48
Nový
 
 
└ 
Re: :)
me 31. 8. 2007 19:08
Nový
programování / systémové skripty
anonymní uživatel 31. 8. 2007 14:23
Nový
└ 
Re: programování / systémové skripty
anonymní uživatel 31. 8. 2007 15:10
Nový
 
└ 
Re: programování / systémové skripty
glx 31. 8. 2007 15:48
Nový
 
 
└ 
Re: programování / systémové skripty
me 31. 8. 2007 19:14
Nový
Groovy je moj sucasny favorit
Oski 31. 8. 2007 18:24
Nový
Python 3000
repulsive 31. 8. 2007 19:46
Nový
chybí mi ve výčtu Groovy
truhla 31. 8. 2007 20:27
Nový
├ 
Re: chybí mi ve výčtu Groovy
anonymní uživatel 31. 8. 2007 21:00
Nový
│
└ 
Re: chybí mi ve výčtu Groovy
truhla 31. 8. 2007 21:16
Nový
└ 
Re: chybí mi ve výčtu Groovy
Oski 1. 9. 2007 12:18
Nový
ZSH nefunguje dobře s UTF-8
anonymní uživatel 3. 9. 2007 12:45
Nový
A co tcl / tk
D.A.Tiger 4. 9. 2007 00:44
Nový
└ 
Re: A co tcl / tk
Pavel Tišnovský 4. 9. 2007 11:22
Nový
 
├ 
Re: A co tcl / tk
D.A.Tiger 4. 9. 2007 19:06
Nový
 
└ 
Re: A co tcl / tk
D.A.Tiger 4. 9. 2007 19:31
Nový
 
 
└ 
Re: A co tcl / tk
disorder 4. 9. 2007 20:00
Nový
 
 
 
└ 
Re: A co tcl / tk
Pavel Tišnovský 5. 9. 2007 09:07
Nový
 
 
 
 
└ 
Re: A co tcl / tk
disorder 5. 9. 2007 11:03
Nový
 
 
 
 
 
└ 
Re: A co tcl / tk
Pavel Tišnovský 5. 9. 2007 13:30
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem