Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
navody:fc6prompt [2006/12/22 20:16] – macky | navody:fc6prompt [2022/11/14 11:25] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 19: | Řádek 19: | ||
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 '' | 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 '' | ||
- | |||
- | Příkazový řádek otevřete v grafickém prostředí //Gnome// pomocí nabídky //Aplikace -> Příslušenství -> Terminál// | ||
**Poznámka: | **Poznámka: | ||
+ | |||
+ | ==== 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 === | ||
Řádek 771: | Řádek 779: | ||
ps aux | grep macky | ps aux | grep macky | ||
+ | |||
+ | === top === | ||
+ | |||
+ | Dalším z příkazů, který souvisí s procesy, se tzv. '' | ||
+ | |||
+ | top | ||
=== kill === | === kill === | ||
Řádek 784: | Řádek 798: | ||
**Poznámka: | **Poznámka: | ||
+ | |||
+ | === nice a renice === | ||
+ | Systémové prostředky (např. procesorový čas a paměť) jsou " | ||
+ | |||
+ | Pomocí příkazů '' | ||
+ | |||
+ | Běžný uživatel může " | ||
+ | |||
+ | Pomocí příkazu '' | ||
+ | |||
+ | nice -n 5 / | ||
+ | |||
+ | Prioritu již spuštěného přikazu lze změnit pomocí '' | ||
+ | |||
+ | renice 10 pid_procesu | ||
+ | |||
+ | Hodnotu //PID// daného procesu lze získat např. pomocí '' | ||
+ | |||
+ | **Poznámka: | ||
==== Matematika z příkazové řádky ==== | ==== Matematika z příkazové řádky ==== | ||
Řádek 789: | Řádek 822: | ||
=== Proměnné === | === Proměnné === | ||
- | Proměnné v // | + | Proměnné v unixových |
Proměnná se vytvoří specifikací jejího jména a přiřazením hodnoty a není ji tak potřeba před použitím deklarovat. Jméno proměnné musí vždy začínat písmenem. | Proměnná se vytvoří specifikací jejího jména a přiřazením hodnoty a není ji tak potřeba před použitím deklarovat. Jméno proměnné musí vždy začínat písmenem. | ||
K hodnotám uloženým v proměnné se přistupuje pomocí znaku dolar '' | K hodnotám uloženým v proměnné se přistupuje pomocí znaku dolar '' | ||
Řádek 811: | Řádek 844: | ||
echo " | echo " | ||
- | Příkaz '' | + | Hodnotu proměnné je možné zadávat také interaktivně. K tomuto účelu slouží příkaz '' |
read x | read x | ||
Řádek 826: | Řádek 859: | ||
echo `expr 1 '<' | echo `expr 1 '<' | ||
+ | 1 | ||
+ | | ||
+ | echo `expr 1 '>' | ||
+ | 0 | ||
+ | | ||
echo `expr 5 ' | echo `expr 5 ' | ||
+ | 1 | ||
+ | | ||
echo `expr 1 '&' | echo `expr 1 '&' | ||
+ | 0 | ||
| | ||
x = `expr 1 ' | x = `expr 1 ' | ||
echo $x | echo $x | ||
+ | 7 | ||
- | **Poznámka: | + | **Poznámka: |
x=1 | x=1 | ||
- | y=$a+1 | + | y=$x+1 |
echo $y | echo $y | ||
1+1 | 1+1 | ||
x=1 | x=1 | ||
- | y=`expr $a+1` | + | y=`expr $x+1` |
echo $y | echo $y | ||
2 | 2 | ||
- | |||
- | |||
Příkaz '' | Příkaz '' | ||
Řádek 860: | Řádek 900: | ||
echo `expr index " | echo `expr index " | ||
2 | 2 | ||
+ | | ||
echo `expr index " | echo `expr index " | ||
0 | 0 | ||
Řádek 900: | Řádek 941: | ||
Dle výše uvedeného výpisu je k dispozici pouze jedna tiskárna, která se jmenuje '' | Dle výše uvedeného výpisu je k dispozici pouze jedna tiskárna, která se jmenuje '' | ||
- | Seznam úloh, které se momentálně nachází v tiskové frontě získáte pomocí | + | Seznam úloh, které se momentálně nachází v tiskové frontě získáte pomocí |
lpq | lpq | ||
Řádek 906: | Řádek 947: | ||
Rank Owner Job File(s) | Rank Owner Job File(s) | ||
1st | 1st | ||
- | |||
- | popř. | ||
lpq -Pjmeno_tiskarny | lpq -Pjmeno_tiskarny | ||
Řádek 979: | Řádek 1018: | ||
==== Programování ==== | ==== Programování ==== | ||
- | Shell je možné použít jako programovací jazyk. Není sice tak všestranný jako např. Java nebo C++, ale přesto je možné s jeho využitím řešit řadu problémů. Následující kapitola předpokládá znalost základních příkazů a představuje tak zakončení této kapitoly. | + | //Shell// je možné použít jako programovací jazyk. Není sice tak všestranný jako např. |
=== Skript === | === Skript === | ||
- | V souvislosti s shellem | + | V souvislosti s // |
=== Argumenty předávané skriptu === | === Argumenty předávané skriptu === | ||
- | Skriptu je možné předávat hodnoty pomocí argumentů. K tomu slouží deset tzv. pozičních parametrů, které odpovídají speciálním // | + | Skriptu je možné předávat hodnoty pomocí argumentů. K tomu slouží deset tzv. pozičních parametrů, které odpovídají speciálním // |
Vytvořte následující soubor, který pojmenujte součet. | Vytvořte následující soubor, který pojmenujte součet. | ||
Řádek 1013: | Řádek 1052: | ||
Jedna se o nasledujici parametry: | Jedna se o nasledujici parametry: | ||
- | **Poznámka: | + | **Poznámka: |
=== Příkazy větvení === | === Příkazy větvení === | ||
Řádek 1042: | Řádek 1081: | ||
prikazy | prikazy | ||
fi | fi | ||
- | + | Výraz '' | |
- | **Poznámka: | + | |
# ilustracni priklad | # ilustracni priklad | ||
Řádek 1053: | Řádek 1091: | ||
fi | fi | ||
exit | exit | ||
+ | | ||
+ | ./skript | ||
+ | pravda | ||
+ | |||
+ | # ilustracni priklad | ||
+ | if x=`expr 1 ' | ||
+ | then | ||
+ | echo " | ||
+ | else | ||
+ | echo " | ||
+ | fi | ||
+ | exit | ||
+ | | ||
+ | ./skript | ||
+ | expr: non-numeric argument | ||
+ | nepravda | ||
+ | |||
+ | Jestliže chcete, aby výraz '' | ||
+ | |||
+ | # ilustracni priklad | ||
+ | if test 0 -le 1 | ||
+ | then | ||
+ | echo " | ||
+ | else | ||
+ | echo " | ||
+ | fi | ||
+ | exit | ||
+ | | ||
+ | ./skript | ||
+ | pravda | ||
+ | |||
+ | # ilustracni priklad | ||
+ | if test 2 -le 1 | ||
+ | then | ||
+ | echo " | ||
+ | else | ||
+ | echo " | ||
+ | fi | ||
+ | exit | ||
+ | | ||
+ | ./skript | ||
+ | nepravda | ||
+ | |||
+ | Vedle operátoru '' | ||
+ | |||
+ | ^ Operátor ^ Význam ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | Dále je možné používat také speciální " | ||
+ | |||
+ | # ilustracni priklad | ||
+ | if test -f " | ||
+ | then | ||
+ | echo " | ||
+ | else | ||
+ | echo " | ||
+ | fi | ||
+ | exit | ||
+ | |||
+ | Následující tabulka představuje kompletní seznam těchto speciálních přepínačů. | ||
+ | |||
+ | ^ Operátor ^ Význam ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
== case == | == case == | ||
Řádek 1077: | Řádek 1189: | ||
Neznamy operator! | Neznamy operator! | ||
- | Výše uvedený skript vyžaduje tři parametry. Skript podle hodnoty druhého | + | Výše uvedený skript vyžaduje tři parametry. Skript podle hodnoty druhého |
== Konstruktory && a || == | == Konstruktory && a || == | ||
Řádek 1083: | Řádek 1195: | ||
Konstruktory ''&&'' | Konstruktory ''&&'' | ||
- | Konstruktor ''&&'' | + | Konstruktor ''&&'' |
uname | grep Linux i686 && echo " | uname | grep Linux i686 && echo " | ||
Řádek 1097: | Řádek 1209: | ||
Příkaz '' | Příkaz '' | ||
- | Následující syntaxe způsobí, že cyklus proběhne tolikrát, kolik je zadáno parametrů, přičemž proměnná '' | + | Následující syntaxe způsobí, že cyklus proběhne tolikrát, kolik je zadáno parametrů, přičemž proměnná '' |
+ | # ilustracni priklad | ||
for x | for x | ||
do | do | ||
- | | + | |
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 '' | Níže uvedený cyklus proběhne tolikrát, kolik je uvedeno hodnot za klíčovým slovem '' | ||
- | for x in hodnota1 hodnota2 ... | + | |
+ | | ||
do | do | ||
- | | + | |
done | done | ||
Řádek 1119: | Řádek 1238: | ||
prikazy | prikazy | ||
done | done | ||
- | |||
Ve výrazu '' | Ve výrazu '' | ||
Řádek 1166: | Řádek 1284: | ||
== Přerušení cyklu == | == Přerušení cyklu == | ||
- | K přerušení cyklu slouží příkazy '' | + | K přerušení cyklu slouží příkazy '' |
Příkaz '' | Příkaz '' | ||
Řádek 1174: | Řádek 1293: | ||
do | do | ||
case $x in | case $x in | ||
- | [0-9]) echo $x "je ciselny parametr." | + | [0-9]) echo $x "je ciselny parametr." |
- | *) echo $x "neni ciselny parametr!" | + | |
esac | esac | ||
done | done | ||
Řádek 1198: | Řádek 1317: | ||
do | do | ||
case $x in | case $x in | ||
- | [0-9]) echo $x "je ciselny parametr." | + | |
- | *) echo $x "neni ciselny parametr!" | + | *) echo $x "neni ciselny parametr!" |
esac | esac | ||
done | done | ||
Řádek 1229: | Řádek 1348: | ||
Následující funkce vyhledá soubory a adresáře. Jako prvni parametr je zadána část jména hledaného souboru popř. adresáře. Ostatní parametry představují adresáře, které mají být prohledány. Je-li zadán pouze první parametr, prohledává se celý systém souborů. | Následující funkce vyhledá soubory a adresáře. Jako prvni parametr je zadána část jména hledaného souboru popř. adresáře. Ostatní parametry představují adresáře, které mají být prohledány. Je-li zadán pouze první parametr, prohledává se celý systém souborů. | ||
- | | + | # NAZEV SKRIPTU: skript |
+ | | ||
searchfile() | searchfile() | ||
{ | { | ||
Řádek 1248: | Řádek 1368: | ||
} | } | ||
- | **Poznámka: | + | **Poznámka: |
Aby bylo možné funkci používat, je třeba nejprve načíst soubor, který obsahuje definice funkcí. Přesuňte se do adresáře, který obsahuje tento soubor a do příkazové řádky zadejte | Aby bylo možné funkci používat, je třeba nejprve načíst soubor, který obsahuje definice funkcí. Přesuňte se do adresáře, který obsahuje tento soubor a do příkazové řádky zadejte | ||
Řádek 1262: | Řádek 1382: | ||
... | ... | ||
- | ==== 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 '' | + | Konkrétně se jedná soubor '' |
+ | |||
+ | ==== Periodické spouštění procesů ==== | ||
+ | * Přečtěte si kapitolu [[navody: | ||
+ | |||
+ | === 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, | ||
+ | |||
+ | Další možností je vytvořit si vlastní konfigurační soubor '' | ||
+ | Syntaxe tohoto konfiguračního souboru je následující | ||
+ | |||
+ | minuta hodina den mesic den_v_tydnu [jmeno_uzivatele] prikaz | ||
+ | |||
+ | ^ **Pole** ^ **Popis** ^ **Rozsah** ^ | ||
+ | | minuta | minuta příslušného hodiny | 0 - 59 | | ||
+ | | hodina | hodina příslušného dne | 0 - 23 | | ||
+ | | den | den v měsíci | 1 - 31 | | ||
+ | | mesic | měsíc v roce | 1 - 12 | | ||
+ | | den_v_tydnu | den v týdnu | 0 - 6 (0 = neděle)| | ||
+ | |||
+ | Každé pole navíc může obsahovat znak: | ||
+ | - hvězdička ('' | ||
+ | - dvě čísla oddělená pomlčkou, která značí rozsah hodnot | ||
+ | - seznam čísel popř. rozsahů oddělených čárkou | ||
+ | |||
+ | '' | ||
+ | |||
+ | Následující konfigurační soubor spusti '' | ||
+ | |||
+ | #crontab - ilustracni priklad | ||
+ | 0 12 1 1 * | ||
+ | 0 3 * * 1-5 prikaz2 | ||
+ | 0 * * * * | ||
+ | |||
+ | ** Poznámka: | ||
+ | |||
+ | #crontab - ilustracni priklad | ||
+ | 0 12 1 * 5 prikaz | ||
+ | |||
+ | tak nespustí '' | ||
+ | |||
+ | O spouštění souborů v adresáří ''/ | ||
+ | |||
+ | **Poznámka: | ||
+ | |||
+ | === at === | ||
+ | Jestliže chcete spustit příkaz či skript v danou dobu a nechcete k tomu použít '' | ||
+ | |||
+ | at 11pm | ||
+ | at> / | ||
+ | at> | ||
+ | |||
+ | Stiskněte // | ||
+ | |||
+ | Job at 2007-01-04 23:00 | ||
==== Další informace ==== | ==== Další informace ==== | ||
+ | |||
+ | === man === | ||
Bližší informace o výše uváděných příkazech můžete získat pomocí | Bližší informace o výše uváděných příkazech můžete získat pomocí | ||
Řádek 1289: | Řádek 1465: | ||
of -cftuSUX nor --sort. | of -cftuSUX nor --sort. | ||
... | ... | ||
- | + | ||
+ | === apropos === | ||
+ | | ||
Informace uvedené v sekci //NAME// jsou využívány příkazem '' | Informace uvedené v sekci //NAME// jsou využívány příkazem '' | ||
Například seznam všech manuálových stránek, které se váží ke slovu //file//, získáte pomocí | Například seznam všech manuálových stránek, které se váží ke slovu //file//, získáte pomocí | ||
apropos file | apropos file | ||
+ | |||
+ | === info === | ||
Dalším užitečným příkazem pro získání nápovědy je '' | Dalším užitečným příkazem pro získání nápovědy je '' |