Hlavní navigace

rozhovory s terminálem aneb učit se, učit se, učit se

26. 1. 2014 20:54 (aktualizováno) | Gedrex

Po mém skálopevném rozhodnutí začít si něco s linuxovým terminálem jsem strávila nějaký čas googlením. Bylo to nutné, jelikož toho zatím o linuxu a jeho možnostech vím asi tolik, co žába na prameni ve studni o čističce odpadních vod na pražském předměstí. Mňam… tedy Yum… s tím jsem začala.

Základem byla stránka české wiki o yum abych se dozvěděla, o co vlastně jde a hned na to na stránkách RedHatu – to samé plus základní příklady použití. Docela prima věcička. Bohužel jakožto pro neznalce mi stále zůstával utajen důvod, proč se to používá. Nechápala jsem totiž základní vlastnosti linuxu jakožto systému, ani způsob, jakým se instalují programy, natož souborový systém. Pomocí Yum jsem si tedy alespoň nainstalovala textový editor VIM a měla jsem tedy polovinu zadání za sebou. Mezitím jsem si ale zase popovídala se svým drahým, který mi dokázal aspoň z části zaplnit mezery ve vědomostech.

Krátký popis do budoucna pro mě, kdybych zapomněla, či pro nějakého jiného podobného začínajícího břídila:

V linuxu je všechno souborem. Každý příkaz, každý program, všechno jsou sobubory. Adresářová struktura se od Windows podstatně liší a hezky je to popsané i na české wikibooks. Je dobré si zapamatovat minimálně to, že hrabat se v kořenových adresářích systému jako je /bin , /etc , /proc atd. může být pro systém smrtelné a může způsobit nutnou nucenou reinstalaci.

Yum. Na internetu jsou k dispozici repozitáře, což jsou seznamy dostupných programů pro jednotlivé systémy, které jsou následně stáhnutelné v balíčku. Hezky zabalené třeba do formátu .rpm. Člověk si stáhne potřebný balíček a při instalaci zjistí, že obsah tohohle balíčku ke svému běhu potřebuje ještě jiný balíček, protože je na něm závislý. Tak stáhne ten. A při jeho instalaci zjistí, že ten je závislý na ještě jiném balíčku atd., až se nám z toho hezky stane snad nekonečná matrjoška – závislostní peklo – dependency hell. A tak lidstvo vymyslelo Yum, apt a podobné programy, balíčkové manažery, díky kterým se nám závislostní peklo vyhne. Yum si zjistí, co za všechny možné další balíčky potřebuje daný program a rovnou je nainstaluje v potřebném pořadí.

Základní příkazy pro práci se soubory a nejenom s nimi jsem si už musela hledat sama. Jakožto od přírody línému člověku mi bylo nejvíce po chuti českého slova, takže jsem nejprve zabrousila na abclinuxu, kde je velmi podrobný tutorial. Způsobilo mi to málem smrt mozku uvařením. Vážně jsem se snažila. Ale jakožto naprostý laik jsem spíš tupě opisovala, než abych opravdu chápala, o co jde. Časem se k tomuto tutoriálu chci vráti, ale pokud člověk nemá už jasně dané základy například z programování, není to zrovna literatura na dobrou noc.

Další, co jsem cestou potkala a cvrnklo mě do prohlížeče, byl tento přehled základních příkazů. Není sice příliš podrobný, vlastně je to jen takový základní seznam, kde se člověk pouze dozví o existenci daného příkazu, ale i tak jde o docela dobrý nástroj, který pomůže. Výsledek mého hledání je takový, že asi nejpříjemnější a dostatečně pochopitelný tutoriál pro samotný bash je zde. Není to ani tak o samotných příkazech, ale spíš o základních principech terminálu bash. Pro základní příkazy, které jsou všeobecně velmi často využitelné byl pro mě asi nejpoužitelnější Základy práce s příkazovou řádkou a Školení unixu. Všechny tyhle materiály se sice netýkají přímo terminálu Bash, ale všechny terminály pracují na podobném principu a většinou co platí pro jeden, platí i pro další, i když možná s nějakou menší obměnou. Ale to manuál jistí.

* poznámka pro neprogramátory jako jsem např. já: výraz foo je něco jako pro matematiky X. Aneb dosaď si libovolnou hodnotu, v tomto přípaadě název adresáře nebo souboru.

Od té doby asi nejčastěji použiju tyhle příkazy:
pwd   = print working directory = vypiš cestu do umístění, kde se právě nacházím
cd ..   = change directory = změna aktuálního adresáře
ls -l   = výpis obsahu aktuálního adresáře včetně oprávnění jednotlivých uživatelů
rm -R /foo   = remove Recursively = smaž adresář včetně jeho obsahu
mkdir  foo = make directory = vytvoř adresář foo v adresáři, kde právě jsem