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 ==== |