Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Software
Obcování s ďáblem
26. července 2001, 00.00 | Ačkoli příkazový řádek vyvolává v pravověrných uživatelích Maca nevolnost, vyplatí se s ním umět zacházet: zde si vysvětlíme jak.
Existuje-li vůbec pro pravověrného uživatele Maca něco jako ďábel, určitě to je příkazový řádek: taková nepřehledná, nesrozumitelná, komplikovaná, nebezpečná a vůbec nemakovská věc přeci nemá ve slušném operačním systému co dělat! Na druhou stranu, je vhodné si připomenout, že pekelník jménem Mefistofeles jistému Johanu doktoru Faustovi poskytoval nesmírně cenné a nenahraditelné služby; pokud by doktor Faust zachoval základní pravidla o bezpečnosti práce, nemuselo dojít ani k oné infámní příhodě s dírou ve stropě.Nejinak je tomu s příkazovým řádkem: jistě, není tak snadné jej používat, jako WYSIWYG rozhraní; na druhou stranu však nabízí zcela běžnému uživateli nesmírně bohatou paletu služeb, jež by v GUI nikdy nemohly být k dispozici: některé z nich by bez příkazového řádku nepřipadaly v úvahu vůbec, na jiné bychom museli mít specializované aplikace. Zachováme-li navíc pár jednoduchých základních pravidel, není pravděpodobnost, že v příkazovém řádku něco "zprasíme" o nic větší, než v GUI.
(Apropos, jistě všichni víte, že GUI je "Graphical User Interface" aneb grafické uživatelské rozhraní, zatímco WYSIWYG je zkratkou za "What You See Is What You Get", což znamená, že co vidíte, to také dostanete -- a ani ň navíc. Já osobně vždy preferoval podniky typu "co nenaleznete ve výloze, hledejte uvnitř".)
Uživatelé nejnovějšího operačního systému Mac OS X dnes příkazový řádek k dispozici mají, a je to ten nejluxusnější a nejbohatší ze všech příkazových řádků, které kdy existovaly: plnohodnotný unixový shell. Díky tomu můžeme na Macu dnes využívat služeb, o kterých se např. uživatelům wintelů s jejich DOSovským příkazovým řádkem ani nezdá.
Proč bych se s tím měl trápit, když to nepotřebuji?
Samozřejmě, že v Mac OS X nikdo příkazový řádek využívat nemusí. Na druhou stranu, v řadě případů je prostě požadovaná služba v příkazovém řádku pohodlnější, a nabízí větší flexibilitu; ti, kdo příkazového řádku využívat nechtějí, si tedy přidělávají zbytečnou práci navíc. Každý asi pracuje s počítačem malinko jinak; uvedu proto několik příkladů, ve kterých je příkazový řádek k nezaplacení zrovna pro mne:
Nedávno, když jsem připravoval českou klávesnici pro Mac OS X (mimochodem, je volně k dispozici na http://www.ocs.cz/apps/4K78_CzKbd.tar.gz; nedoporučuji vám ji však, protože je Unicodová, a Mac OS X vinou nesmyslného Carbonu s Unicode neumí pracovat korektně), bylo zapotřebí prohledat všechny systémové resource soubory, a najít ty z nich, které obsahují KCHR nebo UCHR resourcy. Na takovou práci Sherlock nestačí; služby příkazového řádku to však zvládnou bez nejmenších obtíží.
Chci-li uvolnit místo na disku, dělávám občas jiný trik: procházím všechny projekty, které mám na disku uloženy (a je jich hodně na různých místech, protože pracuji na různých skupinách projektů pro nejrůznější účely), a ty z nich, které jsou starší než dva měsíce, "vycleanuji" (tj. vyžádám si smazání všech generovaných souborů). Možná by se na to dal napsat AppleScript, ale rozhodně by to nebylo nijak jednoduché; v příkazové řádce na to stačí jediný příkaz.
U programování ještě chvíli zůstaneme: občas potřebuji provést nějakou ne úplně jednoduchou změnu v několika projektech: změním třeba službu z některé z vlastních knihoven tak, že má argument navíc, a ještě se třeba dva z původních argumentů pro lepší čitelnost volají v opačném pořadí. Nyní je ovšem zapotřebí projít projekty, zjistit, ve kterých zdrojových souborech je služba použita, vhodným způsobem upravit její volání... I s velmi kvalitním editorem zdrojových textů by to znamenalo spoustu ruční práce; s příkazovou řádkou a standardním editorem sed na to stačí jediný příkaz, o jehož běh se vůbec nemusím starat.
Občas také nechávám běžet na pozadí nebo na jiném počítači zpracování rozsáhlých dat. Ne vždy mají programy, jež je provádějí, "teploměr", kterým by indikovaly jak jsou daleko; v příkazovém řádku si však mohu snadno vyžádat, aby se řekněme každou minutu zobrazil stav a velikost daného souboru...
Nemluvě už o takových věcech, že např. v poslední době používám v příkazovém řádku i ladicí program gdb, protože firma Apple podporu ladění v novém ProjectBuilderu "vylepšila" tak, že je zhola nepoužitelná. To ukazuje další výhodu příkazového řádku: jsou-li GUI aplikace z nějakého důvodu pro nějakou práci navrženy mizerně, máme příkazový řádek vždy jako poslední útočiště; kdyby jej nebylo, měli bychom smůlu.
Podobných příkladů může být řada, pro každého jiné. Myslím proto, že se v každém případě vyplatí se naučit s příkazovým řádkem pracovat. Pro ty, kdo se mnou souhlasí, je určen tento seriál.
Na co se můžeme těšit?
Hned v příštím dílu se pustíme do práce: vysvětlíme si, jak se s příkazovým řádkem v Mac OS X vůbec pracuje a seznámíme se s aplikací Terminal. Řekneme si také, co to znamená slovo "shell" (už jsme jej jednou použili, prozatím bez bližšího vysvětlení), a jaký je význam záhadných nápisů jako "c-shell", "z-shell", nebo dokonce "Bourne shell".
Samozřejmě, že máte-li jakékoli připomínky nebo náměty, budu velice rád pokud mi !
Obsah seriálu (více o seriálu):
- Obcování s ďáblem
- Obcování s ďáblem 2 - základy
- Obcování s ďáblem 3 - Práce se soubory
- Obcování s ďáblem 4 - Další práce se soubory
- Obcování s ďáblem 5 - Stále soubory, hlavně linky
- Obcování s ďáblem 6: Pár zbývajících drobností
- Obcování s ďáblem 7: Samá voda, přihořívá, hoří!
- Obcování s ďáblem 8: Jak se do shellu volá, tak se program ozývá
- Obcování s ďáblem 9: Nové finty na programy
- Obcování s ďáblem 10: Do fronty, pánové, do fronty!
- Obcování s ďáblem 11: Standardní vstup a výstup
- Obcování s ďáblem 13: Další triky
- Obcování s ďáblem 14: Vyšší škola hledání souborů
- Obcování s ďáblem 15: Příkaz find stokrát jinak
- Obcování s ďáblem 16: Co se ještě dá uvařit z příkazu find
- Obcování s ďáblem 17: Regulární výrazy
- Obcování s ďáblem 18: Speciální regulární výrazy
- Obcování s ďáblem 19: Skládání regulárních výrazů
- Obcování s ďáblem 20: Regulární výrazy se zpětnými odkazy
- Obcování s ďáblem 21:K čemu je dobrý grep...
- Zázraky ihned, nemožné na počkání: sed
- Obcování s ďáblem - další finty s příkazem sed
- Rozsáhlejší příklad se sedem
- Obcování s ďáblem: Další kouzla, aneb awk
- Awk a proměnné
- Obcování s ďáblem 27: Awk a výrazy
- Obcování s ďáblem: Awk a funkce
- Awk a příkazy
- Co je to vlastně "uživatel"?
- Vlastnictví objektů
- Přístupová práva
- Vlastník, skupina, ostatní...
- Jak je to se skupinami?
- Skupiny a uživatelé
- Scripty
- Komentáře, a volba shellu
- Pro skript může být shell cokoli!
- Shellové skripty a argumenty
- Skripty a proměnné: aritmetika
- Proměnné shellu, "dědění" hodnot
- Práce s proměnnými
- Práce se jmény souborů
- Pole hodnot
- Další triky kolem polí...
- Standardní proměnné shellu
- Základní příkazy pro skripty
- Příkaz if
- Speciální podmínkové příkazy
- Podmínky pro práci se soubory
- Jednoduchý cyklus
- Příkaz for a pomocné příkazy break a continue
- Příkaz case
- Příkazy exit a select
- Rejstřík a přehled
- Procesy
- Informace o procesech
- Další klíčová slova pro příkaz ps
- Příkaz ps: několik praktických přepínačů
- A k čemu že je "ps" dobré?
- Copak procesor, s pamětí je to horší
- Virtuální paměť
- A ještě jednou virtuální paměť
- Zpět k příkazu ps
- Skutečný žrout paměti
- Ještě jednou top
- Doplněk k topu: vm_stat
- Co to tedy všechno znamená?
- Nevychází nám dal a má dáti?
- Kam se stránky ukládají?
- Změna odkládacího disku
- Změna odkládacího disku / fstab
- Poslední poznámka k fstab
- A jak to je se soubory?
- Co vlastně příkaz lsof vypisuje?
- Příkaz lsof a obsah sloupce NAME
- SIPS - Terminál není jen pro nadšence UNIXu
- Tak nám zabili NetInfo, paní Müllerová