navody:fc5prirucka21

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
navody:fc5prirucka21 [2006/08/21 21:19] mackynavody:fc5prirucka21 [2022/11/14 12:25] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 2: Řádek 2:
  
 ===== Základy příkazové řádky ===== ===== Základy příkazové řádky =====
-I když již není znalost unixových příkazů pro správné soužití s Linuxem natolik důležitá jako dříve, není od věci osvojit si alespoň několik základních příkazů. Důvodem je, že  +I když již není znalost unixových příkazů pro soužití s //Linux//em natolik důležitá jako dříve, není od věci osvojit si alespoň několik základních příkazů. Důvodem je, že  
-"klikací" aplikace pro nastavení systému se mohou lišit pro jednotlivé verze distribuce. Příkazy však zůstavají neměnné. Navíc v případě, kdy budete nuceni pracovat např. v záchranném módu, budete odkázáni výhradně na příkazový řádek. Sečteno a podtrženo - znalost několika málo příkazů Vás nezabije, ale posílí (navíc zažije určitě řadu situací, kdy se Vám tato znalost bude navíc i hodit).\\+"klikací" aplikace pro nastavení systému se mohou lišit pro jednotlivé verze distribuce - příkazy však zůstávají neměnné. Navíc v případě, kdy budete nuceni pracovat např. v záchranném módu, budete odkázáni výhradně na příkazový řádek. Sečteno a podtrženo - znalost několika málo příkazů Vás nezabije, ale posílí (navíc zažije určitě řadu situací, kdy se Vám tato znalost bude i hodit). Jestliže Vás však tato kapitola už od prvního pohledu odpuzuje, můžete ji přeskočit.\\ 
 + 
 +V následujícím textu budeme zaměňovat pojmy příkazový řádek a terminál. Příkazovým řádkem / terminálem budeme rozumět rozhraní, pomocí něhož zadává uživatel příkazy. Dalším pojmem, se kterým se zde můžete setkat, je //shell//. //shell// je zjednodušeně řečeno software, který umožňuje komunikaci mezi uživatelem a jádrem //OS Linux// - je totiž zodpovědný za interpertaci příkazů zadávaných uživatelem prostřednictvím příkazového řádku. //shell// tak brání tomu, aby uživatelé přistupovali přímo k jádru, což lze chápat do jisté míry jako bezpečnostní prvek.\\ 
 +Pro //OS Linux// bylo vyvinuto několik //shell//ů. Standardním //shell//em je //bash//, který bude s největší pravděpodobností také součástí Vaší instalace. //bash// je akronymem sousloví "**B**ourne **A**gain **SH**ell" a je pokračovatelem původního //shell//u, který napsal Stephen Bourne koncem 70.let. Samotný //bash// pak pochází z roku 1987.\\ 
 + 
 +Dalším hojně používaným pojmem je příkaz. Příkaz není v podstatě nic jiného než soubor, který má nastaveno právo spouštění (viz. kapitola [[navody:fc5prirucka21#Definování přístupových práv]]). Většina těchto souborů je pak uložena v adresářích ''/sbin'', ''/bin'', ''/usr/bin'' a ''/usr/sbin''. Jestliže chceme zadat daný příkaz stačí ve většině případů do příkazové řádky napsat pouze jeho jméno. 
 + 
 +  ls -la 
 + 
 +Je však možné také zadat kompletní cestu. 
 + 
 +  /bin/ls -la 
 + 
 +V případě, že adresář, ve kterém se nachází daný příkaz, není definován v proměnné ''PATH'', je uvedení celé cesty nezbytné (viz. kapitola [[navody:fc5prirucka21#Proměnná PATH]]).\\ 
 + 
 +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í. 
 + 
 +==== Obecné informace === 
 + 
 +=== Proměnná PATH === 
 +Jak již bylo zmíněno v úvodu, aby bylo možné spustit daný příkaz pouze zadáním jména bez specifikování celé cesty, musí být adresář, ve kterém je příkaz uložen, definován v proměnné ''PATH''. Obsah této proměnné získáte pomocí příkazu 
 + 
 +  echo $PATH 
 +     
 +  /usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/macky/bin 
 + 
 +Na výše uvedeném výpisu je vidět, že proměnná ''PATH'' obsahuje cesty k několika adresářům oddělených dvojtečkou. Jestliže uživatel zadá příkaz, jsou postupně v pořadí daném výpisem procházeny jednotlivé adresáře. V případě, že některý z těchto adresářů bude obsahovat soubor se stejným jménem jako jméno příkazu, pokusí se ho //shell// spustit. 
 + 
 +  ls -la 
 + 
 +Jestliže se tento soubor spustit nepodaří (např. jestliže není nastaveno právo spouštění) nebo jestliže žádný z adresářů stejnojmenný soubor neobsahuje, nahlásí //shell// chybu.\\ 
 +V případě, že soubor sice existuje, avšak jeho adresář není specifikován v proměnné ''PATH'', jsou možná dvě řešení. Prvním a nejjednodušším řešením je uvést celou cestu k danému souboru. 
 + 
 +  /bin/ls -la 
 + 
 +Druhou možností je pak přidat daný adresář do proměnné ''PATH''. Editaci této proměnné může provádět pouze superuživatel. Je také dobré si rozmyslet, zda-li je opravdu nutné daný adresář do proměnné ''PATH'' přidávat. Jestliže totiž přidáme množství adresářů s velkým počtem souborů, může dojít z důvodu procházení těchto adresářů k prodloužení zpracování příkazů. Dalším aspektem je pak bezpečnostnost. Jestliže bychom např. přidali adresář na začátek proměnné ''PATH'' a tento adresář nezabezpečili proti zápisu pro ostatní uživatele, může dojít k "podstrčení" příkazu. //shell// totiž postupně prochází všechny adresáře a spustí první soubor prvního adresáře, jehož jméno se shoduje se jménem příkazu. Příkaz ''ls -la'' by pak namísto výpisu obsahu pracovního adresáře mohl např. mazat soubory.\\ 
 +Adresář ''/cesta/k/adresari'' je možné na konec proměnné ''PATH'' přidat pomocí příkazu 
 + 
 +  $PATH = echo $PATH:/cesta/k/adresari 
 + 
 +=== Spuštení vícero příkazů === 
 +Standardně zapisujeme jeden příkaz na jeden řádek. 
 + 
 +  cd /usr/sbin 
 +  ls -la 
 + 
 +Znak středník (//;//) umožňuje spustit několik příkazů po sobě v pořadí uvedeném v příkazové řádce. 
 + 
 +  cd /usr/sbin; ls -la 
 + 
 +Tento zápis je ekvivalentní s výše uvedeným. 
 + 
 +=== Zástupné znaky === 
 + 
 +Zástupné znaky (tzv. //wildcards//) umožňují specifikovat několik jmen souborů / adresářů najednou.\\ 
 +Uvažujme soubory ''text.txt'', ''textik.txt'' a ''latex.tex''. Jestliže bysme chtěli zjistit např. nastavená práva přiřazená těmto souborům pro jednotivé uživatele, můžeme použít tři samostatné příkazy 
 + 
 +  ls -la text.txt 
 +  ls -la text.tex 
 +  ls -ls latex.tex 
 + 
 +nebo jeden příkaz. 
 + 
 +  ls -la *tex*.t* 
 + 
 +Zástupný znak hvězdička (//*//) představuje libovolný počet znaků (včetně žádného znaku).\\ Dalším zástupným znakem je otazník (//?//), kterým nahrazujeme libovolný jeden znak. Soubory ''text.txt'' a ''text.tex'' tedy můžeme pomocí tohoto zástupneho znaku výjádřit jako 
 + 
 +  ls -la text.t?? 
 + 
 +Libovolný znak z vybrané skupiny znaků lze zapsat pomocí dvojice hranatých závorek (//[// , //]//), které obsahují dané znaky. Uvažujme soubory ''text_a.txt'', ''text_A.txt'' ((//OS Linux// narozdíl od //OS Windows// rozlišuje malá a velká písmena v názvech souborů a adresářů. Soubor ''text_a.txt'' a ''text_A.txt'' tak nejsou jeden a tentýž soubor ale dva rozdílné soubory.)), ''text_b.text'', ''text_B.txt'', ''text_1.txt'' a ''text_2.txt''. Příkaz 
 + 
 +  ls -la text_[a,b].txt 
 + 
 +nám vypíše údaje o souborech ''text_a.txt'' a ''text_b.txt''. Příkaz 
 + 
 +  ls -la text_[A-B].txt 
 + 
 +zase vypíše údaje o souborech ''text_A.txt'' a ''text_B.txt''. Údaje o souborech ''text_1.txt'' a ''text_2.txt'' získáme např. pomocí 
 + 
 +  ls -la text_[0-9].txt 
 + 
 +Chceme-li získat údaje pro všechny soubory, použijeme syntaxi 
 + 
 +  ls -la text_[0-9, a-z, A-Z].txt 
 + 
 + 
 +Informace o všech souborech kromě souboru ''text_2.txt'' získáme pomocí 
 + 
 +  ls -la text_[!2].txt 
 + 
 +=== Použití závorek a zpětného lomítka === 
 +Způsob, jakým příkazový řádek vyhodnocuje zadané příkazy, si v některých případech může vynutit použití závorek popř. zpětného lomítka. Klasickým příkladem jsou mezery v názvech souborů a adresářů běžně používané v OS typu Windows. Jestliže budeme mít adresář ''jmeno adresare'' bude příkaz 
 + 
 +  cd jmeno adresare 
 + 
 +interpretován stejně jako kdybychom zadali pouze 
 + 
 +  cd jmeno 
 + 
 +Tento problém se dá vyřešit třemi způsoby. 
 + 
 +  cd 'jmeno adresare' 
 +  cd "jmeno adresare" 
 +  cd jmeno\ adresare 
 + 
 +V prvním případě jednoduché uvozovky "chrání" v nich uzavřený text před interpretací příkazovým řádkem. Druhý příklad je totožný s prvním s tím rozdílem, že dvojité uvozovky povolují interpretaci zástupných znaků. Zpětné lomítko brání interpretaci bezprostředně následujícího znaku.\\ 
 + 
 +Mezi znaky interpretované příkazovou řádkou patří vedle mezery např. zástupné znaky, ampersand (//&//), znak "svislítko" (//|//) a lomítko (/////).  
 + 
 +=== Apostrof === 
 + 
 +Jestliže text uzavřeme do apostrofů, bude text zpracován jako příkaz a na jeho místo bude dosazen výstup tohoto příkazu. 
 + 
 +  $pracovni_adresar=`pwd` 
 +  echo $pracovni_adresar 
 + 
 +**Poznámka:** Pomocí prvního příkazu definujeme proměnnou //pracovni_adresar// a její hodnotu vypíšeme pomocí druhého příkazu. Při přiřazení hodnoty proměnné nesmí být mezi jménem proměnné, znakem rovno (//=//) a hodnotou mezera. 
 + 
 +=== Přesměrování výstupu === 
 +Řada programů produkuje určitý výstup. Například příkaz 
 + 
 +  ls -la 
 + 
 +vypíše na obrazovku obsah pracovního adresáře. Ta je v tomto případě tzv. standardním výstupem. Kdybychom však chtěli výstup tohoto příkazu zapsat např. do souboru, museli bychom tento výstup přesměrovat. K tomu slouží znaky ''>'' a ''>>''
 + 
 +  ls -la > obsah_adresare.txt 
 +  ls -la >> obsah_adresare.txt 
 + 
 +Pomocí prvního příkazu vytvoříme soubor ''obsah_adresare.txt''. Pokud tento soubor již existuje, přepíšeme jeho obsah. Druhý příkaz je totožný s tím rozdílem, že v případě existence souboru ''obsah_adresare.txt'' nedojde k přepsání jeho obsahu, ale přidání výstupu na konec souboru.\\ 
 + 
 +V některých případech se může být žádoucí výstup příkazu zahodit. V tomto případě přesměrujeme výstup do adresáře ''/dev/null'', který je jakousi "černou dírou" systému. 
 + 
 +  ls -la > /dev/null 
 + 
 +=== Roury === 
 +Roura je mechanismus, kterým je možné přímo předat výstup jednoho příkazu příkazu jinému. Klasickým příkladem je příkaz ''grep''
 + 
 +  cat text.txt | grep Linux 
 + 
 +Příkaz nalevo od "svislítka" vygerenuje obsah souboru ''text.txt'', který je předán příkazu ''grep''. Ten pak vypíše všechny řádky, které obsahují slovo Linux. 
 + 
 +=== Příkazy spouštěné na pozadí === 
 +Standardně jsou příkazy spouštěné na popředí. To znamená, že příkazový řádek je příkazem "zablokován" ((Jestliže se nejedná o interaktivní příkaz - např. textový editor.)) a uživatel musí čekat, než proběhne jeho zpracování. Alternativou k aplikacím spuštěným na pozadí jsou příkazy spuštěné na pozadí. V tomto případě není příkazový řádek příkazem blokován a uživatel může spouštět další příkazy. Příkaz se spustí na pozadí tak, že se na jeho konec přidá znak ampersand (//&//). 
 + 
 +  sleep 60& 
 + 
 +Narozdíl od výše uvedené syntaxe, zablokuje příkaz 
 + 
 +  sleep 60 
 + 
 +příkazový řádek na 60 sekund. Po tuto dobu nemůže uživatel zadávat další příkazy a musí čekat, než příkaz skončí.
  
-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:** V následujícím textu budu zaměňovat pojmy příkazový řádek a terminál. Zde uvedené příkazy lze označit jako naprosté minimum příkazové řádky - seznam příkazů není ani zdaleka vyčerpávající. 
  
 ==== Uživatelé ==== ==== Uživatelé ====
  
-=== passwd ===+V //Linux//u rozlišujeme dvě základní kategorie úživatelů - běžného uživatele a tzv. superuživatele (root).\\ 
 +Účet superuživatele slouží pro správu systému. Tento uživatel tak může bez omezení přistupovat ke všem souborů, adresářům a procesům ((Proces lze zjednodušeně chápat jako spuštěnou aplikaci.)). Jeho práva jsou "absolutní" a nelze je omezit. Z tohoto důvodu je práce pod účetem superuživatele potenciálně nebezpečná - může totiž vést k poškození systému.\\ 
 +Naproti tomu běžní uživatelé mohou v systému vykonávat pouze takové činnosti, které jim dovolují přidělená práva. Standardně tato práva spravuje právě superuživatel.\\
  
-Příkaz //passwd// umožňuje uživateli změnu hesla. Jinému uživateli může heslo změnit pouze superuživatel.\\+Každý z uživatelů patří minimálně do jedné skupiny uživatelů, přičemž jedna z těchto skupin je defaultní. Skupiny uživatelů jsou důležité pro definování [[navody:fc5prirucka21#Definování přístupových práv|přístupových práv]]. Tímto způsobem je umožněn definované skupině uživatelů přístup ke společným souborům / adresářům popř. spouštění programů. 
 + 
 +=== useradd === 
 +Příkaz ''useradd'' přidá do systému nového uživatele. Následující příkaz vytvoří uživatele ''uzivatel'' náležícího do defaultní skupiny ''skupina''. Pro tohoto uživatele vytvoří domovský adresář ''/home/uzivatel'' (v případě, že tento adresář ještě neexistuje). 
 + 
 +  /usr/sbin/useradd -m uzivatel -g skupina 
 + 
 +**Poznámka:** Pro tohoto uživatele je ještě zapotřebí nastavit heslo pomocí příkazu ''passwd''
 + 
 +=== userdel === 
 +''userdel'' slouží k odstranění uživatele. Pomocí příkazu 
 + 
 +  /usr/sbin/userdel -r uzivatel 
 + 
 +odstraníte ze systému uživatele ''uživatel'' včetně jeho domovské adresáře. 
 + 
 +=== groupadd === 
 +Příkaz ''groupadd'' přidává do systému novou skupinu. 
 + 
 +  /usr/sbin/groupadd -f skupina 
 + 
 +=== groupdel === 
 +''groupdel'' slouží k odebrání skupiny. Aby bylo možné skupinu odebrat, je nejprve nutné zrušit účet všem uživatelům, kteří do této skupiny patří. Předpokládejme, že budeme chtít zrušit skupinu ''skupina''. Seznam uživatelů náležících do této skupiny lze získat následujícím způsobem. Nejprve je třeba ze souboru ''etc/group'' zjistit identifikační číslo skupiny ''skupina''
 + 
 +  cat /etc/group | grep skupina 
 +     
 +  skupina:x:501: 
 + 
 +Seznam uživatelů této skupiny získáme pomocí 
 + 
 +  cat /etc/passwd | grep 501 
 +   
 +  uzivatel:x:501:501::/home/uzivatel:/bin/bash 
 + 
 +Nejprve je třeba odstranit uživatele, po té je možné odstranit skupinu. 
 + 
 +  /usr/sbin/userdel -r uzivatel 
 +  /usr/sbin/groupdel skupina   
 + 
 +=== passwd === 
 +Příkaz ''passwd'' umožňuje uživateli provést změnu svého hesla. Jinému uživateli může heslo změnit pouze superuživatel.\\
  
 Své heslo můžete změnit pomocí Své heslo můžete změnit pomocí
Řádek 24: Řádek 216:
  
 === su === === su ===
- +''su'' je příkazem pro změnu uživatele. Klasickým případem je, když z důvodu instalace aplikace potřebujete získat práva superuživatele. Po zadání příkazu ''su'' bude vyzváni k zadání hesla daného uživatele (s vyjímkou případů, kdy tento příkaz spouštíte jako superuživatel).\\
-//su// je příkazem pro změnu uživatele. Klasickým případem je, když v rámci instalace aplikace popř. úpravě nastavení systému potřebuje získat práva superuživatele. Po zadání příkazu //su// bude vyzvání k zadání hesla daného uživatele (s vyjímkou případů, kdy tento příkaz spouštíte jako superuživatel).\\+
  
 Změnu uživatele na superuživatele provedeme pomocí Změnu uživatele na superuživatele provedeme pomocí
Řádek 35: Řádek 226:
   su root   su root
  
-Jestliže se chceme změnit svou "identitu" na jiného uživatele, použijeme následující syntaxi+Jestliže se chcete změnit svou "identitu" na jiného uživatele, použijte následující syntaxi
  
   su jmeno_uzivatele   su jmeno_uzivatele
  
-//su// můžete také spustit ve tvaru+''su'' můžete také spustit ve tvaru
  
   su - jmeno_uzivatele   su - jmeno_uzivatele
  
-Rozdíl oproti výše uvedené syntaxi je v tom, že se Vám nastaví kompletní shell prostředí daného uživatele.+Rozdíl oproti výše uvedené syntaxi je v tom, že se Vám nastaví kompletní //shell// prostředí daného uživatele (tjvčetně případných proměnných a dalších vlastností). 
  
 ==== Základní informace o systému ==== ==== Základní informace o systému ====
  
 === uname === === uname ===
-//uname// slouží ke zjištění údajů o systému, ke kterému jste momentálně přihlášeni.+''uname'' slouží ke zjištění údajů o systému, ke kterému jste momentálně přihlášeni.
  
   uname -a   uname -a
 +  
 +  Linux localhost.localdomain 2.6.17-1.2139_FC5 #1 Fri Jun 23 12:40:16 EDT 2006 i686 athlon i386 GNU/Linux
  
 === whoami === === whoami ===
-//whoami// vypíše jméno uživatele, který momentálně "ovládá" příkazový řádek.+''whoami'' vypíše jméno uživatele, který momentálně "ovládá" příkazový řádek.
  
   whoami   whoami
 +  
 +  macky
  
 === free === === free ===
-//free// vypíše informace o využití fyzické operační paměti a tzv. swapu. Údaje zde uváděné jsou v násobcích 1kB.+''free'' vypíše informace o využití fyzické operační paměti a tzv. swapu. Údaje zde uváděné jsou v násobcích 1//kB//.
  
   free   free
 +               total       used       free     shared    buffers     cached
 +  Mem:        515696     507504       8192          0      11444     189824
 +  -/+ buffers/cache:     306236     209460
 +  Swap:            0          0          0
  
 === w === === w ===
-//w// zobrazí základní informace o uživatelích přihlášených do systému a o aplikacích, které tito uživatelé spustili. Dále lze pomocí tohoto příkazu získat informace o čase a zatížení CPU za poslední 1, 5 a 15 minut.+''w'' zobrazí základní informace o uživatelích přihlášených do systému a o aplikacích, které tito uživatelé spustili. Dále lze pomocí tohoto příkazu získat informace o čase a zatížení //CPU// za poslední 1, 5 a 15 minut.
  
   w   w
 +  
 +    18:15:43 up  1:11,  3 users,  load average: 0.40, 0.76, 0.59
 +  USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
 +  macky    :0                      17:04   ?xdm?   4:35   0.66s gnome-session
 +  macky    pts/1    :0.0             17:18    1:20   0.02s  0.02s bash
 +  macky    pts/2    :0.0             18:12    0.00s  0.06s  0.01s w
  
 === df === === df ===
-//df// slouží k získávání informací o místě připojení jednotlivých diskových oddílů a míře zaplnění jim přiděleného prostoru.+''df'' slouží k získávání informací o místě připojení jednotlivých diskových oddílů a míře zaplnění jim přiděleného prostoru.
  
   df   df
 +  
 +  Filesystem           1K-blocks      Used Available Use% Mounted on
 +  /dev/hda6              9912560   5660824   3740068  61% /
 +  tmpfs                   257848            257848   0% /dev/shm
 +  /dev/hda7              1984016    614028   1267576  33% /home
 +  /dev/hda8             28080704   4358864  22272380  17% /opt
 +  /dev/hda1              5116668   3151676   1964992  62% /media/windows_c
  
-Informace zde uváděné jsou v tzv. blocích, které mají standardně velikost 1kB. Pokud Vám tento formát přijde nepřehledný, zkuste použít syntaxi +Informace zde uváděné jsou v tzv. blocích, které mají standardně velikost 1//kB//. Pokud Vám tento formát přijde nepřehledný, zkuste použít syntaxi 
  
   df -h   df -h
- +   
-která vypíše volné místo v kB/MB/GB.+  Filesystem            Size  Used Avail Use% Mounted on 
 +  /dev/hda6             9.5G  5.4G  3.6G  61% / 
 +  tmpfs                 252M      252M   0% /dev/shm 
 +  /dev/hda7             1.9G  600M  1.3G  33% /home 
 +  /dev/hda8              27G  4.2G   22G  17% /opt 
 +  /dev/hda1             4.9G  3.1G  1.9G  62% /media/windows_c 
 +   
 +která vypíše volné místo v //kB/////MB/////GB//.
  
 ====Práce se soubory==== ====Práce se soubory====
Řádek 83: Řádek 303:
  
 === cd === === cd ===
-//cd// slouží ke změně pracovního adresáře. Pracovním adresářem se rozumí adresář, ve kterém se uživatel momentálně nachází a k jehož souborům hodlá primárně přistupovat.\\ +''cd'' slouží ke změně pracovního adresáře. Pracovním adresářem se rozumí adresář, ve kterém se uživatel momentálně nachází a k jehož souborům hodlá primárně přistupovat.\\ 
-Následujícím příkazem nastavníme adresář ///opt/games// jako pracovní.+Následujícím příkazem nastavníme adresář ''/opt/games'' jako pracovní.
  
   cd /opt/games   cd /opt/games
Řádek 92: Řádek 312:
   cd sauerbraten   cd sauerbraten
  
-nás přesune do podadresáře //sauerbraten//, který se nachází v aktuální pracovním adresáři.+nás přesune do podadresáře ''sauerbraten'', který se nachází v aktuální pracovním adresáři.\\ 
 + 
 +V první zápise uvádíme tzv. absolutní cestu k adresáři, v druhém pak cestu relativní. Absolutní cesta vždy začíná lomítkem ''/'', což je adresář na samém vrchodu adresářového stromu - tzv. kořenový adresář. Naproti tomu relativní cesta lomítkem nezačíná - zadaný adresář je hledán pouze v pracovním adresáři. Absolutní cesta adresáře ''sauerbraten'' je tedy ''/opt/games/sauerbraten''.
  
 === pwd === === pwd ===
-//pwd// slouží k zjištění aktuálního pracovního adresáře.+''pwd'' slouží k zjištění aktuálního pracovního adresáře.
  
   pwd   pwd
 +  
 +  /opt/games/sauerbraten  
  
 === ls === === ls ===
-Pomocí //ls// lze získat obsah adresáře. Maximální dostupnou informaci získáme pomocí přepínačů //-la//.+Pomocí ''ls'' lze získat obsah adresáře. Maximální dostupnou informaci získáme pomocí přepínačů ''-la''.
  
   ls -la /opt   ls -la /opt
 +  
 +  drwxr-xr-x  8 root  root   4096 Aug 13 18:35 .
 +  drwxr-xr-x 24 root  root   4096 Aug 27 17:04 ..
 +  drwx------  2 root  root  16384 Jun 24 13:50 lost+found
 +  drwxrwxrwx  5 root  root   4096 Aug 17 20:38 macky
  
 === du === === du ===
-//du// vypíše množství diskového prostoru alokovaného pro zvolený soubor či adresář.+''du'' vypíše množství diskového prostoru alokovaného pro zvolený soubor či adresář.
  
 Příkaz Příkaz
  
-  du /opt+  du /home/macky 
 +   
 +  ... 
 +  4128    /home/macky/Desktop 
 +  ... 
 +  51900   /home/macky/.mozilla   
 +  ...
  
-vypíše seznam souborů a adresářů obsažených v adresáři ///opt// spolu s údajem o velikosti diskového prostoru, který zabírají.+vypíše seznam souborů a adresářů obsažených v adresáři ''/opt'' spolu s údajem o velikosti v jednotkách 1//kB// diskového prostoru, který zabírají. Příkaz je také možné použít s přepínačem ''-h'', který velikost souborů a adresářů vyjádří v jednotkách //kB/////MB/////GB//
 + 
 +  du -h /home/macky 
 + 
 +  ... 
 +  4.1M    /home/macky/Desktop 
 +  ... 
 +  51M     /home/macky/.mozilla 
 +  ...
  
 Příkaz Příkaz
  
-  du -s /opt+  du -s /home/macky
  
-naproti tomu vypíše pouze jedno číslo odpovídající velikosti diskového prostoru, který zabírá adresář ///opt// včetně podadresářů a souborů.+naproti tomu vypíše pouze jedno číslo odpovídající velikosti diskového prostoru, který zabírá adresář ''/opt'' včetně podadresářů a souborů. Opět je možné použít přepínač ''-h''
 + 
 +  du -sh /home/macky 
 +   
 +  566M    /home/macky
  
 === file === === file ===
-//file// slouží k zjištění typu (datového formátu) souboru.+''file'' slouží k zjištění typu (datového formátu) souboru.
  
   file /opt/text.txt   file /opt/text.txt
 +  
 +  text.txt: ASCII text
  
 === rm === === rm ===
- +Příkaz ''rm'' se používá pro odstranění souborů, souborových linků a celé adresářové struktury.
-Příkaz //rm// se používá pro odstranění souborů, souborových linků a celé adresářové struktury.+
  
   rm -ri /opt/games   rm -ri /opt/games
  
-Při specifikaci souborů je možné použít tzv. //wild cards// (zástupné znaky). Libovolný počet znaků ((Včetně žádného znaku.)) lze vyjádřit pomocí hvězdičky (//*//), libovolný jeden znak pomocí otazníků (//?//), jeden znak ze skupiny znaků pomoci //[prvni_znak, druhy_znak, treti_znak, ...]//.+Při specifikaci souborů je možné použít zástupné znaky.
  
   rm -ri /opt/games/*.txt   rm -ri /opt/games/*.txt
Řádek 136: Řádek 384:
  
 === rmdir === === rmdir ===
- +''rmdir'' je příkaz, kterým se mažou adresáře.
-//rmdir// je příkaz, kterým se mažou adresáře.+
  
   rmdir /opt/games   rmdir /opt/games
  
-Stejně jako //rm// podporuje //rmdir// tzv. zástupné znaky.+Stejně jako ''rm'' podporuje ''rmdir'' zástupné znaky.
  
-=== mkdir ===+=== touch === 
 +Příkaz ''touch'' slouží k vytvoření souboru.
  
-//mkdir// slouží k vytvoření nových adresářů.+  touch text.txt
  
-  mkdir /opt/games+**Poznámka:** Soubor je ale možné vytvořit i pomocí textového editoru nebo přesměrováním výstupu jiného souboru. Klasickým případem je uložení výstupu manuálových stránek do souboru.
  
-**Poznámka:** Existuje také explicitní příkaz pro vytvoření souboru +  man rmdir > manualove_stranky_mrdir.txt
-  touch jmeno_souboru+
  
-Soubor je ale možné vytvořit i pomocí textového editoru nebo přesměrováním výstupu jiného souboru. Klasickým případem je uložení výstupu manuálových stránek do souboru.+=== mkdir === 
 +''mkdir'' slouží k vytvoření nových adresářů.
  
-  man mkdir > manualove_stranky_mkdir.txt+  mkdir /opt/games
  
 === cp === === cp ===
  
-//cp// slouží ke kopírování souborů.+''cp'' slouží ke kopírování souborů.
  
   cp zdrojove_soubory cilovy_soubor_nebo_adresar   cp zdrojove_soubory cilovy_soubor_nebo_adresar
  
-Pomocí výše uvedené syntaxe překopírujeme všechny soubory do cílového adresáře. Příkaz //cp// podporuje také zástupné znaky. +Pomocí výše uvedené syntaxe překopírujeme všechny soubory do cílového adresáře. Příkaz ''cp'' podporuje také zástupné znaky. 
  
 === mv === === mv ===
-//mv// slouží k přesunu / přejmenování souborů (včetně adresářů ((Příkaz sice nemůže fyzicky přesunout adresář, ale můžeho ho přejmenovat.)) ). Příkaz //mv// podporuje zástupné znaky.+''mv'' slouží k přesunu / přejmenování souborů (včetně adresářů ((Příkaz sice nemůže fyzicky přesunout adresář, ale můžeho ho přejmenovat.)) ). Příkaz ''mv'' podporuje zástupné znaky.
  
   mv -f zdrojovy_soubor cilovy_soubor   mv -f zdrojovy_soubor cilovy_soubor
Řádek 171: Řádek 419:
   mv -f seznam_zdrojovych_souboru cilovy_adresar   mv -f seznam_zdrojovych_souboru cilovy_adresar
  
-**Poznámka:** Přepínač //-f// přepíše případné existující soubory.+**Poznámka:** Přepínač ''-f'' přepíše případné existující soubory.
  
 === find === === find ===
- +Pomocí ''find'' je možné nalézt umístění zvoleného souboru či adresáře. Tento příkaz podporuje zástupné znaky.
-Pomocí //find// je možné nalézt umístění zvoleného souboru či adresáře. Tento příkaz podporuje zástupné znaky.+
  
   find adresar_k_prohledani -name "jmeno_hledaneho_souboru_nebo_adresare"   find adresar_k_prohledani -name "jmeno_hledaneho_souboru_nebo_adresare"
  
-Následující příkaz vyhledá všechny textové soubory začínající velkým písmenem v celém systému ((Adresář ///// je tzv. kořenovým adresářem. Všechny adresáře jsou podadresáři tohoto adresáře. Proto, dáme-li prohledat kořenový adresář, prohledáváme v podstatě celý počítač.)).+Následující příkaz vyhledá všechny textové soubory začínající velkým písmenem v celém systému ((Adresář ''/'' je tzv. kořenovým adresářem. Všechny adresáře jsou podadresáři tohoto adresáře. Proto, dáme-li prohledat kořenový adresář, prohledáváme všechny připojené systémové soubory počítače.)).
  
    find / -name "[A-Z]*.txt"    find / -name "[A-Z]*.txt"
  
 === ln === === ln ===
-//ln// vytváří tzv. linky na soubory. Linkyzjednodušeně řečeno, odkazují na soubory. Rozlišujeme dva typy linků - pevné a symbolické.\\+''ln'' vytváří tzv. linky na soubory. Podstata linků spočívá v tomže odkazují na soubory. Rozlišujeme dva typy linků - pevné a symbolické.\\
 Symblický link je soubor, který odkazuje na jiný soubor. Pokud provádíme např. editaci symbolického linku, provádíme v skutečnosti editaci souboru, na který tento link odkazuje.\\ Pevný link je naproti tomu  odkazem přímým - není tvořen samostatným souborem ale pouze odkazem v adresáři. Navíc platí omezení, že soubor, na který se pevný link odkazuje, musí být umístěn na stejném diskovém oddílu.\\ Symblický link je soubor, který odkazuje na jiný soubor. Pokud provádíme např. editaci symbolického linku, provádíme v skutečnosti editaci souboru, na který tento link odkazuje.\\ Pevný link je naproti tomu  odkazem přímým - není tvořen samostatným souborem ale pouze odkazem v adresáři. Navíc platí omezení, že soubor, na který se pevný link odkazuje, musí být umístěn na stejném diskovém oddílu.\\
  
Řádek 195: Řádek 442:
   ln zdrojovy_soubor nazev_linku   ln zdrojovy_soubor nazev_linku
  
-**Poznámka:** Výhoda linků je zřejmá - umožnují elegantně obcházet potřebu kopírování souborů. To přispívá k úspoře místa na disku a konzistentnosti systému.+**Poznámka:** Výhoda linků je zřejmá - umožnují elegantně obcházet potřebu kopírování souborů, jestliže je potřebujeme na "dvou" místech. To přispívá k úspoře místa na disku a konzistentnosti systému.
  
 === mc === === mc ===
-//mc// je zkratka pro //Midnight Commander//. Nejedná se příkaz, ale o aplikaci - klon známého //Northon Commander// z dob nadvlády //MS-DOS//. Tato aplikace umožňuje vytváření, přesun, přejmenování a mazání souborů a adresářů. //mc// má také vestavěný editor pro modifikaci souborů, a obsahuje jednoduchého //FTP// klienta.+''mc'' je zkratka pro //Midnight Commander//. Nejedná se ani tako o klasický příkaz jako spíše o aplikaci - klon známého //Northon Commander// z dob nadvlády //MS-DOS//. Tato aplikace umožňuje vytváření, přesun, přejmenování a mazání souborů a adresářů. ''mc'' má také vestavěný editor pro modifikaci souborů, a obsahuje jednoduchého //FTP// klienta.
  
   mc   mc
  
-**Poznámka:** Jestliže //mc// není nainstalován, lze ho snadno přídat jako superuživatel pomocí+**Poznámka:** Jestliže ''mc'' není nainstalován, lze ho snadno přídat jako superuživatel pomocí
  
   yum -y install mc   yum -y install mc
Řádek 209: Řádek 456:
  
 === cat === === cat ===
-//cat// slouží k výpisu obsahu souboru.+''cat'' slouží k výpisu obsahu souboru. 
 + 
 +  cat text.txt
  
 Výpis obsahu souboru je možné přesměrovat do nového souboru. Výpis obsahu souboru je možné přesměrovat do nového souboru.
Řádek 216: Řádek 465:
  
 === more === === more ===
-//more// slouží podobně jako //cat// k výpisu obsahu souborů. Narozdíl od //cat// však //more// obsah souboru "rozobrazovkuje". To znamená, že obsah souboru nevypíše najednou, ale rozdělí se. Na obrazovku vypíše vždy část textu a výpis pokračuje až po stisku klávesy. Tento příkaz se používá zejména při prohlížení dlouhých textových souborů.+''more'' slouží podobně jako ''cat'' k výpisu obsahu souborů. Narozdíl od ''cat'' však ''more'' obsah souboru "rozobrazovkuje". To znamená, že obsah souboru nevypíše najednou, ale rozdělí jej. Na obrazovku vypíše vždy část textu a výpis pokračuje až po stisku klávesy. Tento příkaz se používá zejména při prohlížení dlouhých textových souborů.
  
   more text.txt   more text.txt
  
 === less === === less ===
-Ačkoliv je název možná trochu matoucí, umí toho příkaz //less// více než příkaz //more//. Příkaz //less// stejně jako //more// provede "rozobrazovkování" výpisu obsahu souboru, avšak tento výpis je možné volně procházet pomocí kláves //Page Up// a //Page Down//.+Ačkoliv je název možná trochu matoucí, umí toho příkaz ''less'' více než příkaz ''more''. Příkaz ''less'' stejně jako ''more'' provede "rozobrazovkování" výpisu obsahu souboru, avšak tento výpis je možné volně procházet pomocí kláves //Page Up// a //Page Down//.
  
   less text.txt   less text.txt
  
 === grep === === grep ===
-//grep// slouží k vyhledávání textových řetězců v souborech. Velice často se pojí s výše uvedenými příkazy. Následují příkaz nám vypíše všechny řádky souboru //text.txt//, které obsahují sekvenci znaků //inux//.+''grep'' slouží k vyhledávání textových řetězců v souborech. Velice často se pojí s výše uvedenými příkazy. Následují příkaz nám vypíše všechny řádky souboru ''text.txt'', které obsahují sekvenci znaků //inux//.
  
-  cat text.txt | grep "inux"+  cat text.txt | grep inux
  
-Tento příkaz by např. vypsal všechny řádky, kde figuruje slovo //Linux// nebo //linux//.+Tento příkaz by vypsal všechny řádky souboru ''text.txt'', kde figuruje slovo //Linux// nebo //linux//.
  
 ==== Definování přístupových práv ==== ==== Definování přístupových práv ====
-Jak již bylo zmíměno v kapitole [[navody:fc5prirucka21#Práce se soubory]], každý soubor a adresář má svého vlastníka. Ten pak určuje jaké operace mohou s těmito soubory / adresáři provádět ostatní uživatelé. Standardně se jedná v případě souborů o právo čtění (read), zápisu (write) a spouštění (execute)v případě adresáře pak o právo prohlížení obsahu (ekvivalent práva čtení), manipulace se soubory (ekvivalent práva zápisu) a právo zobrazovat informace o souborech (ekvivalent práva spouštění)((Vedle majitele souboru / adresáře může o těchto právech rozhodovat také superuživatel. Také jakákoliv nastavení provedená vlastníkem souboru / adresáře nemají vliv na práva superuživatele - ta jsou totiž vždy "absolutní".)). Při přidělování práv pak rozlišujeme následující tři skupiny uživatelů: (1) vlastníka souboru / adresáře, (2) tzv. skupinu uživatele a (3) ostatní uživatele. Práva může jednotlivým skupinám přidělit vlastník ((Práva může dokonce upravit také sama sobě. To však nemá dopad na možnost toto nastavení kdykoliv změnit.)). Přehled práv, která se váží k vybranému souboru / adresáři lze získat pomocí příkazu //ls//.\\+Jak již bylo zmíměno v kapitole [[navody:fc5prirucka21#Práce se soubory]], každý soubor a adresář má svého vlastníka. Ten pak určujejaké operace mohou s těmito soubory / adresáři provádět ostatní uživatelé. Standardně se jedná v případě souborů o právo čtění (read), zápisu (write) a spouštění (execute)v případě adresáře pak o právo prohlížení obsahu (ekvivalent práva čtení), manipulace se soubory (ekvivalent práva zápisu) a právo zobrazovat informace o souborech (ekvivalent práva spouštění)((Vedle majitele souboru / adresáře může o těchto právech rozhodovat také superuživatel. Jakákoliv nastavení provedená vlastníkem souboru / adresáře nemají vliv na práva superuživatele - ta jsou totiž vždy "absolutní".)). Při přidělování práv pak rozlišujeme následující tři skupiny uživatelů: (1) vlastníka souboru / adresáře, (2) tzv. skupinu uživatele a (3) ostatní uživatele. Práva může jednotlivým skupinám přidělit vlastník ((Práva může dokonce upravit také sama sobě. To však nemá dopad na možnost toto nastavení kdykoliv změnit.)). Přehled práv, která se váží k vybranému souboru / adresáři lze získat pomocí příkazu ''ls''.\\
 Předpokládejme, že příkaz Předpokládejme, že příkaz
  
Řádek 245: Řádek 494:
  
 === chgrp === === chgrp ===
-Příkaz //chgrp// slouží ke změně vlastníků specifikovaných souborů / adresářů. Změnu skupiny může provést pouze vlastník popř. superuživatel. Tento příkaz podporuje zástupné znaky.+Příkaz ''chgrp'' slouží ke změně vlastníků specifikovaných souborů / adresářů. Změnu skupiny může provést pouze vlastník popř. superuživatel. Tento příkaz podporuje zástupné znaky.
  
   chgrp nova_skupina jmeno_souboru_nebo_adresar   chgrp nova_skupina jmeno_souboru_nebo_adresar
  
 === chown === === chown ===
-Příkaz //chown// je podobný výše uvedenému příkazu //chgrp// s tím rozdílem, že slouží ke změně vlastníka souboru / adresáře.+Příkaz ''chown'' je podobný výše uvedenému příkazu ''chgrp'' s tím rozdílem, že slouží ke změně vlastníka souboru / adresáře.
  
   chown novy_vlastnik jmeno_souboru_nebo_adresare   chown novy_vlastnik jmeno_souboru_nebo_adresare
  
 === chmod === === chmod ===
-Pomocí příkazu //chmod// lze měnit měnit práva přiřazená jednotlivým skupinám. Je možné použít dva způsoby zápisu.\\ +Pomocí příkazu ''chmod'' lze měnit měnit práva přiřazená jednotlivým skupinám. Je možné použít dva způsoby zápisu.\\ 
-V prvním případě nejprve specifikujeme skupinu uživatelů, která následuje znak plus (//+//) popř. mínus (//-//následovaný výčtem práv, která mají být přidána popř. odebrána. Co se skupin uživatelů týče, používají se písmena //u// (user) pro označení vlastníka, //g// (group) pro označení skupiny a //o// (other) pro označení ostatních uživatelů. Práva pak označujeme písmeny //r// (read) pro čtení, //w// (write) pro zápis a //x// (execute) pro spuštění. Následující příkaz přidá vlastníkovi a jeho skupině práva čtení a zápisu pro soubor //soubor//, který se nachází v pracovním adresáři.+V prvním případě nejprve specifikujeme skupinu uživatelů, kterou následuje znak plus (//+//) popř. mínus (//-//doprovázený výčtem práv, která mají být přidána popř. odebrána. Co se skupin uživatelů týče, používají se písmena //u// (**u**ser) pro označení vlastníka, //g// (**g**roup) pro označení skupiny a //o// (**o**ther) pro označení ostatních uživatelů. Práva pak označujeme písmeny //r// (**r**ead) pro čtení, //w// (**w**rite) pro zápis a //x// (e**x**ecute) pro spuštění.\\ 
 +Následující příkaz přidá vlastníkovi a jeho skupině práva čtení a zápisu pro soubor ''soubor'', který se nachází v pracovním adresáři.
  
   chmod ug+rw soubor   chmod ug+rw soubor
Řádek 263: Řádek 513:
  
 ^            ^  čtení ^ zápis ^ spouštění ^ ^            ^  čtení ^ zápis ^ spouštění ^
-^ vlastník    400   | 200   | 100       | +^ vlastník   | 400   | 200   | 100       | 
-^ skupina    |  40    | 20    | 10        | +^ skupina    | 40    | 20    | 10        | 
-^ ostatní    |  4     | 2     | 1         |+^ ostatní    | 4     | 2     | 1         |
  
 Výsledná práva jsou dána součtem čísel uvedených v tabulce. Například příkaz Výsledná práva jsou dána součtem čísel uvedených v tabulce. Například příkaz
  
-  cmod 750 soubor+  chmod 750 soubor
  
 nastaví vlastníkovi všechna práva, skupině vlastníka právo čtení a spouštění. Ostatním uživatelům nebyla přidělena žádná práva. Výsledné číslo 750 je tedy součtem čísel 400, 200, 100, 40 a 10. nastaví vlastníkovi všechna práva, skupině vlastníka právo čtení a spouštění. Ostatním uživatelům nebyla přidělena žádná práva. Výsledné číslo 750 je tedy součtem čísel 400, 200, 100, 40 a 10.
  
 === umask === === umask ===
-Pomocí příkazu //umask// se nastavují implicitní práva pro nově vytvořené soubory. Syntaxe tohoto příkazu je podobná jako v případě //chmod// s číselnou notací. Zásadní rozdíl je v tom, že čísla neurčují práva, která se mají přidat ale naopak práva, která mají odebrána. Například+Pomocí příkazu ''umask'' se nastavují implicitní práva pro nově vytvořené soubory. Syntaxe tohoto příkazu je podobná jako v případě ''chmod'' s číselnou notací. Zásadní rozdíl je v tom, že čísla neurčují práva, která se mají přidat ale naopak práva, která mají odebrána. Například
  
   umask 027   umask 027
  
 ponechává vlastníkovi všechna práva, skupině vlastníka pak práva čtení a spouštění a ostatním uživatelům jsou odebrána všechna práva.\\ ponechává vlastníkovi všechna práva, skupině vlastníka pak práva čtení a spouštění a ostatním uživatelům jsou odebrána všechna práva.\\
-Standardně jsou tato implicitní práva specifikována v souboru ///etc/bashrc//, nicméně každý uživatel si toto nastavení může změnit zápisem do souboru //.bashrc//, který se nachází v jeho domovském adresáři ((Domovským adresářem rozumíme adresář ///home/jmeno_uzivatele//.)). +Standardně jsou tato implicitní práva specifikována v souboru ''/etc/bashrc'', nicméně každý uživatel si toto nastavení může změnit zápisem do souboru ''.bashrc'', který se nachází v jeho domovském adresáři ((Domovským adresářem rozumíme adresář ''/home/jmeno_uzivatele''.)).
- +
- +
  
 ==== Řízení procesů ==== ==== Řízení procesů ====
-Procesem budeme pro účely této kapitoly rozumnět jakýkoliv spuštěný program.+Procesem budeme pro účely této kapitoly rozumnět jakýkoliv spuštěný program. Každému procesu jsou pak jádrem přiřazovány systémové zdroje (tj. procesor a paměť).
  
 === ps === === ps ===
-Pomocí příkazu //ps// získáte seznam všech spuštěných procesů+Pomocí příkazu ''ps aux'' získáte seznam všech spuštěných procesů
  
   ps aux   ps aux
Řádek 310: Řádek 557:
   ...   ...
  
-Z výše uvedeného výpisu lze pro každý proces zjistit uživatele, který jej spustil (položka //USER//) a identifikační číslo procesu (položka //PID//). Vzhledem k tomu, že tento výpis můžeme být vcelku dlouhý, je vhodné použít také příkaz //less// popř. //grep//. Například seznam všech procesů spuštěných uživatelem macky bychom získali pomocí příkazu+Z výše uvedeného výpisu lze pro každý proces zjistit uživatele, který jej spustil (položka //USER//) a identifikační číslo procesu (položka //PID//). Vzhledem k tomu, že tento výpis můžeme být vcelku dlouhý, je vhodné použít také příkaz ''less'' popř. ''grep''. Například seznam všech procesů spuštěných uživatelem macky bychom získali pomocí příkazu
  
   ps aux | grep macky   ps aux | grep macky
  
 === kill === === kill ===
-Příkaz //kill// slouží k ukončení procesů. Jeho syntaxe je následující+Příkaz //kill// slouží k ukončení procesů ((Tento příkaz se hodí zejména pro zpacifikování "neposlušných" procesů.)). Jeho syntaxe je následující
  
   kill pid_procesu   kill pid_procesu
Řádek 323: Řádek 570:
   ps aux   ps aux
  
-Každý uživatel může "zabít" svůj proces; superuživatel pak může zabít jakýkoliv procesAsi nemá smysl zdůrazňovat, že bezhlavé zabíjení procesů superuživatelem může mít za následek kolaps systému.+Každý uživatel může "zabít" svoje procesy; superuživatel pak může zabít jakýkoliv proces ((Asi nemá smysl zdůrazňovat, že bezhlavé zabíjení procesů superuživatelem může mít za následek kolaps systému.)).
  
-==== Spouštění příkazů ====+==== Vypnutí / restart počítače ==== 
 +  * Přečtěte si kapitolu [[navody:fc5prirucka#Obecné poznámky]].
  
-=== Použití závorek a zpětného lomítka === +Počítač lze vypnout pomocí íkazu
-Způsob, jakým íkazový řádek vyhodnocuje zadané příkazy, si v některých připadech může vynutit použití závorek popř. zpětného lomítka. Klasickým příkladem jsou např. mezery v názvech souborů a adresářů běžně používané v OS typu Windows. Jestliže budeme mít adresář //jmeno adresare// bude příkaz+
  
-  cd jmeno adresare+  /sbin/shutdown -h now
  
-interpretován stejně jako kdybychom zadali pouze+a restartovat pomocí
  
-  cd jmeno+  /sbin/shutdown -r now
  
-Tento problém se dá vyřešit třemi způsoby.+===== Další informace =====
  
-  cd 'jmeno adresare' +Bližší informace o výše uváděných příkazech můžete získat pomocí
-  cd "jmeno adresare" +
-  cd jmeno\ adresare+
  
-V prvním případě jednoduché uvozovky "chrání" v nich uzavřený text před interpretací příkazovým řádkem. Druhý příklad je totožný s prvním s tím rozdílem, že dvojité uvozovky povolují interpretaci zástupných znaků. Zpětné lomítko použité v třetím případě brání interpretaci bezprostředně následujícího znaku. Nejjednodušší a nejsnažší cestou, jak zabránit nechtěné interpretaci znaků, je tedy uzavřít příslušný textový řetězec do jednoduchých uvozovek.\\+  man prikaz
  
-Mezi další znaky interpretované íkazovou řádkou patří např. zástupné znaky //*//, //?//, ampersand //&//, "svislítko" //|// a lomítko /////+Např. manuálovou stránku íkazu ''ls'' vyvoláme pomocí
  
-=== Apostrof ===+  man ls 
 +   
 +  LS(1)                            User Commands                           LS(1) 
 +   
 +  NAME 
 +         ls - list directory contents 
 +   
 +  SYNOPSIS 
 +         ls [OPTION]... [FILE]... 
 +   
 +  DESCRIPTION 
 +         List information about the FILEs (the current directory by default).  Sort entries alphabetically if none 
 +       of -cftuSUX nor --sort. 
 +  ...   
 +          
 +Informace uvedené v sekci //NAME// jsou využívány příkazem ''apropos''. Tento příkaz vypisuje seznam manuálových stránek, které se váží k určitému klíčovému slovu.  Pokud toto klíčové slovo figuruje v sekci //NAME//, je daná manuálová stránka vypsána na seznam.\\ 
 +Například seznam všech manuálových stránek, které se váží ke slovu //file//, získáme pomocí
  
-Jestliže text uzavřeme do apostrofů, bude text zpracován jako příkaz a na jeho místo bude dosazen výstup tohoto příkazu. +  apropos file
- +
-  pracovni_adresar=`pwd` +
-  echo $pracovni_adresar +
- +
-**Poznámka:** Pomocí prvního příkazu definujeme proměnnou //pracovni_adresar// a její hodnotu vypíšeme pomocí druhého příkazu. +
- +
-=== Přesměrování vstupu a výstupu === +
-Každý program musí produkovat určitý výstup - v opačném případě by postrádal smysl. Například příkaz +
- +
-  ls -la +
- +
-vypíše obsah pracovního adresáře na obrazovku. Ta je v tomto případě tzv. standardním výstupem  +
- +
-===== ===== +
- +
-** Poznámka:** Bližší informace o výše uváděných příkazech můžete získat pomocí +
- +
-  man prikaz+
  
 ===== ===== ===== =====
 [[fc5prirucka|Hlavní stránka]] [[fc5prirucka|Hlavní stránka]]
  • Poslední úprava: 2022/11/14 11:09
  • (upraveno mimo DokuWiki)