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:
Informace
Obcování s ďáblem 2 - základy
2. srpna 2001, 00.00 | V druhém dílu seriálu už začneme s příkazovým řádkem pracovat a ukážeme si pár nejzákladnějších příkazů.
Minule jsme si slíbili, že se dnes pustíme do práce, takže hurá na to: seznámíme se s aplikací Terminal, vysvětlíme si co to je 'shell', a začneme doopravdy pracovat s příkazovým řádkem.Pro začátek vám ale nabídnu malou lahůdku, prozatím bez bližšího vysvětlování -- jen tak, na ukázku, že s příkazovým řádkem opravdu můžeme zařídit mnohem více věcí, než bez něj. Určitě víte o nějaké aplikaci, ve které vám chybí pro nějaký často používaný příkaz menu klávesová alternativa; pro mne je to např. ProjectBuilder se svým příkazem Delete, který je zapotřebí pro odstranění souboru z projektu.
Spustíme tedy aplikaci Terminal (schovává se v /Applications/Utilities), a do jejího okna napíšeme něco jako
defaults write com.apple.ProjectBuilder NSUserKeyEquivalents '{"Delete" = "@r"; }'
Pak stačí znovu spustit ProjectBuilder -- a voila!
Samozřejmě, že sami "ProjectBuilder" nahradíte jménem aplikace, "Delete" textem v dané položce menu, a "r" požadovanou zkratkou. (Poznámka: musí jít, pochopitelně, o "kakaovou" aplikaci. Carbonovské aplikace nepodporují dohromady žádnou ze systémových služeb, ani tu, již právě využíváme. Aplikace psané v prostředí Cocoa poznáte snadno: mají v nabídce podmenu "Services".)
Shell
Když jsme napsali text "defaults write..." a stiskli Enter, nějaký program musel dekódovat napsaný text, a na jeho základě zavolat patřičnou systémovou službu. Mohlo by se zdát, že to dělá aplikace Terminal, ale tak tomu není: Terminal jen spouští standardní program, který zpracovává příkazové řádky a na jejich základě volá patřičné služby. Takové programy se právě nazývají shelly.
Shellů existuje celá řada. Ty, jež máme k dispozici v Mac OS X, si jsou všechny navzájem podobné, avšak v detailech a pro speciální případy každý z nich nabízí trochu jinou paletu služeb, v něčem bohatší, v něčem chudší, než ostatní. Můžeme si tedy vybrat podle toho, co komu vyhovuje nejlépe:
- klasický Bourne shell (sh) a C-shell (csh) už dnes asi používat nebudeme: jedná se o původní shelly nejstarších unixů, a proto nejsou tak pohodlné, jako shelly modernější. Mají ovšem nezastupitelné místo ve zpracování tzv. scriptů; o tom se však budeme bavit až ke konci našeho seriálu;
- tcsh je C-shell s řadou novinek a vylepšení, jež usnadňují práci s příkazovým řádkem. Mnoho lidí jej rádo využívá; já osobně však dávám přednost Z-shellu:
- zsh má trošku složitější historii. Kromě čtveřice, jež je standardně k dispozici v Mac OS X, totiž v historii vznikly i další shelly: uživatelé Linuxu např. často používají bash, oblíbený shell, nabízející řadu pohodlných služeb, je také ksh. A právě jako další rozšíření ksh vznikl Z-shell.
Nebojte se zmatku: se všemi shelly se pracuje velmi podobně, a naprostá většina příkazů, jež jejich prostřednictvím využíváme, je totožná. Vyberte si proto jak chcete; časem sami zjistíte, který shell vám nejlépe vyhovuje -- a do té doby je to jedno.
Aplikace Terminal
Jak už vlastně víme, účelem aplikace Terminal je umožnit nám přístup k shellu: v každém z jejích oken běží shell (chceme-li, může to klidně být v každém jiný), který zpracovává příkazy a vypisuje do téhož okna své odpovědi.
Aplikace sama se stará o řadu věcí, jež práci se shellem usnadňují. Především obsahuje buffer, do kterého ukládá kompletní historii práce se shellem: na všechny příkazy a jejich výstupy, které jsme použili od otevření okna, se můžeme kdykoli podívat -- stačí použít posuvník. S některými dalšími službami se ještě seznámíme později.
Prozatím nám stačí, že kdykoli chceme pracovat s příkazovým řádkem, prostě spustíme Terminal; chceme-li mít zároveň spuštěných shellů více, prostě otevřeme víc oken (standardním příkazem New). Na následujícím obrázku vidíme tři okna; v jednom běží zsh, ve druhém tcsh, a ve třetím sh (ručně doplněné titulky ukazují, které je které):
Vidíme, že každý shell se ohlásí uživateli malinko jinak; na toto "ohlášení" (jemuž říkáme prompt) se brzy podíváme blíž. Možná také uvažujete o tom, proč jsme neotevřeli další okno s c-shellem: bylo by to zbytečné, protože v Mac OS X se namísto c-shellu používá s ním kompatibilní tcsh.
Volba shellu
Chceme-li používat některý ze shellů, prostě napíšeme do příkazového řádku jeho jméno (sh, zsh, tcsh) a stiskneme Enter. Shell, který nám Terminal spustí po otevření nového okna automaticky, si můžeme vybrat v předvolbách aplikace Terminal, kde je jen zapotřebí před jeho jméno napsat "/bin/" (nebo lépe v NetInfu, ovšem systému NetInfo se budeme věnovat někdy jindy).
Základní příkazy
Na konci dnešního dílu se seznámíme s nejzákladnějšími příkazy pro práci se soubory (později si o nich řekneme mnohem více). Samy o sobě jsou málokdy doopravdy k něčemu dobré -- koneckonců, ve Finderu se obvykle se soubory pracuje vcelku pohodlně; budeme však na nich stavět dál.
pwd - kde vlastně jsem?
Shell má řadu proměnných, v nichž udržuje svůj momentální stav a podle kterých řídí svou práci. Ta nejdůležitější z nich je aktuální složka: shell vždy považuje některou složku za právě aktivní (po prvém spuštění to je domovská složka uživatele). Chceme-li vědět která to je, použijeme příkaz pwd (Print Working Directory -- v unixovém prostředí je zvykem složkám /folders/ říkat adresáře /directories/); kromě toho, pro lepší orientaci, tcsh a zsh mohou zobrazovat aktuální složku v promptu.
cd - jdeme jinam
Chceme-li změnit aktivní složku, použijeme příkaz cd (Change Directory) a jako argument mu dáme
- jméno složky, která je umístěna v aktuální složce, a do které chceme přejít;
- nebo dvě tečky, chceme-li přejít do složky nadřízené.
ls - co je kolem?
Pro zobrazení obsahu aktuální složky použijeme příkaz ls (LiSt).
Příklad použití všech tří popsaných příkazů vidíme na dalším obrázku:
Samozřejmě, že příkazů je k dispozici mnohem více, a že i popsané příkazy umějí spoustu dalších 'triků' -- na to se můžete těšit příště. Prozatím se můžete pomocí terminálu podívat, jaká je v Mac OS X spousta souborů a složek, o kterých jste dosud neměli ani ponětí (viz minulý obrázek, první příkaz ls).
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á