| Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze |
| navody:fc6prompt [2007/01/06 12:02] – macky | navody:fc6prompt [2022/11/14 11:25] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 |
|---|
| |
| S pojmem příkaz je velice často spojován pojem přepínač. Přepínač lze chápat jako fakultativní parametr, který modifikuje chování příkazu. Jednotlivé přepínače lze velice často mezi sebou kombinovat. Např. v případě příkazu ''ls'' lze použít přepínač ''-l'', ''-a'' ale také jejich kombinaci ''-la''. | S pojmem příkaz je velice často spojován pojem přepínač. Přepínač lze chápat jako fakultativní parametr, který modifikuje chování příkazu. Jednotlivé přepínače lze velice často mezi sebou kombinovat. Např. v případě příkazu ''ls'' lze použít přepínač ''-l'', ''-a'' ale také jejich kombinaci ''-la''. |
| |
| Příkazový řádek otevřete v grafickém prostředí //Gnome// pomocí nabídky //Aplikace -> Příslušenství -> Terminál//. V historii zadaných příkazů můžete listovat pomocí šipky nahoru a dolů. Dále je možné automaticky doplňovat názvy souborů a adresářů pomocí klávesy tabelator (stačí napsat část názvu souboru nebo adresáře a stisknout klávesu tabelatoru).\\ | |
| |
| **Poznámka:** Zde uvedené příkazy lze označit jako naprosté minimum příkazové řádky - seznam příkazů není ani zdaleka vyčerpávající. | **Poznámka:** Zde uvedené příkazy lze označit jako naprosté minimum příkazové řádky - seznam příkazů není ani zdaleka vyčerpávající. |
| | |
| | ==== Terminál ==== |
| | Příkazový řádek otevřete v grafickém prostředí //Gnome// pomocí nabídky //Aplikace -> Příslušenství -> Terminál//.\\ |
| | V historii zadaných příkazů můžete listovat pomocí šipky nahoru a dolů. Dále je možné automaticky doplňovat názvy souborů a adresářů pomocí klávesy tabelator (stačí napsat část názvu souboru nebo adresáře a stisknout klávesu tabelatoru).\\ |
| | Chcete-li zamezit pípání terminálu, klikněte v okně terminálu na //Upravit -> Aktuální profil...// a odškrtněte položku //pípání terminálu//.\\ |
| | Chcete-li terminál otevřít pomocí nabídky, kterou získáte poklepáním na plochu, zadejte do příkazové řádky |
| | |
| | yum -y install nautilus-open-terminal |
| | |
| | Terminál pak otevřete kliknutím pravého tlačítka myši a výběrem //Otevřít terminál// z předložené nabídky. |
| |
| ==== Obecné informace === | ==== Obecné informace === |
| |
| ps aux | grep macky | ps aux | grep macky |
| | |
| | === top === |
| | |
| | Dalším z příkazů, který souvisí s procesy, se tzv. ''top''. Tento příkaz je velmi podobný příkazu ''ps''. Výstupem příkazu ''top'' je seznam procesů, které zabírají nejvíce systémových prostředků (řazení procesů je dáno zatížením procesoru). Tento seznam se neustále aktualizuje - v případě, že jej chcete ukončit, stikněte klávesu //q//. |
| | |
| | top |
| |
| === kill === | === kill === |
| |
| **Poznámka:** Příkaz spuštěný z příkazové řádky lze ukončit pomocí klávesové zkratky //Ctrl + Z//. | **Poznámka:** Příkaz spuštěný z příkazové řádky lze ukončit pomocí klávesové zkratky //Ctrl + Z//. |
| | |
| | === nice a renice === |
| | Systémové prostředky (např. procesorový čas a paměť) jsou "vzácné", a proto jsou jádrem //OS// přiřazovány jednotlivým procesům. Každý proces má tak tyto prostředky k dispozici po určité kvantum času. Po uplynutí tohoto časového kvanta jsou systémové prostředky uvolněny ve prospěch jiného procesu.\\ |
| | |
| | Pomocí příkazů ''nice'' a ''renice'' je možné procesům nastavovat přístup k procesorovému času. To, jakou měrou využívá proces procesorový čas, vyjadřuje "nice value" (tzv. "ohleduplnost"). Pomocí "nice value" tedy určujeme prioritu procesu. Tato veličina může nabývat hodnot od -20 (vysoká priorita procesu) do 19 (nízká priorita procesu).\\ |
| | |
| | Běžný uživatel může "ohleduplnost" svých procesů pouze zvýšit; superuživatel může nastavit "nice value" na libovolnou hodnotu.\\ |
| | |
| | Pomocí příkazu ''nice'' je možné nastavit hodnotu "ohleduplnosti" nově spouštěného příkazu. Příkaz ''nice'' zvýší popř. sníží "nice value" o hodnotu inkrementu, který následuje za přepínačem ''-n''. Výsledná priorita procesu je dána součtem tohoto inkrementu a priority //shell//u, ze kterého byl příkaz spuštěn. Následující syntaxí snížíte prioritu (tj. zvýšíte "ohleduplnost") procesu o 5. |
| | |
| | nice -n 5 /bin/nejaky_prikaz |
| | |
| | Prioritu již spuštěného přikazu lze změnit pomocí ''renice''. Zatímco příkaz ''nice'' změnil prioritu procesu o inkrement, příkaz ''renice'' nastavuje prioritu přímo na hodnotu, která ho následuje. Následující příkaz nastaví prioritu procesu s //PID// ''pid_procesu'' na hodnotu 10. |
| | |
| | renice 10 pid_procesu |
| | |
| | Hodnotu //PID// daného procesu lze získat např. pomocí ''ps aux''.\\ |
| | |
| | **Poznámka:** Přikazy ''nice'' a ''renice'' byly představeny v 70.letech. Při dnešním výkonu procesorů však tyto příkazy ztrácí význam. Úzkým hrdlem systému jsou pevné disky - jejich využití z pohledu procesů však pomocí přikazů ''nice'' a ''renice'' nenastavíte. |
| |
| ==== Matematika z příkazové řádky ==== | ==== Matematika z příkazové řádky ==== |
| prikazy | prikazy |
| fi | fi |
| | Výraz ''vyraz'' nepředstavuje výraz typu boolean, ale návratovou hodnotu daného výrazu. |
| **Poznámka:** Výraz ''vyraz'' nepředstavuje výraz typu boolean, ale návratovou hodnotu daného výrazu. | |
| |
| # ilustracni priklad | # ilustracni priklad |
| fi | fi |
| exit | exit |
| | |
| | ./skript |
| | pravda |
| | |
| | # ilustracni priklad |
| | if x=`expr 1 '+' a` |
| | then |
| | echo "pravda" |
| | else |
| | echo "nepravda" |
| | fi |
| | exit |
| | |
| | ./skript |
| | expr: non-numeric argument |
| | nepravda |
| | |
| | Jestliže chcete, aby výraz ''vyraz'' představoval výraz typu boolean, je zapotřebí použít příkaz ''test''. |
| | |
| | # ilustracni priklad |
| | if test 0 -le 1 |
| | then |
| | echo "pravda" |
| | else |
| | echo "nepravda" |
| | fi |
| | exit |
| | |
| | ./skript |
| | pravda |
| | |
| | # ilustracni priklad |
| | if test 2 -le 1 |
| | then |
| | echo "pravda" |
| | else |
| | echo "nepravda" |
| | fi |
| | exit |
| | |
| | ./skript |
| | nepravda |
| | |
| | Vedle operátoru ''-le'' (menší nebo rovno) je také možné používat operátory v níže uvedené tabulce. |
| | |
| | ^ Operátor ^ Význam ^ |
| | | ''-le'' | je menší nebo rovno | |
| | | ''-lt'' | je menší než | |
| | | ''-ge'' | je větší nebo rovno | |
| | | ''-gt'' | je větší než | |
| | | '' = '' | je rovno | |
| | | ''!='' | je různé od | |
| | |
| | Dále je možné používat také speciální "operátory", které testují status souboru. Následující skript např. zjistí, zda-li v pracovním adresáři existuje soubor ''text.txt''. |
| | |
| | # ilustracni priklad |
| | if test -f "text.txt" |
| | then |
| | echo "pravda" |
| | else |
| | echo "nepravda" |
| | fi |
| | exit |
| | |
| | Následující tabulka představuje kompletní seznam těchto speciálních přepínačů. |
| | |
| | ^ Operátor ^ Význam ^ |
| | | ''-e'' | existuje | |
| | | ''-f'' | existuje a je obyčejným souborem | |
| | | ''-r'' | existuje a lze jej číst | |
| | | ''-w'' | existuje a je možné do něj zapisovat | |
| | | ''-x'' | existuje a je možné jej spustit | |
| | | ''-s'' | existuje a má nenulovou velikost | |
| | | ''-d'' | existuje a je adresářem | |
| |
| == case == | == case == |
| Příkaz ''for'' má několik možných syntaxí. | Příkaz ''for'' má několik možných syntaxí. |
| |
| Následující syntaxe způsobí, že cyklus proběhne tolikrát, kolik je zadáno parametrů, přičemž proměnná ''x'' nabude postupně hodnot všech parametrů. | Následující syntaxe způsobí, že cyklus proběhne tolikrát, kolik je zadáno parametrů, přičemž proměnná ''x'' nabude postupně hodnot všech parametrů. Níže uvedený příklad postupně vypíše hodnoty jednotlivých parametrů skriptu. |
| |
| | # ilustracni priklad |
| for x | for x |
| do | do |
| prikazy | echo "Parametr: $x" |
| done | done |
| | |
| | ./skript 1 2 3 |
| | Parametr: 1 |
| | Parametr: 2 |
| | Parametr: 3 |
| |
| Níže uvedený cyklus proběhne tolikrát, kolik je uvedeno hodnot za klíčovým slovem ''in''. Při průchodu cyklem bude nabýt proměnná ''x'' postupně nabývat těchto hodnot. | Níže uvedený cyklus proběhne tolikrát, kolik je uvedeno hodnot za klíčovým slovem ''in''. Při průchodu cyklem bude nabýt proměnná ''x'' postupně nabývat těchto hodnot. |
| |
| for x in hodnota1 hodnota2 ... | # ilustracni priklad |
| | for x in `ls -d *` |
| do | do |
| prikazy | echo "V pracovnim adresari se nachazi soubor / adresar: "$x |
| done | done |
| |
| prikazy | prikazy |
| done | done |
| |
| |
| Ve výrazu ''vyraz'' je možne používá následující operátory: | Ve výrazu ''vyraz'' je možne používá následující operátory: |
| do | do |
| case $x in | case $x in |
| [0-9]) echo $x "je ciselny parametr." ; expr $x '*' $x;; | [0-9]) echo $x "je ciselny parametr." ; expr $x '*' $x;; |
| *) echo $x "neni ciselny parametr!" ; break;; | *) echo $x "neni ciselny parametr!" ; break;; |
| esac | esac |
| done | done |
| do | do |
| case $x in | case $x in |
| [0-9]) echo $x "je ciselny parametr." ; expr $x '*' $x;; | [0-9]) echo $x "je ciselny parametr." ; expr $x '*' $x;; |
| *) echo $x "neni ciselny parametr!" ; continue;; | *) echo $x "neni ciselny parametr!" ; continue;; |
| esac | esac |
| done | done |
| ... | ... |
| |
| ==== Konfigurační soubory .bashrc a barshr ==== | ==== Konfigurační soubory .bashrc a rc.local ==== |
| |
| Jestliže chcete, aby se určité příkazy, skripty nebo aliasy automaticky spouštěly při přihlášení se do systému, je třeba je přidat do konfiguračních souborů.\\ | Jestliže chcete, aby se určité příkazy, skripty nebo aliasy automaticky spouštěly při přihlášení se do systému, je třeba je přidat do konfiguračních souborů.\\ |
| Konkrétně se jedná soubor ''.bashrc'', který se nachází v domovském adresáři uživatele, a soubor ''bashrc'', který se nachází v adresáři ''/etc''. V případě, že chcete, aby se příkaz, skript nebo alias spouštěly pouze při přihlášení určitého uživatele, modifikujte ''.bashrc'', který se nachází v jeho domovském adresáři. Jestliže naopak chcete, aby se spouštěly při každém přihlášení, přidejte je na konec souboru ''bashrc'' v adresáři ''/etc''. | Konkrétně se jedná soubor ''.bashrc'', který se nachází v domovském adresáři uživatele, a soubor ''rc.local'', který se nachází v adresáři ''/etc/rc.d''. V případě, že chcete, aby se příkaz, skript nebo alias spouštěly pouze při přihlášení určitého uživatele, modifikujte ''.bashrc'', který se nachází v jeho domovském adresáři. Jestliže naopak chcete, aby se spouštěly při každém přihlášení, přidejte je na konec souboru ''rc.local'' v adresáři ''/etc/rc.d''. |
| |
| ==== Periodické spouštění procesů ==== | ==== Periodické spouštění procesů ==== |
| * Přečtěte si kapitolu [[navody:fc6Obsah|Obecné poznámky]]. | * Přečtěte si kapitolu [[navody:fc6Obsah|Obecné poznámky]]. |
| |
| | === cron === |
| Jestliže chcete spouštět skript((Skript je soubor, který obsahuje posloupnost příkazů a který má nastaveno právo spouštění.)) s určitou periodicitou, stačí ho přidat do některého z adresářů ''/etc/cron.*''. Konkrétně se jedná o adresáře ''cron.hourly'', ''cron.daily'', ''cron.weekly'', ''cron.monthly''. Jak už jejich název napovídá, označuje část jejich jména za ''cron.'' periodicitu, se kterou budou tyto skripty spouštěny.\\ | Jestliže chcete spouštět skript((Skript je soubor, který obsahuje posloupnost příkazů a který má nastaveno právo spouštění.)) s určitou periodicitou, stačí ho přidat do některého z adresářů ''/etc/cron.*''. Konkrétně se jedná o adresáře ''cron.hourly'', ''cron.daily'', ''cron.weekly'', ''cron.monthly''. Jak už jejich název napovídá, označuje část jejich jména za ''cron.'' periodicitu, se kterou budou tyto skripty spouštěny.\\ |
| |
| - seznam čísel popř. rozsahů oddělených čárkou | - seznam čísel popř. rozsahů oddělených čárkou |
| |
| ''jmeno_uzivatele'' umožňuje superuživateli nastavit uživatele, jehož jménem má být příkaz spouštěn. Jestliže není jméno uživatele nastaveno, bude příkaz spouštěn z //shell/u superuživatele. | ''jmeno_uzivatele'' umožňuje superuživateli nastavit uživatele, jehož jménem má být příkaz spouštěn. Jestliže není jméno uživatele nastaveno, bude příkaz spouštěn z //shell//u superuživatele. |
| |
| Následující konfigurační soubor spusti ''prikaz1'' 1.ledna v 12:00, ''prikaz2'' každý pracovní den ve 3:00 a příkaz ''prikaz3'' každou hodinu. | Následující konfigurační soubor spusti ''prikaz1'' 1.ledna v 12:00, ''prikaz2'' každý pracovní den ve 3:00 a příkaz ''prikaz3'' každou hodinu. |
| O spouštění souborů v adresáří ''/etc/cron.*'' a souboru ''/etc/cron.d/crontab'' se stará démon ''cron''. Ten je spouštěn společně se systémem a běží neustále na pozadí.\\ | O spouštění souborů v adresáří ''/etc/cron.*'' a souboru ''/etc/cron.d/crontab'' se stará démon ''cron''. Ten je spouštěn společně se systémem a běží neustále na pozadí.\\ |
| |
| **Poznámka:** ''cron'' předpokládá, že systém běží neustále. Narozdíl od serverů tento předpoklad v případě klasických domácích počítačů pochopitelně neplatí. Pro tyto případy je vhodnější podobná utilita ''anacron'', která přebírá instrukce se souboru ''/etc/anacrontab''. ''anacron'' se postará o to, aby nedošlo k přeskočení některých příkazů z důvodů časové diskontinuity (např. z důvodu vypnutí počítače nebo přenastavení systémového času). | **Poznámka:** ''cron'' předpokládá, že systém běží neustále. Narozdíl od serverů tento předpoklad v případě klasických domácích počítačů pochopitelně neplatí. Pro tyto případy je vhodnější podobná utilita ''anacron'', která přebírá instrukce se souboru ''/etc/anacrontab''. ''anacron'' se postará o to, aby nedošlo k přeskočení některých příkazů z důvodů časové diskontinuity (např. z důvodu vypnutí počítače nebo přenastavení systémového času).\\ |
| | |
| | === at === |
| | Jestliže chcete spustit příkaz či skript v danou dobu a nechcete k tomu použít ''cron'', máte k dispozici příkaz ''at''. Následující příkaz vypne počítač ve 23:00. |
| | |
| | at 11pm |
| | at> /sbin/shutdown -h now |
| | at> |
| | |
| | Stiskněte //Ctrl+D//. |
| |
| Jestliže chcete spustit příkaz či skript v danou dobu a nechcete k tomu použít ''cron'', máte k dispozici příkaz ''at''. | Job at 2007-01-04 23:00 |
| |
| ==== Další informace ==== | ==== Další informace ==== |