Linux:Přehled základních příkazů: Porovnání verzí

Smazaný obsah Přidaný obsah
Milda (diskuse | příspěvky)
zbytečné užití velké části článku jako příklad, když jsou to často výkladové pasáže, wikitable, úroveň nadpisů, ale chce to ještě hodně úprav, užití wikisyntaxe je v článku nejednotné a nesystematické
Řádek 12:
 
 
==Čtení dokumentace==
{| borderclass="1wikitable"
| <code>[[Linux:apropos|apropos]] || prohledává u manuálových stránek sekce název (NAME) a popis (DESCRIPTION) || součást instalačního balíku '''man-db'''
|-
Řádek 23:
|}
 
==Analýza souborů==
{| class="wikitable"
 
{| border="1"
| <code>[[Linux:file|file]]</code> || Utilita, která podle tzv. ''magického čísla'' identifikuje soubor || samostatný instalační balík '''file'''
|-
| <code>[[Linux:wc|wc]]</code> || Utilita která počítá počet znaků, slov a řádků || součást instalačního balíku '''coreutils'''
|-
| <code>[[Linux:md5sum|md5sum]]</code> || Utilita pro výpočet kontrolního součtu pro ověření identity souboru || součást instalačního balíku '''coreutils'''
|-
|}
 
'''file''' – utilita pro identifikaci souborů. Využívá pro to soubor vzorků <code>/etc/magic.mime</code>
 
{{Příklad|1=
 
'''file''' - Utilita pro identifikaci souborů. Využívá pro to soubor vzorků <code>/etc/magic.mime</code>
 
{{Výpis|1={{Linux:user}}[[Linux:file|file]] -s /dev/sda
Řádek 43 ⟶ 38:
}}
 
'''wc''' (zkratka z anglického ''word count'' = počet slov) – přečte buď standardní vstup nebo seznam souborů a pak generuje výstup, který obsahuje: počet znaků, počet slov, a počet řádků. V případě, že je v seznamu, nebo na vstupu více souborů, vypíše statistiku pro jednotlivé soubory + celkový souhrn.
 
'''wc''' - ( název utility je zkratkou z anglického ''word count'' = počet slov ) přečte buď standardní vstup nebo seznam souborů a pak generuje výstup, který obsahuje: počet znaků, počet slov, a počet řádků. V případě, že je v seznamu, nebo na vstupu více souborů, vypíše statistiku pro jednotlivé soubory + celkový souhrn.
 
{{Výpis|1={{Linux:user}}[[Linux:wc|wc]] ideas.txt excerpt.txt
Řádek 64 ⟶ 58:
}}
 
'''md5sum''' – utilita počítající a ověřující 128-bitové MD5 hashe. MD5 hash (neboli ''kontrolní součet'') funguje jako kompaktní digitální otisk prstu souboru. Je velmi nepravděpodobné, že by se vyskytly dva neidentické soubory, které by měly stejný md5 hash (funkce MD5 sice byla již kryptograficky prolomena,viz [http://cryptography.hyperlink.cz/MD5_collisions.html], přesto je velmi málo nepravděpodobné, že by se v systému objevily dva soubory se stejným kontrolním součtem.
 
'''md5sum''' - je utilita počítající a ověřující 128-bitové MD5 hashe. MD5 hash (neboli ''kontrolní součet'') funguje jako kompaktní digitální otisk prstu souboru. Je velmi nepravděpodobné, že by se vyskytly dva neidentické soubory, které by měly stejný md5 hash (funkce MD5 sice byla již kryptograficky prolomena,viz [http://cryptography.hyperlink.cz/MD5_collisions.html], přesto je velmi málo nepravděpodobné, že by se v systému objevily dva soubory se stejným kontrolním součtem.
 
Při jakékoliv změně souboru se mění i kontrolní součet, proto se [[Linux:md5sum|md5sum]] používá ke kontrole integrity souboru, např. po jeho přenesení po síti, pro ověření zda nebyl poškozen.
Řádek 81 ⟶ 74:
}}
 
Použití kontrolního součtu pro ověření shody u řetězce znaků ( Popo jeho napsání stiskněte dvakrát po sobě kombinaci kláves CTRL+D ):
 
{{Výpis|1={{Linux:user}}[[Linux:md5sum|md5sum]]
textovyretezec1f129c42de5e4f043cbd88ff6360486f -
}}
}}
 
==Utility pro práci se soubory==
 
'''Pozn.:''' Tento přehled obsahuje také příkazy pro práci s adresáři, symbolickými linkyodkazy, rourami a uzlovými body (zařízeními) , což jsou speciální typy souborů.
 
{| borderclass="1wikitable"
| <code>[[Linux:cd|cd]] || změní aktuální pracovní adresář || interní příkaz [[Bash|shellu]]
|-
Řádek 132 ⟶ 124:
|}
 
===Procházení adresářů===
{{Příklad|1='''pwd''' (název vychází z anglického ''''''P'''rint name of current '''W'''orking '''D'''irectory'') má jedinou funkci -: vypisuje celou cestu do aktuálního pracovního adresáře. Přesto, že existuje tento příkaz jako samostatná aplikace, váš shell může mít implementován vlastní variantu příkazu [[Linux:pwd|pwd]].
 
'''cd''' Jeje-li zadán bez parametrů, automaticky přehodí uživatele do jeho domovského adresáře, který má nastaven v souboru <code>/etc/passwd</code>.
 
'''cd''' (z angl. '''''C'''hange '''D'''irectory'' ) je základní příkaz pro procházení mezi adresáři. Spolu s [[Linux:ls|ls]] je jedním z nejpoužívanějších příkazů.
* Bez parametrů hodí uživatele automaticky do jeho domovského adresáře nastaveného v souboru <code>/etc/passwd</code>
* Cestu mu lze předat jako absolutní (tj. od kořene - '''/''' dál ) nebo relativní. Relativní cesta začíná vždy v aktuální pozici, kterou lze zjistit příkazem [[Linux:pwd|pwd]]
* Znak '''~''' ( ''tilda'' ) před lomítkem zastupuje cestu do domovského adresáře aktuálního uživatele.
* Jsou-li před lomítkem dvě tečky, pak to znamená, že se má začít o úroveň výš a pokračovat tam. Jedna tečka zastupuje aktuální pozici.
Viz příklad:{{Výpis|1={{Linux:user}}[[Linux:cd|pwd]]
Řádek 166 ⟶ 158:
/home/user/podadresar}}
 
'''chroot''' (z angl. '''''C'''hange '''ROOT''''' – ''změnit kořen'') je příkaz, kterým spustíte novou instanci shellu, která bude mít nastaven jako kořen adresář předaný příkazu [[Linux:chroot|chroot]]. Využívá se toho především při instalaci na nový disk, pro vytvoření odděleného prostředí.
 
===Použití příkazů pro práci s adresáři===
'''chroot''' - (z angl. '''''C'''hange '''ROOT''''' - ''změnit kořen'' ) je příkaz, kterým spustíte novou instanci shellu, která bude mít nastaven jako kořen adresář předaný příkazu [[Linux:chroot|chroot]]. Využívá se toho především při instalaci na nový disk, pro vytvoření odděleného prostředí.}}
 
'''mkdir''' (z angl. '''''M'''a'''K'''e '''DIR'''ectories'') vytvoří adresář (nebo adresáře), pokud již ovšem neexistují. K příkazu lze přidat další parametry:
==Použití příkazů pro práci s adresáři==
*'''-m''' nebo '''--mode=MODE''' – nastaví přístupová práva (podobně jako příkaz chmod)
 
*'''-p''' nebo '''--parents''' – vytvoří rodičovské adresáře
{{Příklad|1=
*'''-v''' nebo '''--verbose''' – vypíše hlášku pro každý vytvořený adresář
'''mkdir''' (z angl. '''''M'''a'''K'''e '''DIR'''ectories'' ) vytvoří adresář (nebo adresáře), pokud již ovšem neexistují. K příkazu lze přidat další parametry:
*'''-m''' nebo '''--mode=MODE''' - Nastaví přístupová práva (podobně jako příkaz chmod)<br />
*'''-p''' nebo '''--parents''' - Vytvoří rodičovské adresáře<br />
*'''-v''' nebo '''--verbose''' - Vypíše hlášku pro každý vytvořený adresář
{{Výpis|1={{Linux:user}}[[Linux:mkdir|mkdir]] -p -v -m 755 Nový/adresář}}
Výsledkem příkazu bude vytvoření adresáře s názvem <code>Nový</code> ve kterém bude další adresář s názvem <code>adresář</code>
 
 
 
'''ls''' je základní utilita pro výpis obsahu adresáře. Nejčastěji používané parametry, které lze vzájemně kombinovat:
Řádek 188 ⟶ 176:
*'''-r''' výpis je proveden v obráceném pořadí
{{Výpis|1={{Linux:user}}[[Linux:mkdir|mkdir]] -ali test*.txt
297845 -rw-r--r-- 2 want users 1086 1.  dub 13.22 test.txt
297845 -rw-r--r-- 2 want users 1086 1.  dub 13.22 test_hardlink.txt
1908844 lrwxrwxrwx 1 want users 19 24.  dub 10.08 test_symlink.txt -> test.txt}}
Příkaz vypsal všechny souboru vyhovující vzorku <code>test*.txt</code>, tj. začínají řetězcem "test" a končící řetězcem "txt". Podle čísla i-nodu můžeme vidět že názvy souborů test.txt a test_hardlink.txt odkazují na jeden a týž soubor, zatímco test_symlink.txt je odkazem. (O symlincích a hardlincích viz odstavec [[#Pevné a symbolické odkazy v linuxu|Pevné a symbolické odkazy v linuxu]] )
 
 
'''dir''' je pouhým synonymem příkazu [[Linux:ls|ls]]. Poněkud jsem nepochopil jeho existenci v systému, neboť jde o týž binární soubor, ovšem pod jiným názvem. Logické by mi přišlo, kdyby byl nalinkován tento binární soubor pevný odkazem.
 
 
'''tree''' je utilita pro vypsání adresářového stromu. Bez parametrů vypíše adresářovou strukturu počínaje aktuálním adresářem.
Řádek 201 ⟶ 187:
Parametr "-H" určuje, že výstup má být naformátován jako HTML stránka. Přesměrováním do souboru tedy vznikne HTML stránka, u které lze klikat na názvy adresářů a souborů. Je-li přidán parametr "-D" je do výstupu zahrnuto také datum poslední modifikace.
Dříve se tato utilita využívala k vygenerování indexové stránky u webových adresářů s uloženými soubory. Dnes však, pokud má váš server povoleno vylistování adresářů, to již není nutné.
}}
 
===Použití zásobníku zapamatovaných adresářů===
 
{{Příklad|1=Pro přecházení mezi adresáři lze využít i tzv. "zásobník zapamatovaných adresářů" a vestavěných příkazů shellu. Pracovním adresářem je pak vždy ten, který je první položkou zásobníku. Položky do zásobníku lze nejen přidávat nebo z něj odebírat, ale také u nich měnit pořadí a tím přecházet podle potřeby mezi pracovními adresáři. Z následujícího příkladu snad poznáte lépe, jak to funguje a jaké příkazy se pro práci s ním používají.
 
{{Výpis|1=
Řádek 227 ⟶ 212:
}}
 
'''dirs''' - nemění aktuální pracovní adresář, pouze vypíše n-tou položku ze zásobníku zapamatovaných adresářů. Položky jsou počítané od nuly - ta, která je zároveň pracovním adresářem, je vždy na nulté pozici. Při použití záporného znaménka se počítá pořadí položek obráceně, tj. od té, co byla vložená jako první, až k té, co je zároveň pracovním adresářem. Na vlastní posloupnosti položek v zásobníku se tím však nic nemění. Bez udaného pořadí položky vypíše celý obsah zásobníku zapamatovaných adresářů.
 
{{Výpis|{{Linux:user}}[[Linux:dirs|dirs]] +1}}
Řádek 248 ⟶ 233:
 
Příkaz s volbou "+1" uvedený v příkladu odstraní n-tou položku ze zásobníku (v uvedeném příkladu druhou v pořadí). Pracovní adresář se přitom nemění. Je-li příkaz zadán pořadového čísla položky, nebo s pořadovým číslem "0", tak se ze zásobníku odstraní aktuální adresář, a aktivním pracovním adresářem se stane ten, co byl pozici "1". Rovněž u tohoto příkazu lze pro změnu pořadí položek v zásobníku použít opačného znaménka.
}}
 
===Kopírování, přesun a mazání souborů===
{{Příklad|1=
 
'''cp''' - ( z angl. '''''c'''o'''p'''y'' - vyrobit kopii ) vytváří duplicitní soubory. Prvním parametrem je cesta k originálu a druhým cíl do kterého má být kopie umístěna. Cesty mohou být zadány jak absolutně, tak relativně.
* Je-li cílem již existující soubor, tak [[Linux:cp|cp]] přepíše jeho obsah -, název zůstane zachován.
* Je-li cílem adresář, tak [[Linux:cp|cp]] vloží kopii do něj, pod stejným názvem, jaký měl původní soubor.
{{Výpis|1={{Linux:user}}[[Linux:cp|cp]] original kopie}}
Defaultně [[Linux:cp|cp]] kopíruje pouze soubory, nikoliv adresáře. Toto chování však lze potlačit přidáním volby '''-r''', která aktivuje [[Linux:Slovník#rekurzivní|rekurzivní]] kopírování
{{Výpis|1={{Linux:user}}[[Linux:cp|cp]] -r adresar kopie_adresare}}
 
'''rm''' - ( z angl. '''''r'''e'''m'''ove'' - odstranit ) je příkaz pro mazání souborů. Pokud mu při mazání předáme parametr ''-r'', tak smaže rekurzivně vše, včetně adresářů
 
Chceme-li však smazat adresář, použijeme příkaz '''rmdir'''. Ten vyžaduje, aby byl odstraňovaný adresář prázný, tj. nesmí obsahovat žádné další soubory ani adresáře. Je to jakási pojistka, abychom něco nemohli smazat neúmyslně
 
Chceme-li však smazat adresář, použijeme příkaz '''rmdir'''. Ten vyžaduje, aby byl odstraňovaný adresář prázný, tj. nesmí obsahovat žádné další soubory ani adresáře. Je to jakási pojistka, abychom něco nemohli smazat neúmyslně.
 
Za normálních okolností se příkazem [[Linux:rm|rm]] pouze odstraní záznam o souboru. Kdežto utilita [[Linux:shred|shred]] přepíše samými nulami také prostor v němž byl uložen obsah souboru.
}}
 
===Pevné a symbolické odkazy v linuxuLinuxu===
Odkazy (lze se setkat také s anglickým výrazem '''link''') jsou v unixových systémech dvojí povahy: pevné a symbolické.
{{Příklad|1=
Odkazy, (používá se také anglický výraz '''linky''') jsou v unixových systémech dvojí povahy. Tzv. pevné a symbolické.
 
'';Pevné odkazy''
:Jinak také '''tvrdé''', umožňují používat pro jeden a týž soubor více jmen, aniž by jej bylo nutné kopírovat. Využívají zvláštního mechanismu, který spočívá v tom, že jména souborů jsou uchovávána odděleně od i-uzlů s daty. V každém i-uzlu je místo vlastního názvu uvedeno pouze jakési id. Vytvoříme-li nový pevný odkaz, tak se do tabulky s názvy souborů pouze přidá další položka odkazující na stejné id.
; Symbolické odkazy (symlinky)
 
:Používají se mnohem častěji. Na rozdíl od odkazů pevných je lze aplikovat i na adresáře a soubory, a to i na jiné fyzické datové svazky. Symbolické odkazy totiž nejsou pouhým přidáním dalšího jména souboru, ale speciální soubory, které mají v datovém prostoru uloženo kam mají směřovat. Při jejich vytváření se nijak nekontroluje existence a dostupnost cílového objektu.
''Symbolické odkazy'' ''(symlinky)''
:Se používají mnohem častěji. Na rozdíl od odkazů pevných je lze aplikovat i na adresáře a soubory, a to i na jiné fyzické datové svazky. Symbolické odkazy totiž nejsou pouhým přidáním dalšího jména souboru, ale speciální soubory, které mají v datovém prostoru uloženo kam mají směřovat. Při jejich vytváření se nijak nekontroluje existence a dostupnost cílového objektu.
 
'''Důležité poznámky:'''
* Pevné odkazy lze vytvářet pouze v rámci jednoho fyzického diskového oddílu.
* Nově vytvořený odkaz náleží stejnému uživateli co vlastní původní soubor, bez ohledu na to, kdo link vytvořil.
* Nelze vytvořit pevný odkaz na adresář.
* Pozor na adresování z adresáře připojeného symbolickým linkem. Příkaz <code>ls ../</code> nevypíše obsah adresáře v něm se nalézá symbolický link, ale adresáře v němž se nalézá přilinkovaný adresář.
 
'''ln''' – obslužný program pro vytvoření odkazu, příkaz je součástí balíku coreutils.
'''ln'''
 
Obslužný program pro vytvoření odkazu, příkaz je součástí balíku coreutils.
 
ln [options] existing-file new-link
Řádek 293 ⟶ 270:
'''Souhrnné informace'''
 
Obslužný program '''ln''' vytváří implicitně pevnépevný odkazyodkaz (hardlink). Pevný odkaz nelze prakticky odlišit od jména souboru. Na soubor se lze odkazovat pomocí jeho jména nebo jména pevného odkazu vytvořeného příkazem '''ln'''. Všechny pevné odkazy na soubor musejí být definovány v tomtéž souborovém systému jako samotný soubor.
První formát příkazu '''ln''' můžete použít k vytvoření odkazu mezi existujícím jménem souboru a novým jménem. Druhý formát můžete použít k vytvoření odkazů existujících souborů do různých adresářů. Nové odkazy budou mít stejná jednoduchá jména jako původní soubory, ale budou mít jiná plná jména (tj. jména včetně cesty).
Obslužný program '''ln''' můžete také použít k vytvoření symbolických odkazů. Na rozdíl od pevného odkazu může symbolický odkaz existovat v jiném souborovém systému. Také platí, že symbolický odkaz může spojovat soubor s adresářem.
Řádek 304 ⟶ 281:
'''Volby'''
 
* '''-backup (-b)''' - Kdyžkdyž má obslužný program '''ln''' zrušit některé soubory, pak je po zadání volby '''-b''' bude zálohovat (na konec jména souboru se přidá znak '''~'''). Tato volba funguje pouze s volbou '''-force'''.
* '''-force (-f)''' – normálně platí, že program ln nevytváří nový odkaz, pokud již nějaký odkaz '''new-link''' existuje; po zadání volby '''-f''' se odkaz '''new-link''' před vytvořením nového odkazu zruší; když se navíc použije volba '''-backup''', pak se před zrušením odkaz '''new-link''' zálohuje.
 
* '''-forceinteractive (-fi)''' – jestliže odkaz '''new-link''' Normálně platíexistuje, žebude po zadání této volby program ln nevytváříchtít novýpotvrdit odkaz,jeho zrušení; pokud jižjako nějakýodpověď odkazzadáte '''new-linky''' existuje. Po zadání volbynebo '''-fyes''', pak se existující odkaz '''new-link''' před vytvořením nového odkazu zruší.; Kdyžjestliže sejako navícodpověď použije volbazadáte '''-backupn''', pak se před zrušením odkaznebo '''new-linkno''', nový odkaz se zálohujenevytvoří.
* '''-symbolic (-s)''' – po zadání této volby se vytvoří symbolický odkaz; když volbu '''-s''' použijete, pak argumenty '''existing-file''' a '''new-file''' mohou obsahovat jména adresářů a navíc mohou být v různých souborových systémech.
 
'''-interactive (-i)''' - Jestliže odkaz '''new-link''' existuje, bude po zadání této volby program ln chtít potvrdit jeho zrušení. Pokud jako odpověď zadáte '''y''' nebo '''yes''', pak se existující odkaz před vytvořením nového odkazu zruší. Jestliže jako odpověď zadáte '''n''' nebo '''no''', nový odkaz se nevytvoří.
 
'''-symbolic (-s)''' - Po zadání této volby se vytvoří symbolický odkaz. Když volbu '''-s''' použijete, pak argumenty '''existing-file''' a '''new-file''' mohou obsahovat jména adresářů a navíc mohou být v různých souborových systémech.
 
'''Příklady'''
Řádek 350 ⟶ 324:
Symbolické odkazy můžete používat bez ohledu na souborový systém a také je můžete používat pro adresáře. Když použijete příkaz '''ls -l''' a v adresáři existuje symbolický odkaz, pak se o něm zobrazí informace. Obslužný program '''ln''' zobrazí za jménem odkazu znaky -> a za nimi zobrazí jméno odkazovaného souboru.
 
'''link''' - je příkaz pro vytvoření pevného linku.odkazu, Lzelze jej nahradit použitím příkazu <code>ln</code>.
 
'''readlink'''
Řádek 364 ⟶ 338:
'''touch''' [''volby''] ''file-list''
 
Obslužný program aktualizuje čas poslední modifikace souboru. Čas můžete specifikovat v příkazovém řádku. Nejčastěji se program '''touch''' používá ve spojení s programem '''make'''.
'''Souhrnné informace'''
 
Argument ''file-list'' obsahuje seznam jmen souborů, pro které se má nastavit čas poslední modifikace.
:Obslužný program aktualizuje čas poslední modifikace souboru. Čas můžete specifikovat v příkazovém řádku. Nejčastěji se program '''touch''' používá ve spojení s programem '''make'''.
 
'''Argumenty'''
 
:Argument ''file-list'' obsahuje seznam jmen souborů, pro které se má nastavit čas poslední modifikace.
 
Volby
 
:Jestliže se nezadá volba '''-c''', vytvoří program '''touch''' ty soubory uvedené v seznamu ''file-list'', které neexistují. Pokud se program '''touch''' pustí bez voleb '''-d''' nebo '''-t''', použije se aktuální datum a čas.
 
'''Volby:'''
* Jestliže se nezadá volba '''-c''', vytvoří program '''touch''' ty soubory uvedené v seznamu ''file-list'', které neexistují. Pokud se program '''touch''' pustí bez voleb '''-d''' nebo '''-t''', použije se aktuální datum a čas.
*'''--date''' ''datestring'' nebo '''-d''' ''datestring''
::**Po zadání volby '''-d''' se čas poslední modifikace souboru nastaví podle stanovených hodnot v řetězci ''datestring''. Pro řetězec ''datestring'' je povolena většina známých formátů. Pokud řetězec ''datestring'' neobsahuje některé komponenty, doplní se podle aktuálních hodnot. Tato volba nesmí být použita s volbou '''-t'''
 
*'''--no-create''' nebo '''-c'''
::**Pokud soubory uvedené v seznamu ''file-list'' neexistují, tak s touto volbou nebudou ani vytvořeny.
 
*'''-t''' ''nnddhhmm[cc[yy]][.ss]''
::**Pomocí volby '''-t''' se specifikuje čas.
::::***''nn'' - specifikuje měsíc (01-1201–12)
::::***''dd'' - specifikuje den (01-3101–31)
::::***''hh'' - specifikuje hodinu (00-2300–23)
::::***''mm'' - specifikuje minuty (00-5900–59)
::::***''yy'' - je nepovinná a určuje poslední dvě cifry z roku.
::::***''cc'' - může být také zadáno století, ale pokud je zadána položka ''yy''
::::***''.ss'' - volitelný parametr určuje sekundy v intervalu (00-59); tato položka musí být od ostatních oddělena tečkou. Kterákoli z volitelných položek bude nahrazena, pokud bude tečka chybět. Nesmí být použito s volbou '''-d'''
 
*'''-time==atime''' nebo '''-time=access''' nebo '''-a'''
::**Jestliže se zada volba '''-a''', bude se aktualizovat pouze čas posledního přístupu k souboru a čas poslední modifikace zůstane nezměněn
 
*'''-time==mtime''' nebo '''-time=modify''' nebo '''-a'''
::**Jestliže se zadá volba '''-m''', bude se aktualizovat pouze čas poslední modifikace souboru a čas posledního přístupu zůstane nezměněn
}}
 
===Příkazy pro práci se speciálními soubory===
'''mkfifo''' je utilita, kterou se vytváří speciální typ souboru – tzv. pojmenovaná roura (FIFO, zkratka z angl. '''''F'''irst '''I'''n – '''F'''irst '''O'''ut'')
{{Příklad|1=
 
'''mkfifomknod''' - je utilita, kterou se vytváří speciální typzařízení. souboruZařízení -jsou tzv.identifikována pojmenovanáhlavním rouraa -vedlejším FIFOčíslem (zkratka zviz angldále. '''''F'''irst '''I'''n - '''F'''irst '''O'''ut'')
 
Každý uzlový bod zařízení v linuxovém systému je adresován tzv. hlavním (''major'') a vedlejším (''minor'') číslem. Tato čísla souvisí s identifikací zařízení jádrem. Jádro má číslovanou sadu řadičů (''controller'') a ty zastupují jednotlivé hardwarové sběrnice nebo virtuální zařízení. Hlavní číslo (''major number'') je číslo řadiče, na kterém je „zavěšeno“ hardwarové zařízení. Vesměs je to dáno jeho typem, např. disky mají hlavní číslo 8, kdežto CD či DVD mechaniky 21 atd. Vedlejší číslo (''minor number'') pak určuje pořadové číslo zařízení. Další příklady najdete v kapitole [[Linux:Adresářová struktura#Adresář /dev|Adresářová struktura]].
'''mknod''' - je utilita, kterou se vytváří speciální zařízení. Zařízení jsou identifikována ''major'' a ''minor číslem]]
 
Informace o hlavních a vedlejších číslech zařízení můžete najít ve zdrojovém kódu linuxového jádra, máte-li je nainstalováno včetně dokumentace. A to v souboru <code>/usr/src/linux/Documentation/devices.txt</code> (v případě, že ve vaší instalaci ukazuje symbolický odkaz ''/usr/src/linux'' na adresář se zdrojovým kódem jádra).
Každý uzlový bod zařízení v linuxovém systému je adresován tzv. '''major''' a '''minor''' číslem. [[Linux:mknod|mknod]] je utilita, kterou se tyto uzlové body vytvářejí. Co vlastně tato čísla znamenají?
 
Hlavní (''major'') a vedlejší (''minor'') číslo zařízení souvisí s identifikací zařízení jádrem. Jádro má číslovanou sadu řadičů (''controller''), a ty zastupují jednotlivé hardwarové sběrnice. Hlavní číslo - '''major number''' je číslo řadiče na kterém je "zavěšeno" hardwarové zařízení. Vesměs je to dáno jeho typem. Např. disky mají hlavní číslo 8, kdežto CD či DVD mechaniky 21 atp. Vedlejší číslo - '''minor number''' pak určuje pořadové číslo zařízení.
 
Příklady, jak je vlastně určeno hlavní a vedlejší číslo můžete najít také v kapitole [[Linux:Adresářová struktura#Adresář /dev | Adresářová struktura]]
 
Informace o hlavních a vedlejších číslech zařízení můžete najít ve zdrojáku linuxového jádra, máte-li je nainstalováno včetně Dokumentace. A to v souboru <code>/usr/src/linux/Documentation/devices.txt</code> (v případě že váš symlink ''/usr/src/linux'' ukazuje na adresář se zdrojovým kódem jádra).
 
}}
 
===Čtení a úprava obsahu souborů===
 
{| borderclass="1wikitable"
| <code>[[Linux:more|more]]</code> || || rowspan="2" | Prohlížení obsahu souborů || součást instalačního balíku '''util-linux'''
|-
Řádek 468 ⟶ 423:
|}
 
==Příkazy informačního charakteru==
 
{| borderclass="1wikitable"
| <code>[[Linux:df|df]]</code> || vypisuje celkové volné místo na disku (blokovém zařízení) || součást instalačního balíku '''coreutils'''
|-
Řádek 486 ⟶ 441:
|}
 
===Příkazy pro zjišťování množství obsazeného prostoru===
 
{{Příklad|1=
 
Příkaz '''du''' oznamuje diskovou kapacitu alokovanou soubory, adresáři a podobně.
Řádek 515 ⟶ 468:
*'''-S''' nebo '''--separate-dirs'''
: Vypočte a oznámí se velikost každého adresáře a podadresáře zvlášť.
 
 
Příkazem '''df''' zjišťujeme obsazenou a volnou diskovou kapacitu na jednotlivých fyzických systémech souborů.
Řádek 551 ⟶ 503:
 
Jdou i kombinace df –aT atd.
}}
 
==Příkazy pro správu přístupových práv==
 
{| borderclass="1wikitable"
| <code>[[Linux:chgrp|chgrp]]</code> || změní vyjmenovaným souborům skupinu vlastníků || součást instalačního balíku '''coreutils'''
|-
Řádek 563 ⟶ 514:
|}
 
==Nástroje pro archivaci==
 
'''Pozn.:''' Archivační nástroje v linuxu na rozdíl od těch které se obvykle používají v MS Windows, nemusí nutně provádět také kompresi. Proto je tabulka rozdělena.
 
{| borderclass="1wikitable"
|+ '''[[Linux:Nástroje pro archivaci|Archivační nástroje]]'''
| <code>[[Linux:afio|afio]]</code> || archívy kompatibilní se [[Linux:cpio|cpio]] přenositelné mezi unixovými systémy
Řádek 580 ⟶ 531:
|}
 
{| class="wikitable"
 
{| border="1"
|+ '''[[Linux:Kompresní utility|Kompresní nástroje]]'''
| <code>[[Linux:arj|arj]]</code> ||
Řádek 600 ⟶ 550:
|}
 
==Vyhledávání==
 
Pro vyhledávání se v Linuxu používají především dvě důležité aplikace [[Linux:find|find]] a [[Linux:grep|grep]]. Každá z nich plní svou specifickou funkci a jejich vzájemnou kombinací lze dosáhnout opravdu efektivních výsledků.
Řádek 606 ⟶ 556:
Kromě nich lze také použít při hledání i některé pomocné utility jako jsou [[Linux:locate|locate]], [[Linux:whereis|whereis]] nebo [[Linux:which|which]]
 
{| borderclass="1wikitable"
| <code>[[Linux:find|find]]</code> || prohledává adresářovou strukturu a výstup filtruje prostřednictvím vzorků || součást instalačního balíku '''findutils'''
|-
Řádek 618 ⟶ 568:
|}
 
===Hledání souborů podle vzorků a vlastností===
 
{{Příklad|1='''find''' vždy prochází celou větev adresářové struktury, která začíná udanou ''cestou''. Přitom hledá ty soubory (i adresář je souborem), které splňují zadané ''podmínky''. Najde-li takové, pak může nad těmito nalezenými soubory provádět různé operace - počínaje vypsáním informace o jejich umístění, po spouštění nejrůznějších skriptů. [[Linux:find|find]] má ohromné množství parametrů, proto doporučuji studovat pro náročnější nasazení jeho manuálovou stránku. Následujících příklady pouze demonstrují nejčastější možnosti použití a popisují jak vlastně [[Linux:find|find]] pracuje.
{{Výpis|1={{Linux:user}}[[Linux:find|find]]}}
Příkaz bez parametrů vypíše seznam všech souborů a adresářů v aktuálním adresáři, a to rekurzívně -, tedy i vnořené adresáře a soubory.
{{Výpis|1={{Linux:user}}[[Linux:find|find]] /etc}}
Prvním, nepovinným parametrem je výchozí adresář pro prohledávání. V následujících příkladu, kdy má [[Linux:find|find]] za úkol najít soubor s názvem <code>soubor.txt</code> jej vynechám. Bude se tedy prohledávat pouze adresář ve kterém právě jsem. Pokud [[Linux:find|find]] soubor najde, pak k němu vypíše plnou cestu. Pokud ne, nevypíše nic.
Řádek 628 ⟶ 578:
V následujícím příkladu má za úkol vypsat všechny soubory, jejichž název končí ''txt''. Povšimněte si, že hledaný vzorek je uzavřen do uvozovek, a znak hvězdičky ('''*''') umožňuje tzv. "globbing", tj. že vzorku vyhoví <u>všechny</u> názvy které na řetězec ''txt'' končí.
{{Výpis|1={{Linux:user}}[[Linux:find|find]] -name "*txt"}}
Vyhledání jen souborů typu adresář - (''directory'').
{{Výpis|1={{Linux:user}}[[Linux:find|find]] -type d}}
A nyní moje oblíbené použití. Jak už bylo zmíněno, s nalezenými soubory je možno pracovat dále tak, že jsou předhozeny nějakému jinému příkazu. V našem případě jsou všechny soubory typu soubor (''file'') s plnou cestou předány (přes dvojici složených závorek) k dalšímu zpracování příkazu [[Linux:chmod|chmod]], který jim nastaví práva na 664. Příkaz je nutné ukončit středníkem, který musí být "escapován" obráceným lomítkem (jinak by se jej pokoušel brát jako součást vloženého příkazu). A složené závorky je vhodné uzavřít do jednoduchých uvozovek, pro případ, že by se mezi nalezenými vzorky vyskytly některé s mezerou. Během akce se pak postupně nahrazují výsledky hledání.
Řádek 635 ⟶ 585:
Na závěr ve stručnosti ještě několik nejčastějších příkladů použití:
{{Výpis|1={{Linux:user}}[[Linux:find|find]] -name "*~" -exec [[Linux:rm|rm]] -i '{}' \;}}
Smaže záložní kopie, -tzn. soubory, jejichž název končí vlnovkou. Pro sichr tamjistotu je přidán parametr -i, který znamená, že každé mazání budeme muset potvrzovat zvlášť.
{{Výpis|1={{Linux:user}}[[Linux:find|find]] -type f -exec [[Linux:fgrep|fgrep]] -Hn kolo '{}' \;}}
Vyhledá "kolo" v obsahu všech souborů v aktualním adresáři a výsledek vytiskne ve formátu: cesta_k_souboru:cislo_radky:nalezeny_retezec
Řádek 641 ⟶ 591:
Projede adresář ''zalohy'' a smaže tam všechny soubory (type -f), které jsou staré víc než 29 dní.
 
'''locate''' funguje podobně jako [[Linux:find|find]] ovšem pracuje mnohem rychleji, protože neprohledává souborový systém, ale databázi. Tu je ovšem třeba udržovat aktuální. Aktualizaci databáze pro [[Linux:locate|locate]] však smí spouštět pouze superuživatel (''root''). Abyste nebylo nutné provádět aktualizaci ručně, lze využít [[Linux:cron|cron]], nebo – pokud počítač vypínáte – [[Linux:anacron|anacron]].
 
'''locate''' funguje podobně jako [[Linux:find|find]] ovšem pracuje mnohem rychleji, protože neprohledává souborový systém, ale databázi. Tu je ovšem třeba udržovat aktuální. Aktualizaci databáze pro [[Linux:locate|locate]] však smí spouštět pouze superuživatel - ''root''. Abyste ji nebylo nutné provádět ručně, lze využít [[Linux:cron|cron]], nebo - pokud vypínáte počítač - [[Linux:anacron|anacron]].
{{Výpis|1={{Linux:root}}[[Linux:updatedb|updatedb]]}}
{{Výpis|1={{Linux:user}}[[Linux:locate|locate]] mdadm.conf
Řádek 651 ⟶ 600:
/var/lib/dpkg/info/mdadm.config
/var/lib/mdadm/mdadm.conf-generated}}
 
 
'''whereis''' prohledává cesty se spustitelnými soubory, zdrojové soubory a manuálové stránky. Viz příklad:
Řádek 657 ⟶ 605:
find: /usr/bin/find /usr/X11R6/bin/find /usr/bin/X11/find /usr/share/man/man1/find.1.gz}}
První tři údaje ve výpisu jsou odkazy spustitelné (binární) soubory, zatímco ten poslední je na manuálovou stránku.
 
 
'''which''' prohledává pouze cesty se spustitelnými soubory. Když zjistí, že příkaz volá samostatnou utilitu zobrazí její plnou cestu:
Řádek 670 ⟶ 617:
/usr/bin/whereis
/usr/bin/X11/whereis}}
}}
 
===Vyhledávání vzorků v souborech===
 
{{Příklad|1='''grep''' - Nana rozdíl od příkazu find neprochází adresářovou strukturu, ale ''obsah'' předaných souborů. Ty můžeme předat buď najednou, jako seznam na příkazovém řádku, nebo pomocí vzorku. Jenže při větším počtu souborů narazíme na omezení příkazové řádky. Pak je vhodnější jej použít v kombinaci s příkazem find, navíc tím získáme možnost sofistikovaněji předávat soubory podle dalších podmínek.
}}
 
===Vyhledávání uživatelů===
 
===Vyhledávání v instalačních balíčcích===
 
==Informativní příkazy==
 
{| borderclass="1wikitable"
| <code>[[Linux:fuser|fuser]]</code> || Identifikuje běžící procesy které se souborem či soketem právě pracují. Užitečné, když nejde odpojit disk z důvodu, že ho používá nějaký program, a vy nevíte který. || samostatný instalační balík '''psmisc'''
|-
Řádek 689 ⟶ 634:
|}
 
{{Příklad|1='''fuser''' - Vypisujevypisuje, které procesy zrovna používají zadaný soubor nebo souborový systém. To se hodí obzvláště tehdy, když vám nejde odpojit disk z důvodu, že ho používá nějaký program, a vy nevíte který. Pomocí identifikačního čísla procesu hravě zjistíte o co se vlastně jedná a v případě že nejde o žádný důležitý proces, můžete jeho běh ukončit příkazem [[Linux:kill|kill]]
{{Výpis|1={{Linux:root}}[[Linux:fuser|fuser]] -c /dev/sda1
/dev/sda2: 7369
Řádek 695 ⟶ 640:
root 7369 6690 0 18:15 pts/2 00:00:00 tail -f /var/log/messages
}}
'''lsof''' - lze využít podobně jako příkaz [[Linux:fuser|fuser]]. Ukáže vám však navíc, '''s jakým souborem''' ten proces pracuje. Můžete se tak ještě před jeho ukončením podívat, co je ten soubor vlastně zač.
{{Výpis|1={{Linux:root}}[[Linux:lsof|lsof]] /dev/sda1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
tail 7369 root 1w REG 8,2 853 12 /boot/test
}}
}}
 
==Uživatelé a jejich procesy==
 
{| borderclass="1wikitable"
| <code>[[Linux:who|who]] || vypisuje přihlášené uživatele || součást instalačního balíku '''coreutils'''
|-
Řádek 716 ⟶ 660:
|}
 
{{Příklad|1='''who''' - je příkaz, který se asi nejčastěji používá pro výpis aktuálně připojených uživatelů. Na rozdíl od následujících, jde v tomto případě o standardní příkaz operačních systémů Unix.
<small>{{Výpis|1={{Linux:user}}[[Linux:who|who]]
root tty1 2009-05-06 09:54
Řádek 735 ⟶ 679:
pts/2 2009-05-06 13:36 0 id=/2 signál=0 návkód=0
user + pts/7 2009-05-06 16:18 . 4370 (stroj.domena.cz)}}</small>
Z ukázkového výpisu můžete vyčíst, že v okamžiku spuštění příkazu byl do systému kromě uživatele ''user'', který byl přihlášen na grafické konzoli (typicky - <code>tty7</code>), přihlášen také ''root'', a to na první konzoli.
 
Mezi tím, než byl spuštěn příkaz s parametrem '''-a''' se do systému přihlásil pod uživatelem ''user'' také ještě někdo jiný ze vzdáleného stroje ''stroj.domena.cz''. Údaj "6:15" u konzole <code>tty1</code> udává, že už je tomu víc jak šest hodin co na této konzoli ''root'' vyvíjel nějakou aktivitu.
 
'''w''' - Propro zjištění, kdo je připojenv systému přihlášen, lze místo [[Linux:who|who]] použít také tento příkaz. Vypíše nejen ,kdo je kam přihlášen, ale také, co má na konzoli spuštěno.
<small>{{Výpis|1={{Linux:user}}[[Linux:w|w]]
09:56:40 up 1:53, 2 users, load average: 0,38, 0,40, 0,38
Řádek 747 ⟶ 691:
}}</small>
 
Také příkaz '''finger''' lze při spuštění bez parametrů použít pro detekci přihlášených uživatelů, ale oproti [[Linux:who|who]] a [[Linux:w|w]] vypíše při volbě '''-l''' také obsah níže uvedených souborů ( Pochopitelněpochopitelně pouze za předpokladu, že mají nějaký obsah ) :
* <code>~/.plan</code>
* <code>~/.project</code> - Pozor!pozor, z tohoto souboru přečte vždy jen první řádek
* <code>~/.pgpkey</code> - soubor s klíčem pro [[w:GnuPG|GnuPG]] v ASCII formátu ([[Linux:finger|finger]] jej však hledá vždy pouze v tomto souboru)
* <code>~/.forward</code> - tento soubor se využívá při doručování e-mailovéelektronické pošty pro přesměrováníautomatické doručení na jinýjinou aliasadresu
Kromě nich, také kontroluje čas posledního přístupu uživatele k souboru s jeho lokálními maily (cesta k těmto souborům je obsahem systémové proměnné <code>MAIL</code> (jaké máte systémové proměnné zjistíte příkazem [[Linux:env|env]]).
<small>{{Výpis|1={{Linux:user}}[[Linux:finger|finger]] -l
Řádek 762 ⟶ 706:
}}</small>
 
'''su''' - Nana rozdíl od výše uvedených příkazů, slouží příkaz [[Linux:su|su]] k "přepnutí"„přepnutí“ na jiného uživatele ( název příkazu je od tohoto úkonu odvozen - angl. '''''s'''witch '''u'''ser'' ), případně spouštění příkazů pod tímto uživatelem. (Není-li žádný uživatel uveden, tak se implicitně předpokládá, že má jít o superuživatele - root(roota). '''Tento příkaz však po vás bude vždy chtít zadat heslo tohoto uživatele.'''
 
<small>{{Výpis|1={{Linux:user}}[[Linux:su|su]] -c "ls /root"
Heslo:
celkem 21
drwxr-xr-x 3 root root 128 6.  kvě 16.05 .
drwxr-xr-x 24 root root 656 4.  kvě 21.39 ..
-rw------- 1 root root 13486 6.  kvě 16.05 .bash_history
-rw------- 1 root root 1024 21.  bře 22.25 .rnd
drwx------ 2 root root 208 25.  úno 14.05 .ssh
}}</small>
 
'''sudo''' funguje podobně jako [[Linux:su|su]], Ovšem umožňuje mnohem sofistikovanější použití. Jak napovídá jeho název ( '''''s'''witch '''u'''ser and '''do''''' - volně přeloženo ''přehoď uživatele a udělej to místo něj'' ), není jeho primárním účelem přepínání mezi uživateli, ale '''spouštění procesů místo jiného uživatele, ovšem bez nutnosti znát jeho uživatelské heslo'''.
 
Co kdo může spouštět se nastavuje v souboru <code>/etc/sudoers</code>. '''Oproti [[Linux:su|su]] po vás bude chtít [[Linux:sudo|sudo]] vaše uživatelské heslo, nikoliv heslo uživatele pod kterým má být proces spuštěn.''' [[Linux:sudo|sudo]] má také defaultně nastaven určitý interval, během kterého můžete tento příkaz používat, aniž by bylo nutné znovu heslo zadávat. Některé distribuce (např. Ubuntu) tímto příkazem obcházejí nezbytnost existence superuživatelského účtu.
Řádek 781 ⟶ 725:
[sudo] password for user:
celkem 21
drwxr-xr-x 3 root root 128 6.  kvě 16.05 .
drwxr-xr-x 24 root root 656 4.  kvě 21.39 ..
-rw------- 1 root root 13486 6.  kvě 16.05 .bash_history
-rw------- 1 root root 1024 21.  bře 22.25 .rnd
drwx------ 2 root root 208 25.  úno 14.05 .ssh
}}</small>
 
==Systémové informace==
}}
 
=Systémové informace=
 
{| borderclass="1wikitable"
| <code>[[Linux:whoami|whoami]] || výpis uživatelského jména asociovaného s aktuálním efektivním ID || součást instalačního balíku '''coreutils'''
|-
Řádek 816 ⟶ 758:
|}
 
==Správa procesů==
 
{| borderclass="1wikitable"
| <code>[[Linux:nohup|nohup]] || spuštění příkazu tak, aby mohl pokračovat i po odhlášení uživatele || součást instalačního balíku '''coreutils'''
|-
Řádek 832 ⟶ 774:
|}
 
'''kill''' prostřednictvím různých signálů ukončí nebo změní stav jednoho nebo více procesů. Samotný příkaz kill má jako implicitní signál číslo 15, tedy signál ukončující označený proces (procesy). Můžeme však pomocí volby nastavit jiný signál a daný proces tak například jen zastavit. Při zadávání příkazu kill je podmíněno, aby cílový proces byl spuštěn uživatelem, který se snaží kill použít, výjimkou (ostatně jako vždy) je administrátor. Po provedení příkazu kill zobrazí program kill příslušné hlášení.
{{Příklad|1=
'''kill''' - příkaz, který prostřednictvím různých signálů ukončí nebo změní stav jednoho nebo více procesů. Samotný příkaz kill má jako implicitní signál číslo 15, tedy signál ukončující označený proces (procesy). Můžeme však pomocí volby nastavit jiné číslo signálu a tak daný proces například jen zastavit. Při zadávání příkazu kill je podmíněno, aby cílový proces byl spuštěn uživatelem, který se snaží kill použít, výjimkou (ostatně jako vždy) je administrátor. Po provedení příkazu kill zobrazí program kill příslušné hlášení.
 
Zadáme-li příkaz ''kill -l'', pak nám terminál vypíše všechny signály, které můžeme použít s uvedením jejich čísla a funkce (např: 1) SIGHUP, 3) SIGQUIT, 9) SIGKILL, 15) SIGTERM - implicitní, atd.). Implicitním signálem je SIGTERM. Většinu signálů může cílový proces tzv. zachytit a zpracovat, tedy například signál ignorovat nebo před ukončením uložit rozpracovaná data.
 
Argumenty, které zde používáme, jsou čísla procesů, které chceme pomocí programu kill ovlivnit. Tyto PID můžeme zjistit například pomocí obslužného programu PS. Tyto argumenty pak v příkazu kill udáváme za volbu. Např: ''kill -9 1265'' vyšle signál SIGKILL, který proces s číslem PID 1265 usmrtí (bezpodmínečně ukončí), takto ukončený proces nemá šanci ani uložit svá data.
 
Budeme-li chtít rychle ukončit všechny procesy a odhlásit se, pak stačí zadat příkaz <code>kill -9 0</code> (ukončí rodiče rodičů a tím i všechny potomky).
Argumenty, které zde používáme jsou čísla procesů, které chceme pomocí programu kill ovlivnit. Tyto PID můžeme zjistit například pomocí obslužného programu PS. Tyto argumenty pak v příkazu kill udáváme za volbu. Např: ''kill -9 1265'' - vyšle signál 9) SIGKILL, který proces číslo (PID) 1265 usmrtí (bezpodmínečně ukončí).
 
Jelikož je program kill interním příkazem v procesorech bash, tcsh a zsh, tak zde můžeme místo PID použít také identifikátory úloh. Ty se skládají ze znaku % a čísla úlohy nebo jeho jména. Tento interní příkaz také umožňuje použít název volby, (například SIGKILL) místo jejich číselného označení (to jest 9).
 
Budeme-li chtít zrušit všechny procesy a odhlásit se, pak stačí zadat příkaz: kill -9 0 (ukončí rodiče rodičů a tím i všechny potomky)
}}
 
==Příkazy pro práci s jádrem==
 
{| borderclass="1wikitable"
| <code> [[Linux:depmod|depmod]]</code> || výpis závislostí modulu || součást instalačního balíku '''module-init-tools'''
|-
Řádek 863 ⟶ 800:
{{Pozn|Příklady použití těchto příkazů naleznete v kapitole [[Moduly linuxového jádra]]}}
 
==Různé==
 
{| borderclass="1wikitable"
| <code>[[Linux:dircolors|dircolors]]</code> || vypíše příkaz, kterým lze nastavit proměnnou prostředí LS_COLOR || součást instalačního balíku '''coreutils'''
|-