Na úvod se seznámíme s několika základními elementárními příkazy,
jejichž znalost je nezbytná pro rozumné využití
výpočetního serveru THUNDER...
a vlastně jakéhokoli počítače s OS UNIXového typu.
|
Filozofie UNIXu.
ŽÁDNÁ ZPRÁVA = DOBRÁ ZPRÁVA
V překladu to znamená, že se nepotvrzuje úspěšné provedení příkazu.
OTÁZKY POUZE POKUD JSOU VYNUCENY
Pokud uživatel "omylem" zadá příkaz, jenž smaže všechna jeho data,
má smůlu. Měl si to rozmyslet. Systém _nežádá_ potvrzení a příkaz provede.
"Undelete" nebo "unremove" _neexistuje_, není cesty zpět :-)
ŘETĚZENÍ PŘÍKAZŮ
Elementární příkazy jsou "jednoduché", jednoúčelové.
Jejich spojováním však vznikají mocné konstrukce.
Základem je správa vstupů/výstupů a roura.
Adresářová struktura a soubory.
Nyní je vhodný okamžik pro upřesnění pojmů adresář, soubor,
cesta a |
Existují samozřejmě také složitější datově-hiearchické objekty, například seskupení souborů tematicky souvisejících. Toto seskupení (včetně informací o jeho obsahu) se obvykle nazývá - adresář (directory). Jelikož operační systém zachází s adresářem prakticky stejně, jako se souborem, může být adresář členem jiného adresáře. Například... |-- | \documentclass[12pt]{article} |-- file_1 --| ... | |-- | | |-- |-- file_2 --| 001011110100010101010001010... | |-- directory_1 --|-- ... | |-- | |-- file_1_1 --| DIMENSION XRAY(100,180) |-- directory_1_1 --| | ... | | |-- | | |-- ... |-- directory_1_2 --|-- directory_1_2_1 ... | | | |-- file_2_m ... |-- ... | |-- file_n ... |
Vzhledem k tomu, že se potřebujeme odvolávat na naše
data, spouštět programy, archivovat adresáře a podobně, je
vysoce žádané, aby měly všechny soubory svá jména - specifikace.
Například |-- bin (spustitelné programy - příkazy systému) |-- boot (jádro systému, používá se při startu systému) |-- dev (zařízení, speciální soubory) |-- etc (konfigurační soubory) | | |-- httpd | | |-- home --| |-- nathan (domovské adresáře | |-- users --|-- sanitak uživatelů) | |-- bajer | |-- ... | | |-- muj_adresar | |-- loginname --|-- ... | | |-- lib (knihovny) | | | / --|-- mnt --| | | | | |-- opt |-- proc (virtuální soubory obsahující některé | systémové struktury) |-- root (domovský adresář správce systému) |-- sbin (spustitelné programy - | příkazy pro správu systému) |-- tmp (dočasné soubory) | |-- usr --| (softwarové balíky) | | | |-- bin (spustitelné programy) | |-- sbin ( -||- pro správce) | |-- lib (knihovny) | |-- include (hlavičkové soubory) | |-- etc (konfigurační soubory) | |-- share (soubory sdílené více programy) | |-- doc (dokumentace) | |-- man (manuálové stránky) | |-- info (dokumenty `info') | |-- src (zdrojové texty) | |-- ... | | | | (další softwarové balíky) | | |-- bin | |-- local --|-- lib | | |-- ... | | | |-- var (logovací soubory, spool pro tisk, postu,...) |
Některé adresáře zůstávají prázdné, v systému se vyskytují
kvůli kompatibilitě.
Běžný uživatel se jménem f77 -o /home/users/loginname/muj_adresar/muj_program -O -Wall /home/users/loginname/muj_adresar/fortran/tomografie.f
... pro kompilaci fortranovského zdrojového textu
f77 -o ./muj_program -O -Wall ./fortran/tomografie.fnebo dokonce... f77 -o muj_program -O -Wall fortran/tomografie.f
Odkazovat se můžeme také na rodičovský adresář `..'.
Za předpokladu, že naším pracovním adresářem je adresář
f77 -o ../muj_program -O -Wall tomografie.f
Koncept relativní specifikace (relativní cesty) podporuje shell
a je tedy použitelný v každé situaci.
Na závěr zmíníme fyzické uložení dat na záznamových médiích,
tedy na pevném disku, disketě, cdrom a podobně.
Je třeba si uvědomit, že abstraktní hiearchická adresářová
struktura popsaná výše _NEKORESPONDUJE_ s fyzickým uložením
dat. Například adresáře
TODO: práva, uživatelé, skupiny, |
Tipy, triky, techniky, DROBNOSTI :-)
Především se zmíníme o výhodách Linuxového shellu `bash'
a výhodách vzdálené práce s Linuxovým systémem -
oproti jiným (komerčním) UNIXovým systémům.
Hlavními hesly jsou: editace příkazové řádky, historie příkazové
řádky, doplňování jmen souborů na příkazové řádce.
První bod, tedy
možnost úprav textu na příkazové řádce,
si lze snadno ověřit. Klávesy "šipky", Delete a BackSpace
jsou plně funkční. Navíc existují další klávesy pro pohyb
a editaci řádky. Ctrl-a přesune kurzor na začátek řádky,
Ctrl-e na konec řádky, Ctrl-l smaže obrazovku, ale příkazovou
řádku nemění. Pro další funkce studujte dokumentaci
k shellu. |
Volba textového editoru.
Pro další části předkládaného "manuálu" a samozřejmě především
pro běžnou práci se systémem pořebuje uživatel vytvářet
a upravovat textové soubory. Editace konfigurčních souborů,
psaní dopisu nabo článku v latexu, vytváření webovské stránky
anebo třeba psaní programu v pascalu - všechny tyto úkony
spadají do oblasti práce s textovým souborem. cat > muj_text[ENTER] prvni radek meho textu...[ENTER] 2. radek MEHO textu[ENTER] posledni radek[ENTER] [Ctrl-d]
Přitom symboly v hranatých závorkách [] představují klávesy,
respektive klávesové kombinace. Kombinace Ctrl-d dává signál
k ukončení příkazu. Použije-li uživatel Ctrl-d přímo v shellu,
ukončí jeho práci a odhlásí se od systému.
Předchozí sekvence vytvoří v aktuálním adresáři textový soubor
cat muj_text
Smysl příkazu |
Správa vstupů a výstupů.
Většina příkazů a programů potřebuje ke správné funkci nějaký vstup dat a většinou poskytuje též nějaký výstup, výsledek své činnosti. Pokud se při provádění příkazu vyskytnou chyby, produkuje též chybový výstup. Těmto třem standardním komunikačním kanálům se postupně říká: standardní vstup (standard input), standardní výstup (standard output) a standardní chybový výstup. Implicitně (default) jsou všechny standardní vstupy a výstupy připojeny na "obrazovku". Například v dokumentaci k příkazu cat se uživatel dočte, že pokud nejsou zadány žádné parametry a soubory, příkaz cat přepisuje standardní vstup na standardní výstup... cat[ENTER] zadany text[ENTER] zadany text # toto opsal příkaz `cat' [Ctrl-d]
Tedy, dokud neukončíme práci kombinací kláves Ctrl-d, příkaz
cat opisuje po řádcích standardní vstup
na standardní výstup implicitně nastavené na "obrazovku".
To nám ale nemusí vyhovovat.
Můžeme například požadovat, aby byl standardní výstup PŘESMĚROVÁN
do souboru, tedy `
Příklad použití.
Uživatel chce spočítat počet souborů v aktuálním adresáři.
První si vypíše jeho obsah do souboru příkazem
Nyní se seznámíme s posledním konceptem práce se vstupy
a výstupy, který nám pomůže vyřešit předchozí problém
s dočasným pomocným souborem.
Jednoduše řečeno - vytvoříme pomocný soubor v operační paměti.
Této metodě se říká ROURA (pipe). Například předchozí problém by
snadno vyřešil příkaz `
Příklad použití.
Zřetězení příkazů ` |
Konfigurace prostředí.
Chování operačního systému - přesněji shellu - je ovlivňováno řadou
okolností a nastavení.
Většinu z nich může uživatel modifikovat a upravit
si tak chování shellu k obrazu svému. export x=blah[ENTER] # uvozovky nejsou nutne echo x[ENTER] x echo $x[ENTER] blah unset x[ENTER] echo $x[ENTER] export smajlik=":-)"[ENTER] # uvozovky nebo apostrofy nutne echo "Zdar chlape smajlik"[ENTER] Zdar chlape smajlik echo "Zdar chlape $smajlik"[ENTER] Zdar chlape :-) echo 'Zdar chlape $smajlik'[ENTER] Zdar chlape $smajlik unset smajlik[ENTER] Příklad současně ukazuje, jak se proměnná chová v textových řetězcích pod uvozovkami a pod apostrofy. Apostrofy zřejmě ruší vliv všech speciálních znaků, tedy i znaku dolar $, jenž značí HODNOTU proměnné.
POZNÁMKA TROCHU MIMO MÍSU. for n in *.tif; [ENTER] do [ENTER] convert $n ${n%tif}ps [ENTER] done [ENTER]Cyklus `for' a postupné naplňování proměnné `n' soubory `*.tif' zajišťuje sám shell. Mírně jízlivě podotkněme, že v "operačních systémech" jedné nejmenované firmy by uživateli taková konverze zabrala celý den.
Nyní se vrátíme zpět ke konfiguraci prostředí.
Existuje mnoho proměnných shellu, takzvaných SYSTÉMOVÝCH PROMĚNNÝCH,
které obsahují implicitní hodnoty pro nastavení rozličných
vlastností systému.
Například systémová proměnná
Jelikož je velmi velmi velmi otravné při každém vzdáleném přihlášení
pomocí telnetu nebo ssh znovu nastavovat systémové proměnné,
existuje způsob, jak to provést pouze jednou a s obecnou
platností.
Každý uživatel má ve svém domovském adresáři soubor
TODO: doplnit LOCALE proměnné |