Uživatelské nástroje

Nástroje pro tento web


soubory-a-adresare

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
soubory-a-adresare [2019/06/14 10:21]
Miroslav Bernát
soubory-a-adresare [2019/09/20 21:40] (aktuální)
Miroslav Bernát
Řádek 8: Řádek 8:
 | **pwd** | vypíše cestu k aktuálnímu (pracovnímu) adresáři | | **pwd** | vypíše cestu k aktuálnímu (pracovnímu) adresáři |
 | **cd** / **cd ~** / **cd $HOME**\\ **cd** <​cesta_k_adresari>​ | přejde z pracovního adresáře do domovského\\ přejde do daného adresáře; cesta se uvede buď absolutní (začíná znakem „/“) nebo relativní (přímo názvem adresáře – pokud jde o podadresář současného adresáře, či znakem „..“ nebo „-“, který představuje adresář nadřazený či předchozí) | | **cd** / **cd ~** / **cd $HOME**\\ **cd** <​cesta_k_adresari>​ | přejde z pracovního adresáře do domovského\\ přejde do daného adresáře; cesta se uvede buď absolutní (začíná znakem „/“) nebo relativní (přímo názvem adresáře – pokud jde o podadresář současného adresáře, či znakem „..“ nebo „-“, který představuje adresář nadřazený či předchozí) |
-| **basename** <​cesta_k_souboru/​adresari>​ | vypíše název souboru/​adresáře,​ jehož cesta byla zadána jako parametr ​+| **basename** <​cesta_k_souboru/​adresari>​ | vypíše název souboru/​adresáře,​ jehož cesta byla zadána jako argument ​
-| **dirname** <​cesta_k_souboru/​adresari>​ | vypíše cestu k adresáři, v němž se nachází soubor/​adresář,​ jehož cesta byla zadána jako parametr\\ ''#​ read a; while %%[[ $a != "/"​ ]]%%; do ls -ld $a; a=$(dirname $a); done\\ /​var/​www/​html\\ drwxr-xr-x. 2 root root 6  5. lis 02.47 /​var/​www/​html\\ drwxr-xr-x. 4 root root 31  5. lis 02.47 /var/www\\ drwxr-xr-x. 25 root root 4096 12. kvě  2018 /​var''​\\ (vypíše práva k adresářům v cestě zadané jako parametr) |+| **dirname** <​cesta_k_souboru/​adresari>​ | vypíše cestu k adresáři, v němž se nachází soubor/​adresář,​ jehož cesta byla zadána jako argument\\ ''#​ read a; while %%[[ $a != "/"​ ]]%%; do ls -ld $a; a=$(dirname $a); done\\ /​var/​www/​html\\ drwxr-xr-x. 2 root root 6  5. lis 02.47 /​var/​www/​html\\ drwxr-xr-x. 4 root root 31  5. lis 02.47 /var/www\\ drwxr-xr-x. 25 root root 4096 12. kvě  2018 /​var''​\\ (vypíše práva k adresářům v cestě zadané jako argument) |
 | **tree** (<​adresar>​) | vypíše obsah pracovního či zadaného adresáře v stromové struktuře, **-a** včetně skrytých souborů, **-d** jen adresáře, **-L** <n> max. do dané úrovně adresářového stromu, **-p** přístupová práva, **-u** vlastníka souboru, **-g** skupinu vlastníků souboru, **-s** velikost souboru v B\\ ''​$ tree -a | tail -1''​\\ (vypíše celkový počet adresářů a souborů v pracovním adresáři) | | **tree** (<​adresar>​) | vypíše obsah pracovního či zadaného adresáře v stromové struktuře, **-a** včetně skrytých souborů, **-d** jen adresáře, **-L** <n> max. do dané úrovně adresářového stromu, **-p** přístupová práva, **-u** vlastníka souboru, **-g** skupinu vlastníků souboru, **-s** velikost souboru v B\\ ''​$ tree -a | tail -1''​\\ (vypíše celkový počet adresářů a souborů v pracovním adresáři) |
-| **ls** / **dir** (<​soubor/​adresar>​) | vypíše název souboru / obsah adresáře podle abecedy, **-a** včetně skrytých souborů, **-d** samotný adresář bez obsahu, **-i** číslo i-uzlu (i-node), **-l** podrobný výpis (práva, počet pevných odkazů, vlastník, skupina, velikost v B, čas poslední změny, název), **-r** v opačném pořadí, **-t** podle poslední změny, **-u** podle posledního přístupu, **-A** nezobrazí implicitní „.“ a „..“, **-F** značí typ položky („*“ = spustitelný soubor, „@“ = symbolický odkaz, „/“ = adresář, „=“ = socket, „%%|%%“ = pojmenovaná roura), **-R** rekurzivně,​ **-S** podle velikosti, **-X** podle přípony, **-Z** vypíše bezpečnostní nastavení v rámci ​SElinuxu\\ ''​$ ls -ld data''​\\ ''​drwxrwxr-x+ 2 root root 4096 Oct  4 17:39 data''​\\ (výpis sděluje, že na daném adresáři jsou nastavena práva ACL (znak „+” na konci oprávnění) a že skupina má právo zápisu, v tomto případě je však směrodatný výpis příkazu „getfacl”,​ který zpravidla objasní, že se nejedná o právo zápisu pro skupinu, ale značí to, že do adresáře smí zapisovat uživatel, jenž má udělen ACL přístup)\\ ''​$ ls -l /​var/​lib/​nfs/​etab''​\\ ''​-rw-r--r--. 1 root root 0 Apr 16  2010 /​var/​lib/​nfs/​etab''​\\ (výpis sděluje, že daný soubor má nastaveny speciální atributy (znak „.” na konci oprávnění;​ výpis atributů zobrazí příkaz „lsattr“) |+| **ls** / **dir** (<​soubor/​adresar>​) | vypíše název souboru / obsah adresáře podle abecedy; bez argumentu vypíše obsah pracovního adresáře, **-a** včetně skrytých souborů, **-d** samotný adresář bez obsahu, **-i** číslo i-uzlu (i-node), **-l** podrobný výpis (práva, počet pevných odkazů, vlastník, skupina, velikost v B, čas poslední změny, název), **-h** s volbou „-l” vypíše velikosti v čitelném formátu, **-r** v opačném pořadí, **-t** podle poslední změny, **-u** podle posledního přístupu, **-A** nezobrazí implicitní „.“ a „..“, **-F** značí typ položky („*“ = spustitelný soubor, „@“ = symbolický odkaz, „/“ = adresář, „=“ = socket, „%%|%%“ = pojmenovaná roura), **-R** rekurzivně,​ **-S** podle velikosti, **-X** podle přípony, **-Z** vypíše bezpečnostní nastavení v rámci ​SELinuxu\\ ''​$ ls -ld data''​\\ ''​drwxrwxr-x+ 2 root root 4096 Oct  4 17:39 data''​\\ (výpis sděluje, že na daném adresáři jsou nastavena práva ACL (znak „+” na konci oprávnění) a že skupina má právo zápisu, v tomto případě je však směrodatný výpis příkazu „getfacl”,​ který zpravidla objasní, že se nejedná o právo zápisu pro skupinu, ale značí to, že do adresáře smí zapisovat uživatel, jenž má udělen ACL přístup)\\ ''​$ ls -l /​var/​lib/​nfs/​etab''​\\ ''​-rw-r--r--. 1 root root 0 Apr 16  2010 /​var/​lib/​nfs/​etab''​\\ (výpis sděluje, že daný soubor má nastaveny speciální atributy (znak „.” na konci oprávnění;​ výpis atributů zobrazí příkaz „lsattr“) |
 | **stat** <​soubor>​ | vypíše podrobné vlastnosti souboru (jméno, velikost v B, počet bloků, typ souboru, číslo i-uzlu, přístupová práva, vlastníka a skupinu, čas posledního přístupu, modifikace a změny), **-c** <​format>​ zobrazí výstup v daném formátu (**%a** přístupová práva v číselném vyjádření,​ **%A** přístupová práva v symbolickém vyjádření,​ **%b** počet bloků, **%F** typ souboru, **%g** ID skupiny, **%G** jméno skupiny, **%i** číslo i-uzlu, **%n** jméno souboru, **%s** velikost v B, **%u** ID vlastníka, **%U** jméno vlastníka, **%x** čas posledního přístupu, **%y** čas poslední modifikace, **%z** čas poslední změny), **-f** informace o SS\\ ''​$ stat -c "%U %G" soubor''​ | | **stat** <​soubor>​ | vypíše podrobné vlastnosti souboru (jméno, velikost v B, počet bloků, typ souboru, číslo i-uzlu, přístupová práva, vlastníka a skupinu, čas posledního přístupu, modifikace a změny), **-c** <​format>​ zobrazí výstup v daném formátu (**%a** přístupová práva v číselném vyjádření,​ **%A** přístupová práva v symbolickém vyjádření,​ **%b** počet bloků, **%F** typ souboru, **%g** ID skupiny, **%G** jméno skupiny, **%i** číslo i-uzlu, **%n** jméno souboru, **%s** velikost v B, **%u** ID vlastníka, **%U** jméno vlastníka, **%x** čas posledního přístupu, **%y** čas poslední modifikace, **%z** čas poslední změny), **-f** informace o SS\\ ''​$ stat -c "%U %G" soubor''​ |
-| **du** (<​soubor/​adresar>​) | vypíše velikost diskového prostoru v kB, kterou daný soubor/​adresář včetně svého obsahu zabírá; bez parametru ​vypíše velikost pracovního adresáře včetně všech podadresářů,​ **-a** vypíše velikost všech adresářů a souborů rekurzivně,​ **-b** vypíše velikost v B, **-m** v MB, **-h** přehledný výpis, **-s** celkový součet bez podrobností\\ ''#​ du -sh /​home/​*''​\\ ''#​ du -am /var/log | sort -rn | head -50''​\\ (vypíše 50 největších souborů a adresářů v daném adresáři) |+| **du** (<​soubor/​adresar>​) | vypíše velikost diskového prostoru v kB, kterou daný soubor/​adresář včetně svého obsahu zabírá; bez argumentu ​vypíše velikost pracovního adresáře včetně všech podadresářů,​ **-a** vypíše velikost všech adresářů a souborů rekurzivně,​ **-b** vypíše velikost v B, **-m** v MB, **-h** přehledný výpis, **-s** celkový součet bez podrobností\\ ''#​ du -sh /​home/​*''​\\ ''#​ du -am /var/log | sort -rn | head -50''​\\ (vypíše 50 největších souborů a adresářů v daném adresáři) |
 | **touch** <​soubor>​ | vytvoří prázdný soubor, pokud existuje, změní čas posledního přístupu a modifikace na aktuální, **-a** změní jen čas posledního přístupu, **-m** jen čas modifikace, **-d** “<​RRRR-MM-DD hh:​mm>​“ použije zadaný čas místo aktuálního,​ **-c** nevytvoří žádný soubor | | **touch** <​soubor>​ | vytvoří prázdný soubor, pokud existuje, změní čas posledního přístupu a modifikace na aktuální, **-a** změní jen čas posledního přístupu, **-m** jen čas modifikace, **-d** “<​RRRR-MM-DD hh:​mm>​“ použije zadaný čas místo aktuálního,​ **-c** nevytvoří žádný soubor |
 | **mkdir** <​adresar>​ | vytvoří adresář, **-m** <​prava>​ určí přístupová práva, **-p** vytvoří více podadresářů současně (pokud neexistují)\\ ''​$ mkdir -p /​dir1/​dir2/​dir3''​ | | **mkdir** <​adresar>​ | vytvoří adresář, **-m** <​prava>​ určí přístupová práva, **-p** vytvoří více podadresářů současně (pokud neexistují)\\ ''​$ mkdir -p /​dir1/​dir2/​dir3''​ |
Řádek 19: Řádek 19:
 | **rm** <​soubor/​adresar>​ | odstraní soubor, **-R** adresář včetně obsahu, **-i** potvrzení k provedení, **-f** provede bez potvrzení, **-v** podrobný výpis | | **rm** <​soubor/​adresar>​ | odstraní soubor, **-R** adresář včetně obsahu, **-i** potvrzení k provedení, **-f** provede bez potvrzení, **-v** podrobný výpis |
 | **rmdir** <​adresar>​ | odstraní prázdný adresář, **-p** více podadresářů současně | | **rmdir** <​adresar>​ | odstraní prázdný adresář, **-p** více podadresářů současně |
-| **cp** <​zdroj>​ <cil> | kopíruje zdrojový soubor do cílového existujícího adresáře; jedná-li se o dva soubory, přičemž druhý z nich neexistuje, vytvoří se, existuje-li,​ bude obsah druhého souboru automaticky přepsán, **-i** potvrzení k provedení operace, **-f** provede bez potvrzení, **-b** vytvoří zálohu cílových souborů, jenž by mohly být případně přepsány, **-R** kopíruje adresář včetně jeho obsahu, **-p** zachová atributy zdroje, **-u** kopíruje jen v případě, že je zdroj novější než cíl nebo cíl neexistuje, **-v** podrobný výpis\\ ''#​ cp -pR /home /​mnt/​extdisk''​\\ ''#​ cp -pR /​home/​tom/​{*,​.[^.]*} /​mnt/​extdisk/​home/​tom''​\\ (zkopíruje obsah domovského adresáře uživatele „tom” na externí disk, včetně skrytých souborů) | +| **cp** <​zdroj>​ <cil> | kopíruje zdrojový soubor do cílového existujícího adresáře; jedná-li se o dva soubory, přičemž druhý z nich neexistuje, vytvoří se, existuje-li,​ bude obsah druhého souboru automaticky přepsán, **-i** potvrzení k provedení operace, **-f** provede bez potvrzení, **-b** vytvoří zálohu cílových souborů, jenž by mohly být případně přepsány, **-R** kopíruje adresář včetně jeho obsahu, **-p** zachová atributy zdroje, **-u** kopíruje jen v případě, že je zdroj novější než cíl nebo cíl neexistuje, **-v** podrobný výpis\\ ''​$ cp soubor1 ./​soubor2''​\\ (zkopíruje soubor pod jiným názvem do téhož adresáře)\\ ''#​ cp -pR /home /​mnt/​extdisk''​\\ ''#​ cp -pR /​home/​tom/​{*,​.[^.]*} /​mnt/​extdisk/​home/​tom''​\\ (zkopíruje obsah domovského adresáře uživatele „tom” na externí disk, včetně skrytých souborů) | 
-| **rsync** <​zdroj>​ <cil> | kopíruje zdrojový soubor do cílového existujícího adresáře; jedná-li se o dva soubory, přičemž druhý z nich neexistuje, vytvoří se, existuje-li,​ bude obsah druhého souboru automaticky přepsán; pokud cíl již obsahuje některá data shodná se zdrojem, kopíruje se pouze jejich rozdíl; lze přenášet data i mezi vzdálenými počítači,​ **-r** kopíruje adresář včetně jeho obsahu, **-l** zachová symbolické odkazy, **-p** zachová přístupová práva souboru, **-o** zachová vlastníka souboru, **-g** zachová skupinu vlastníků souboru, **-t** zachová čas poslední změny souboru, **-D** zachová speciální soubory, **-a** zahrnuje volby "-rlptgoD", **-z** komprimuje data během přenosu, **--delete** smaže přebytečná data v cílovém adresáři, která již ve zdroji neexistují,​ **--ignore-errors** smaže přebytečná data i v případě I/O chyb, **--exclude** <​vzor>​ nekopíruje soubory daného vzoru, **--progress** vypíše průběh synchronizace,​ **--rsh** <​prikaz>​ použije daný příkaz při vzdáleném přenosu, **-v** podrobný výpis\\ ''#​ rsync -a --delete --exclude "​.gvfs"​ /home /​mnt/​extdisk''​\\ ''​$ rsync --rsh="​ssh -l root -p 22022" soubor1 soubor2 192.168.152.47:/​tmp''​ |+| **rsync** <​zdroj>​ <cil> | kopíruje zdrojový soubor do cílového existujícího adresáře; jedná-li se o dva soubory, přičemž druhý z nich neexistuje, vytvoří se, existuje-li,​ bude obsah druhého souboru automaticky přepsán; pokud cíl již obsahuje některá data shodná se zdrojem, kopíruje se pouze jejich rozdíl; lze přenášet data i mezi vzdálenými počítači,​ **-r** kopíruje adresář včetně jeho obsahu, **-l** zachová symbolické odkazy, **-p** zachová přístupová práva souboru, **-o** zachová vlastníka souboru, **-g** zachová skupinu vlastníků souboru, **-t** zachová čas poslední změny souboru, **-D** zachová speciální soubory, **-a** zahrnuje volby -rlptgoD, **-z** komprimuje data během přenosu, **--delete** smaže přebytečná data v cílovém adresáři, která již ve zdroji neexistují,​ **--ignore-errors** smaže přebytečná data i v případě I/O chyb, **--exclude** <​vzor>​ nekopíruje soubory daného vzoru, **--progress** vypíše průběh synchronizace,​ **--rsh** <​prikaz>​ použije daný příkaz při vzdáleném přenosu, **-v** podrobný výpis\\ ''#​ rsync -a --delete --exclude "​.gvfs"​ /home /​mnt/​extdisk''​\\ ''#​ rsync -avz /var/log/ 192.168.0.20:/​logs''​\\ ''​$ rsync --rsh="​ssh -l root -p 22022" soubor1 soubor2 192.168.152.47:/​tmp''​ |
 | **dd** <​parametr>​**=**<​hodnota>​ | kopíruje data mezi zařízeními,​ **if**=<​zdroj>,​ **of**=<​cil>,​ **bs**=<​velikost_bloku_v_bytech>​ (implicitně 512 B), **count**=<​pocet_bloku>​\\ ''​$ dd if=/​dev/​cdrom bs=1500 of=/​tmp/​image.iso''​\\ ''​$ dd if=/​dev/​zero of=test bs=5M count=10''​\\ (snadno vytvoří prázdný soubor větší velikosti)\\ ''#​ dd if=/​dev/​urandom of=/​dev/​sdb1 bs=1G''​\\ (přepíše disk/oddíl náhodnými daty) | | **dd** <​parametr>​**=**<​hodnota>​ | kopíruje data mezi zařízeními,​ **if**=<​zdroj>,​ **of**=<​cil>,​ **bs**=<​velikost_bloku_v_bytech>​ (implicitně 512 B), **count**=<​pocet_bloku>​\\ ''​$ dd if=/​dev/​cdrom bs=1500 of=/​tmp/​image.iso''​\\ ''​$ dd if=/​dev/​zero of=test bs=5M count=10''​\\ (snadno vytvoří prázdný soubor větší velikosti)\\ ''#​ dd if=/​dev/​urandom of=/​dev/​sdb1 bs=1G''​\\ (přepíše disk/oddíl náhodnými daty) |
 | **mv** <​zdroj>​ <cil> | přemístí zdrojový soubor či adresář do cílového existujícího adresáře; jedná-li se o dva soubory či dva adresáře, přičemž druhý z nich neexistuje, bude první přejmenován na druhý, pokud však druhý soubor existuje, bude jeho obsah automaticky přepsán, **-i** potvrzení k provedení operace, **-f** provede bez potvrzení, **-b** vytvoří zálohu cílových souborů, jenž by mohly být případně přepsány, **-v** podrobný výpis | | **mv** <​zdroj>​ <cil> | přemístí zdrojový soubor či adresář do cílového existujícího adresáře; jedná-li se o dva soubory či dva adresáře, přičemž druhý z nich neexistuje, bude první přejmenován na druhý, pokud však druhý soubor existuje, bude jeho obsah automaticky přepsán, **-i** potvrzení k provedení operace, **-f** provede bez potvrzení, **-b** vytvoří zálohu cílových souborů, jenž by mohly být případně přepsány, **-v** podrobný výpis |
 | **rename** <​zdroj>​ <cil> <​soubor/​adresar>​ | přejmenuje daný soubor či adresář z původního názvu na cílový podle uvedených vzorů\\ ''​$ rename .htm .html *.htm''​\\ ''​$ find / -name "​honza*"​ | xargs rename honza jan''​ | | **rename** <​zdroj>​ <cil> <​soubor/​adresar>​ | přejmenuje daný soubor či adresář z původního názvu na cílový podle uvedených vzorů\\ ''​$ rename .htm .html *.htm''​\\ ''​$ find / -name "​honza*"​ | xargs rename honza jan''​ |
-| **find** <​cesta>​ <​volba>​ <​vyraz>​ (<​akce>​) | hledá soubor/​adresář,​ **-name** <​jmeno>​ podle názvu, **-iname** <​jmeno>​ podle názvu (nerozlišuje velikost písma), **-regex** <​vzor>​ podle názvu, jenž odpovídá danému regulárnímu výrazu, **-iregex** <​vzor>​ podle názvu, jenž odpovídá danému regulárnímu výrazu (nerozlišuje velikost písma), **-inum** <n> podle i-nodu, **-atime** / **-amin** <-n / n / +n> podle posledního přístupu v řádu dní/minut, **-ctime** / **-cmin** <-n / n / +n> podle změny atributů v řádu dní/minut, **-mtime** / **-mmin** <-n / n / +n> podle změny obsahu v řádu dní/minut, **-size** <-n / n / +n><​velikost>​ podle velikosti („k” = kB, „M” = MB, „G” = GB), **-empty** prázdný soubor či adresář, **-type** podle typu („d” = adresář, „f” = soubor, „l” = symbolický odkaz, „b” = blokové zařízení,​ „c” = znakové zařízení),​ **-context** <​kontext>​ podle bezpečnostního kontextu SELinuxu, **-user** <​uzivatel/​UID>​ podle vlastníka, **-group** <​skupina/​GID>​ podle skupiny, **-perm** <​prava> ​ přesně podle zadaných práv, **-perm** **-**<​prava>​ podle nastavených práv, jejichž všechny ​ bity zahrnují alespoň bity zadaných práv, **-perm** **/​**<​prava>​ podle nastavených práv, jejichž libovolný bit zahrnuje i bit zadaných práv, **-nouser** najde soubory neexistujících uživatelů,​ **-nogroup** najde soubory neexistujících skupin, **-exec** <​prikaz>​ (<​argumenty>​) **{} \;** provede příkaz (řetězec „{}“ se nahradí cestou k nalezenému souboru, „;“ značí konec požadovaného příkazu; musí být chráněn před expanzí shellu), **-ok** <​prikaz>​ (<​argumenty>​) **{} \;** interaktivní verze volby „-exec“ (vyžádá si potvrzení k provedení operace), **-maxdepth** <​uroven>​ prohledává max. do dané úrovně adresářového stromu, **-mindepth** <​uroven>​ prohledává min. od dané úrovně adresářového stromu, **-print** zobrazí výsledek, **-print0** zobrazí i jména souborů obsahujících mezeru, **-o** = „nebo“, **!** = negace\\ ''#​ find /home -name "​*.jpg"​ -o -name "​*.png"''​\\ ''#​ find . -type f -o -type d | wc -l''​\\ (spočítá v pracovním adresáři všechny soubory a adresáře)\\ ''#​ find ! -type f''​\\ (vyhledá v pracovním adresáři vše kromě běžných souborů)\\ ''#​ find / -user nike -exec chown tom {} \;''​\\ ''#​ find / -user tom -exec rm -Rf {} \;''​\\ ''#​ find . -maxdepth 2 -type l''​\\ ''#​ find / -nouser -o -nogroup''​\\ ''#​ find / -perm -4000''​\\ (vyhledá všechny soubory s nastaveným SUID bitem)\\ ''#​ find / -context "​*tmp_t*"''​\\ ''#​ find /var/log -type f -size +100M | xargs du -am | sort -rn | head -10''​\\ (vyhledá a sestupně seřadí 10 souborů větších než 100 MB)\\ ''#​ find /etc/rc.d -type f \( -perm -g=w -o -perm -o=w \)''​\\ (vyhledá soubory s právy k zápisu pro skupinu nebo ostatní, kromě symbolických odkazů)\\ ''#​ find / -type f -regex "​.*\.\(sh\|pl\|py\)"​ -perm -o=x''​\\ (vyhledá skripty s právy ke spuštění pro ostatní)\\ |+| **find** ​(<​cesta>​<​volba> ​(<​vyraz>​(<​akce>​) | hledá soubor/​adresář,​ **-name** <​jmeno>​ podle názvu, **-iname** <​jmeno>​ podle názvu (nerozlišuje velikost písma), **-regex** <​vzor>​ podle názvu, jenž odpovídá danému regulárnímu výrazu, **-iregex** <​vzor>​ podle názvu, jenž odpovídá danému regulárnímu výrazu (nerozlišuje velikost písma), **-inum** <n> podle i-nodu, **-atime** / **-amin** <-n / n / +n> podle posledního přístupu v řádu dní/minut, **-ctime** / **-cmin** <-n / n / +n> podle změny atributů v řádu dní/minut, **-mtime** / **-mmin** <-n / n / +n> podle změny obsahu v řádu dní/minut, **-size** <-n / n / +n><​velikost>​ podle velikosti („k” = kB, „M” = MB, „G” = GB), **-empty** prázdný soubor či adresář, **-type** podle typu („d” = adresář, „f” = soubor, „l” = symbolický odkaz, „b” = blokové zařízení,​ „c” = znakové zařízení),​ **-context** <​kontext>​ podle bezpečnostního kontextu SELinuxu, **-user** <​uzivatel/​UID>​ podle vlastníka, **-group** <​skupina/​GID>​ podle skupiny, **-perm** <​prava> ​ přesně podle zadaných práv, **-perm** **-**<​prava>​ podle nastavených práv, jejichž všechny ​ bity zahrnují alespoň bity zadaných práv, **-perm** **/​**<​prava>​ podle nastavených práv, jejichž libovolný bit zahrnuje i bit zadaných práv, **-nouser** najde soubory neexistujících uživatelů,​ **-nogroup** najde soubory neexistujících skupin, **-exec** <​prikaz>​ (<​argumenty>​) **{} \;** provede příkaz (řetězec „{}“ se nahradí cestou k nalezenému souboru, „;“ značí konec požadovaného příkazu; musí být chráněn před expanzí shellu), **-ok** <​prikaz>​ (<​argumenty>​) **{} \;** interaktivní verze volby „-exec“ (vyžádá si potvrzení k provedení operace), **-maxdepth** <​uroven>​ prohledává max. do dané úrovně adresářového stromu, **-mindepth** <​uroven>​ prohledává min. od dané úrovně adresářového stromu, **-print** zobrazí výsledek, **-print0** zobrazí i jména souborů obsahujících mezeru, **-o** = „nebo“, **!** = negace\\ ''#​ find /home -name "​*.jpg"​ -o -name "​*.png"''​\\ ''#​ find . -type f -o -type d | wc -l''​\\ (spočítá v pracovním adresáři všechny soubory a adresáře)\\ ''#​ find ! -type f''​\\ (vyhledá v pracovním adresáři vše kromě běžných souborů)\\ ''#​ find /tmp -mmin -120''​\\ (vyhledá všechny soubory, které byly změněny za poslední 2 h)\\ ''#​ find / -user nike -exec chown tom {} \;''​\\ ''#​ find / -user tom -exec rm -Rf {} \;''​\\ ''#​ find . -maxdepth 2 -type l''​\\ ''#​ find / -nouser -o -nogroup''​\\ ''#​ find / -perm -4000''​\\ (vyhledá všechny soubory s nastaveným SUID bitem)\\ ''#​ find / -context "​*tmp_t*"''​\\ ''#​ find /var/log -type f -size +100M | xargs du -am | sort -rn | head -10''​\\ (vyhledá a sestupně seřadí 10 souborů větších než 100 MB)\\ ''#​ find /etc/rc.d -type f \( -perm -g=w -o -perm -o=w \)''​\\ (vyhledá soubory s právy k zápisu pro skupinu nebo ostatní, kromě symbolických odkazů)\\ ''#​ find / -type f -regex "​.*\.\(sh\|pl\|py\)"​ -perm -o=x''​\\ (vyhledá skripty s právy ke spuštění pro ostatní)\\ |
 | **which** <​program>​ | vypíše cestu k binárnímu souboru daného programu (jeho aliasu), **-a** zobrazí všechny výskyty v $PATH | | **which** <​program>​ | vypíše cestu k binárnímu souboru daného programu (jeho aliasu), **-a** zobrazí všechny výskyty v $PATH |
 | **whereis** <​prikaz>​ | vypíše cestu k binárnímu,​ zdrojovému a manuálovému souboru daného příkazu | | **whereis** <​prikaz>​ | vypíše cestu k binárnímu,​ zdrojovému a manuálovému souboru daného příkazu |
Řádek 30: Řádek 30:
 | **apropos** / **man -k** <​klicove_slovo>​ | hledá příkazy obsahující daný řetězec či jeho část | | **apropos** / **man -k** <​klicove_slovo>​ | hledá příkazy obsahující daný řetězec či jeho část |
 | **whatis** / **man -f** <​klicove_slovo>​ | hledá příkazy obsahující přesně zadaný řetězec | | **whatis** / **man -f** <​klicove_slovo>​ | hledá příkazy obsahující přesně zadaný řetězec |
-| **man** / **info** <​prikaz>​ | vypíše nápovědu k danému příkazu, **q** ukončí ​příkaz ​|+| **man** / **info** <​prikaz>​ | vypíše nápovědu k danému příkazu, **q** ukončí ​program ​|
 | **help** (<​prikaz>​) | vypíše všechny vestavěné příkazy a klíčová slova shellu či nápovědu k zadaným vestavěným příkazům a klíčovým slovům shellu | | **help** (<​prikaz>​) | vypíše všechny vestavěné příkazy a klíčová slova shellu či nápovědu k zadaným vestavěným příkazům a klíčovým slovům shellu |
 \\ \\
Řádek 39: Řádek 39:
 | **cat** (<​soubor>​) | vypíše obsah textového souboru, **-n** čísluje všechny řádky, **-b** jen řádky obsahující text; není-li soubor uveden, čte ze STDIN\\ ''​$ cat a b c  > abc''​ | | **cat** (<​soubor>​) | vypíše obsah textového souboru, **-n** čísluje všechny řádky, **-b** jen řádky obsahující text; není-li soubor uveden, čte ze STDIN\\ ''​$ cat a b c  > abc''​ |
 | **tac** (<​soubor>​) | vypíše obsah textového souboru v opačném pořadí; není-li soubor uveden, čte ze STDIN | | **tac** (<​soubor>​) | vypíše obsah textového souboru v opačném pořadí; není-li soubor uveden, čte ze STDIN |
-| **more** <​soubor>​ | vypíše obsah většího textového souboru po stránkách,​ **mezera** posune o stránku vpřed, **b** o stránku vzad, **/​**<​vyraz>​ hledá v textu daný výraz směrem vpřed, **n** pokračuje v dalším hledání, **q** ukončí ​příkaz ​+| **more** <​soubor>​ | vypíše obsah většího textového souboru po stránkách,​ **mezera** posune o stránku vpřed, **b** o stránku vzad, **/​**<​vyraz>​ hledá v textu daný výraz směrem vpřed, **n** pokračuje v dalším hledání, **q** ukončí ​program ​
-| **less** <​soubor>​ | vypíše obsah většího textového souboru po stránkách,​ **mezera** / **page down** posune o stránku vpřed, **b** / **page up** o stránku vzad, **<** na začátek souboru, **>** na konec souboru, **/​**<​vyraz>​ hledá v textu daný výraz směrem vpřed, **n**/**N** pokračuje v dalším hledání / v hledání opačným směrem, **-N** čísluje řádky, **q** ukončí ​příkaz ​|+| **less** <​soubor>​ | vypíše obsah většího textového souboru po stránkách,​ **mezera** / **page down** posune o stránku vpřed, **b** / **page up** o stránku vzad, **<** na začátek souboru, **>** na konec souboru, **/​**<​vyraz>​ hledá v textu daný výraz směrem vpřed, **n**/**N** pokračuje v dalším hledání / v hledání opačným směrem, **-N** čísluje řádky, **q** ukončí ​program ​|
 | **head** (<​-n>​) (<​soubor>​) | vypíše prvních //n// řádků souboru (implicitně 10); není-li soubor uveden, čte ze STDIN | | **head** (<​-n>​) (<​soubor>​) | vypíše prvních //n// řádků souboru (implicitně 10); není-li soubor uveden, čte ze STDIN |
 | **tail** (<​-n>​) (<​soubor>​) | vypíše posledních //n// řádků souboru (implicitně 10), **-f** aktualizuje výpis (zobrazí i další, nově příchozí data); není-li soubor uveden, čte ze STDIN\\ ''​$ head -25 access.log | tail -1''​\\ (vypíše 25. řádek souboru) | | **tail** (<​-n>​) (<​soubor>​) | vypíše posledních //n// řádků souboru (implicitně 10), **-f** aktualizuje výpis (zobrazí i další, nově příchozí data); není-li soubor uveden, čte ze STDIN\\ ''​$ head -25 access.log | tail -1''​\\ (vypíše 25. řádek souboru) |
Řádek 47: Řádek 47:
 | **sort** (<​soubor>​) | vzestupně třídí obsah řádků textového souboru, **-n** podle číselných hodnot, **-f** ignoruje velikost písmen, **-k** <n> podle sloupce, **-u** ignoruje duplicitní řádky, **-r** v obráceném pořadí; není-li soubor uveden, čte ze STDIN\\ ''​$ sort soubor.txt | uniq''​ | | **sort** (<​soubor>​) | vzestupně třídí obsah řádků textového souboru, **-n** podle číselných hodnot, **-f** ignoruje velikost písmen, **-k** <n> podle sloupce, **-u** ignoruje duplicitní řádky, **-r** v obráceném pořadí; není-li soubor uveden, čte ze STDIN\\ ''​$ sort soubor.txt | uniq''​ |
 | **uniq** (<​soubor>​) | vypíše obsah textového souboru, následují-li po sobě identické řádky, zobrazí vždy jen jeden z nich, **-d** vypíše duplicitní,​ po sobě jdoucí řádky (pro výpis všech duplicitních řádků je třeba obsah souboru setřídit),​ **-u** jedinečné řádky, **-c** u každého řádku vypíše počet výskytů totožných,​ po sobě jdoucích řádků, **-i** ignoruje velikost písmen; není-li soubor uveden, čte ze STDIN | | **uniq** (<​soubor>​) | vypíše obsah textového souboru, následují-li po sobě identické řádky, zobrazí vždy jen jeden z nich, **-d** vypíše duplicitní,​ po sobě jdoucí řádky (pro výpis všech duplicitních řádků je třeba obsah souboru setřídit),​ **-u** jedinečné řádky, **-c** u každého řádku vypíše počet výskytů totožných,​ po sobě jdoucích řádků, **-i** ignoruje velikost písmen; není-li soubor uveden, čte ze STDIN |
-| **grep** <​vyraz>​ (<​soubor/​adresar>​) | vyhledá v textovém souboru řetězce, které obsahují daný výraz (vypíše vždy celý řádek), **-v** naopak vypíše řádky, které daný řetězec neobsahují,​ **-n** vypíše číslo řádku, **-c** vypíše pouze počet řádků obsahujících daný výraz, **-l** vypíše pouze jména souborů obsahujících shodný výraz, **-L** naopak vypíše jen jména souborů neobsahujících daný výraz, **-i** ignoruje velikost písmen, **-f** <​soubor>​ čte výrazy z daného souboru (na každém řádku jeden), **-o** vypíše jen tu část řádku, odpovídající výrazu, **-E** obdoba příkazu „egrep“,​ **-R** rekurzivně,​ **-w** vyhledá celá slova, jimž výraz vyhovuje, **--color** barevně zvýrazní odpovídající řetězec; není-li soubor uveden, čte ze STDIN\\ ''​$ grep linux notes''​ / ''​cat notes | grep linux''​\\ ''​$ grep '​^P.*r$'​ notes''​\\ ''​$ grep -E '​AB|CD'​ notes''​\\ ''​$ grep -R linux ~/data''​\\ ''​$ ls -l | grep '​^d'​''​ | +| **grep** <​vyraz>​ (<​soubor/​adresar>​) | vyhledá v textovém souboru řetězce, které obsahují daný výraz (vypíše vždy celý řádek), **-v** naopak vypíše řádky, které daný řetězec neobsahují,​ **-n** vypíše číslo řádku, **-c** vypíše pouze počet řádků obsahujících daný výraz, **-l** vypíše pouze jména souborů obsahujících shodný výraz, **-L** naopak vypíše jen jména souborů neobsahujících daný výraz, **-i** ignoruje velikost písmen, **-f** <​soubor>​ čte výrazy z daného souboru (na každém řádku jeden), **-o** vypíše jen tu část řádku, odpovídající výrazu, **-E** obdoba příkazu „egrep“,​ **-R** rekurzivně,​ **-w** vyhledá celá slova, jimž výraz vyhovuje, **--color** barevně zvýrazní odpovídající řetězec; není-li soubor uveden, čte ze STDIN\\ ''​$ grep linux notes''​ / ''​cat notes | grep linux''​\\ ''​$ ls -l | grep '​^d'​''​\\ ''​$ grep '​^P.*r$'​ notes''​\\ ''​$ grep -E '​AB|CD'​ notes''​\\ ''​$ grep -R linux ~/​data''​ | 
-| **egrep** / **grep -E** <​vyraz>​ (<​soubor/​adresar>​) | vyhledá v textovém souboru řetězce za použití rozšířených regulárních výrazů; není-li soubor uveden, čte ze STDIN\\ ''​$ egrep -o '​^[^:​]+'​ /​etc/​passwd''​\\ (vypíše všechny uživatele v systému) | +| **egrep** / **grep -E** <​vyraz>​ (<​soubor/​adresar>​) | vyhledá v textovém souboru řetězce za použití rozšířených regulárních výrazů; není-li soubor uveden, čte ze STDIN\\ ''#​ egrep -v '​^[#;​]|^$'​ *conf*''​\\ (vypíše všechny řádky v konfiguračních souborech, které nejsou zakomentované nebo prázdné)\\ ''​$ egrep -o '​^[^:​]+'​ /​etc/​passwd''​\\ (vypíše všechny uživatele v systému) | 
-| **sed** (<​adresa>​) <​prikaz>​ (<​soubor>​) | filtruje a edituje text neinteraktivní formou (využití zejména ve skriptech), **-e** <​skript>​ provede daný skript, **-f** <​soubor>​ provede skript obsažený v daném souboru, **-i** provede změny přímo v souboru (jinak je nutné změny uložit použitím přesměrování),​ **-n** nevypíše výstup na STDOUT; adresa představuje buď pořadové číslo řádku od začátku vstupu (např. 1,10 = rozmezí řádků), znak  „$“ (poslední řádek vstupu) či vzorek (regulární výraz) ohraničený z obou stran oddělovačem – standardně „/“; příkaz **s** nahradí vzorek následujícím výrazem ohraničeným oddělovači (jen první vyhovující vzorek), //n// právě //n//tý výskyt vzorku, **g** nahradí vzorek globálně, u každého výskytu, **a** přidá výraz pod řádek se zadaným vzorkem, <​n>​**p** vypíše daný řádek souboru (s volbou ​"-n"), **d** smaže celý řádek obsahující daný výraz, **!**<​prikaz>​ provede příkaz pro všechny adresy, kromě adres uvedených; není-li soubor uveden, čte ze STDIN\\ ''​$ echo "11 x, 22 x, 33 x" | sed '​s/​x/​y/​2'''​\\ (nahradí pouze druhý výskyt řetězce „x“ řetězcem „y“)\\ ''​$ sed -i '​s/​retezec1/​retezec2/​g'​ soubor''​\\ (nahradí první řetězec druhým v celém souboru)\\ ''​$ sed 's/ \+/​\t/​g'​ test1 > test2''​\\ (nahradí v souboru různý počet mezer jedním tabulátorem)\\ ''​$ echo "Log retention:"​ $(sed -n '​3p;​6p'​ /​etc/​logrotate.conf)''​\\ (vypíše 3. a 6. řádek souboru)\\ ''​$ sed '/​dev/​!d'​ soubor''​\\ (vypíše řádky obsahující výraz „dev“)\\ ''​$ sed -i '​1,​10d'​ soubor''​\\ (smaže prvních 10 řádků souboru)\\ ''​$ sed -i '​5,​$d'​ soubor''​\\ (smaže vše od 5. řádku až po konec souboru)\\ ''​$ sed '​1,/​START/​d'​ soubor''​\\ (smaže vše do slova „START“ včetně)\\ ''​$ sed '​1,/​STOP/​!d'​ soubor''​\\ (smaže vše od slova „STOP“)\\ ''​$ sed -e '/​^#/​d;​ /^$/d' soubor1 > soubor2''​\\ (odstraní v souboru komentáře a prázdné řádky)\\ ''#​ sed -i '/​auth%%[[:​blank:​]]%%\+required%%[[:​blank:​]]%%\+pam_deny.so/​a auth\trequired\tpam_tally2.so deny=5'​ /​etc/​pam.d/​system-auth-ac''​\\ (přidá výraz pod řádek se zadaným vzorkem)\\ ''​$ sed '/​^[^#​]*\(sha[25]\|md5\)/​!d'​ /​etc/​pam.d/​system-auth /​etc/​pam.d/​common-password 2> /dev/null | egrep -o "​sha[1256]{3}|md5"​ || sed '/​^[^#​]*ENCRYPT_METHOD/​!d'​ /​etc/​login.defs''​\\ (zobrazí šifrovací algoritmus pro nově vytvořená hesla) |+| **sed** (<​adresa>​) <​prikaz>​ (<​soubor>​) | filtruje a edituje text neinteraktivní formou (využití zejména ve skriptech), **-e** <​skript>​ provede daný skript, **-f** <​soubor>​ provede skript obsažený v daném souboru, **-i** provede změny přímo v souboru (jinak je nutné změny uložit použitím přesměrování),​ **-n** nevypíše výstup na STDOUT; adresa představuje buď pořadové číslo řádku od začátku vstupu (např. 1,10 = rozmezí řádků), znak  „$“ (poslední řádek vstupu) či vzorek (regulární výraz) ohraničený z obou stran oddělovačem – standardně „/“; příkaz **s** nahradí vzorek následujícím výrazem ohraničeným oddělovači (jen první vyhovující vzorek), //n// právě //n//tý výskyt vzorku, **g** nahradí vzorek globálně, u každého výskytu, **a** přidá výraz pod řádek se zadaným vzorkem, <​n>​**p** vypíše daný řádek souboru (s volbou ​-n), **d** smaže celý řádek obsahující daný výraz, **!**<​prikaz>​ provede příkaz pro všechny adresy, kromě adres uvedených; není-li soubor uveden, čte ze STDIN\\ ''​$ echo "11 x, 22 x, 33 x" | sed '​s/​x/​y/​2'''​\\ (nahradí pouze druhý výskyt řetězce „x“ řetězcem „y“)\\ ''​$ sed -i '​s/​retezec1/​retezec2/​g'​ soubor''​\\ (nahradí první řetězec druhým v celém souboru)\\ ''​$ sed 's/ \+/​\t/​g'​ test1 > test2''​\\ (nahradí v souboru různý počet mezer jedním tabulátorem)\\ ''​$ echo "Log retention:"​ $(sed -n '​3p;​6p'​ /​etc/​logrotate.conf)''​\\ (vypíše 3. a 6. řádek souboru)\\ ''​$ sed '/​dev/​!d'​ soubor''​\\ (vypíše řádky obsahující výraz „dev“)\\ ''​$ sed -i '​1,​10d'​ soubor''​\\ (smaže prvních 10 řádků souboru)\\ ''​$ sed -i '​5,​$d'​ soubor''​\\ (smaže vše od 5. řádku až po konec souboru)\\ ''​$ sed '​1,/​START/​d'​ soubor''​\\ (smaže vše do slova „START“ včetně)\\ ''​$ sed '​1,/​STOP/​!d'​ soubor''​\\ (smaže vše od slova „STOP“)\\ ''​$ sed -e '/​^#/​d;​ /^$/d' soubor1 > soubor2''​\\ (odstraní v souboru komentáře a prázdné řádky)\\ ''#​ sed -i '/​auth%%[[:​blank:​]]%%\+required%%[[:​blank:​]]%%\+pam_deny.so/​a auth\trequired\tpam_tally2.so deny=5'​ /​etc/​pam.d/​system-auth-ac''​\\ (přidá výraz pod řádek se zadaným vzorkem)\\ ''​$ sed '/​^[^#​]*\(sha[25]\|md5\)/​!d'​ /​etc/​pam.d/​system-auth /​etc/​pam.d/​common-password 2> /dev/null | egrep -o "​sha[1256]{3}|md5"​ || sed '/​^[^#​]*ENCRYPT_METHOD/​!d'​ /​etc/​login.defs''​\\ (zobrazí šifrovací algoritmus pro nově vytvořená hesla) |
 | **awk** '<​program>'​ (<​soubor>​) | filtruje text neinteraktivní formou (využití zejména ve skriptech); program je série pravidel obsahující vzorek, akci či obojí, akce je uzavřena do „{}“; **-f** <​soubor>​ čte program z daného souboru, **-F** <​retezec>​ určí oddělovač položek vstupu, **-v** <​promenna>​=<​hodnota>​ nastaví danou proměnnou v rámci programu; mezi vestavěné proměnné patří **NR** počet záznamů (řádků) oddělených novým řádkem, **NF** počet položek na řádku oddělených oddělovačem (implicitně bílým místem), na jednotlivé položky se odkazuje $1, $2 atd., $0 odkazuje na celý záznam, **RS** definuje oddělovač záznamů, **FS** definuje oddělovač položek, **ORS** definuje výstupní oddělovač záznamů, **OFS** definuje výstupní oddělovač položek; pro porovnání řetězců slouží operátory **==** je rovno, **!=** není rovno, **<** méně než, **>** více než, **<=** méně než nebo rovno, **>=** více než nebo rovno; regulární výrazy jsou uzavřeny v „/​“„/​“,​ pro porovnání se používá **~** vzorek odpovídá RE, **!~** vzorek neodpovídá RE;  **||** logické „nebo“, **&&​** logické „a“; není-li soubor uveden, čte ze STDIN\\ ''​$ awk '/​nameserver/​ {print}'​ /​etc/​resolv.conf''​\\ (vypíše ze souboru řádky obsahující „nameserver“)\\ ''​$ awk '​{print $1, $2}' /​etc/​fstab''​\\ (vypíše každé první a druhé slovo všech řádků souboru)\\ ''​$ awk -F ":"​ '​{print $1, $7}' /​etc/​passwd''​\\ (vypíše všechny uživatele a jejich přihlašovací shell)\\ ''​$ awk '​{print $1 > "​soubor1";​ print $2 > "​soubor2"​}'​ test''​\\ (přesměruje výpis prvního a druhého slova do souborů)\\ ''​$ awk '​length > 10' seznam.txt''​\\ (vypíše řádky delší než deset znaků)\\ ''​$ awk 'NF < 5' seznam.txt''​\\ (vypíše řádky kratší než pět slov)\\ ''​$ awk 'NR == 5' error.log''​\\ (vypíše 5. řádek souboru)\\ ''​$ awk 'NR == 5, NR == 10' album''​\\ (vypíše 5. až 10. řádek souboru)\\ ''​$ awk '​{print NR,"​->",​NF}'​ seznam.txt''​\\ (vypíše počet slov u každého řádku souboru)\\ ''​$ ls -l | grep "​^-"​ | awk '{sum += $5} END {print sum/​1024/​1024}'''​\\ (vypíše velikost všech souborů v pracovním adresáři v MB)\\ ''#​ ne=$(awk -F ":"​ '{if (length($2) > 2 && ($5 == ""​ || $5 >= 99999)) print $1}' /​etc/​shadow);​ %%[[ -z "​$ne"​ ]]%% && echo "​NONE"​ || echo "​$ne"​ | tr " " "​\n"''​\\ (vypíše uživatele s neomezenou dobou platnosti hesla)\\ ''​$ sed '/​^[^:​]/​!d'​ /​etc/​inittab | awk -F "#"​ '​{print $1}' | awk -F ":"​ '{if %%(($4 !~ /^\// && $4 !~ /^$/) || ($4 ~ /​[|]+.?​[^/​]/​ && $4 !~ /^$/))%% print $4}'''​\\ (vyhledá v souboru příkazy, které nejsou uvedeny absolutní cestou) | | **awk** '<​program>'​ (<​soubor>​) | filtruje text neinteraktivní formou (využití zejména ve skriptech); program je série pravidel obsahující vzorek, akci či obojí, akce je uzavřena do „{}“; **-f** <​soubor>​ čte program z daného souboru, **-F** <​retezec>​ určí oddělovač položek vstupu, **-v** <​promenna>​=<​hodnota>​ nastaví danou proměnnou v rámci programu; mezi vestavěné proměnné patří **NR** počet záznamů (řádků) oddělených novým řádkem, **NF** počet položek na řádku oddělených oddělovačem (implicitně bílým místem), na jednotlivé položky se odkazuje $1, $2 atd., $0 odkazuje na celý záznam, **RS** definuje oddělovač záznamů, **FS** definuje oddělovač položek, **ORS** definuje výstupní oddělovač záznamů, **OFS** definuje výstupní oddělovač položek; pro porovnání řetězců slouží operátory **==** je rovno, **!=** není rovno, **<** méně než, **>** více než, **<=** méně než nebo rovno, **>=** více než nebo rovno; regulární výrazy jsou uzavřeny v „/​“„/​“,​ pro porovnání se používá **~** vzorek odpovídá RE, **!~** vzorek neodpovídá RE;  **||** logické „nebo“, **&&​** logické „a“; není-li soubor uveden, čte ze STDIN\\ ''​$ awk '/​nameserver/​ {print}'​ /​etc/​resolv.conf''​\\ (vypíše ze souboru řádky obsahující „nameserver“)\\ ''​$ awk '​{print $1, $2}' /​etc/​fstab''​\\ (vypíše každé první a druhé slovo všech řádků souboru)\\ ''​$ awk -F ":"​ '​{print $1, $7}' /​etc/​passwd''​\\ (vypíše všechny uživatele a jejich přihlašovací shell)\\ ''​$ awk '​{print $1 > "​soubor1";​ print $2 > "​soubor2"​}'​ test''​\\ (přesměruje výpis prvního a druhého slova do souborů)\\ ''​$ awk '​length > 10' seznam.txt''​\\ (vypíše řádky delší než deset znaků)\\ ''​$ awk 'NF < 5' seznam.txt''​\\ (vypíše řádky kratší než pět slov)\\ ''​$ awk 'NR == 5' error.log''​\\ (vypíše 5. řádek souboru)\\ ''​$ awk 'NR == 5, NR == 10' album''​\\ (vypíše 5. až 10. řádek souboru)\\ ''​$ awk '​{print NR,"​->",​NF}'​ seznam.txt''​\\ (vypíše počet slov u každého řádku souboru)\\ ''​$ ls -l | grep "​^-"​ | awk '{sum += $5} END {print sum/​1024/​1024}'''​\\ (vypíše velikost všech souborů v pracovním adresáři v MB)\\ ''#​ ne=$(awk -F ":"​ '{if (length($2) > 2 && ($5 == ""​ || $5 >= 99999)) print $1}' /​etc/​shadow);​ %%[[ -z "​$ne"​ ]]%% && echo "​NONE"​ || echo "​$ne"​ | tr " " "​\n"''​\\ (vypíše uživatele s neomezenou dobou platnosti hesla)\\ ''​$ sed '/​^[^:​]/​!d'​ /​etc/​inittab | awk -F "#"​ '​{print $1}' | awk -F ":"​ '{if %%(($4 !~ /^\// && $4 !~ /^$/) || ($4 ~ /​[|]+.?​[^/​]/​ && $4 !~ /^$/))%% print $4}'''​\\ (vyhledá v souboru příkazy, které nejsou uvedeny absolutní cestou) |
 | **tee** (<​soubor>​) | čte ze STDIN a zapisuje na STDOUT a případně do daného souboru, **-a** nepřepíše obsah souboru, výstup přidá na jeho konec\\ ''​$ ls | tee /tmp/test | wc -l''​\\ (výstup příkazu „ls“ zapíše do souboru „/​tmp/​test“,​ na STDOUT zobrazí pouze počet řádků)\\ ''​$ who | sort | tee -a log1 log2''​\\ (setříděný výstup příkazu „who“ zapíše jak na STDOUT, tak do souborů „log1“ a „log2“) | | **tee** (<​soubor>​) | čte ze STDIN a zapisuje na STDOUT a případně do daného souboru, **-a** nepřepíše obsah souboru, výstup přidá na jeho konec\\ ''​$ ls | tee /tmp/test | wc -l''​\\ (výstup příkazu „ls“ zapíše do souboru „/​tmp/​test“,​ na STDOUT zobrazí pouze počet řádků)\\ ''​$ who | sort | tee -a log1 log2''​\\ (setříděný výstup příkazu „who“ zapíše jak na STDOUT, tak do souborů „log1“ a „log2“) |
Řádek 74: Řádek 74:
 \\ \\
 ^ Archivace a komprimace ^ ^ ^ Archivace a komprimace ^ ^
-| **tar** <cil> <zdroj> | archivuje data (zdroj ​ponechá), **-c** vytvoří archiv, **-f** určí název ​souboru, **-v** podrobný výpis, **--remove-files** smaže zdroj, **-M** vícesvazkový archiv (data vyžadují více než 1 medium), **-V** <​jmeno>​ pojmenuje archiv, **-X** <​soubor>​ vyloučí z procesu data uvedená v daném souboru, **-t** vypíše obsah archivu, **-x** rozbalí archiv, **-p** obnoví data i zachování ​původního vlastníka a přístupových práv, **-d** porovná data v archivu s daty na disku, **-Z** ​komprimace ​compress, **-z** ​komprimace ​gzip, **-j** ​komprimace ​bzip2, **-w** interaktivní režim\\ ''#​ tar -cvf archiv.tar /home/​uzivatel/xxx''​\\ ''#​ tar -cMf /dev/st0 / -V system_bckp''​\\ ''#​ tar -xvf archiv.tar''​\\ ''#​ tar -tvf archiv.tar''​\\ pro archivaci a zároveň (de)komprimaci nástrojem compress:\\ ''#​ tar -cvZf soubor.tar.Z /home/uzivatel/​xxx''​\\ ''#​ tar -xvZf soubor.tar.Z''​\\ pro archivaci a zároveň (de)komprimaci nástrojem gzip:\\ ''#​ tar -cvzf soubor.tar.gz /home/uzivatel/​xxx''​\\ ''#​ tar -xvzf soubor.tar.gz''​\\ pro archivaci a zároveň (de)komprimaci nástrojem bzip2:\\ ''#​ tar -cvjf soubor.tar.bz2 /home/uzivatel/​xxx''​\\ ''#​ tar -xvjf soubor.tar.bz2''​\\ ''#​ tar --remove-files -cvjf maillog_old.tar.bz2 maillog-20161225 maillog-20170102 ​maillog-20170108''​ |+| **tar** <soubor/​adresar> | archivuje ​či obnovuje ​data (původní ​zdroj zachová), **-c** vytvoří archiv, **-f** ​<​soubor> ​určí název ​archivu, **-v** podrobný výpis, **--remove-files** smaže ​původní ​zdroj, **--acls** zachová přístupová práva ACL, **--selinux** zachová nastavení SELinuxu, **-M** vícesvazkový archiv (data vyžadují více než 1 medium), **-V** <​jmeno>​ pojmenuje archiv, **-X** <​soubor>​ vyloučí z procesu data uvedená v daném souboru, **-d** porovná data v archivu s daty na disku, **-t** vypíše obsah archivu (i komprimovaného),​ **-r** připojí soubory na konec archivu, **-x** rozbalí archiv, **-C** přejde do adresáře (určí cílový adresář pro rozbalení archivu), **-p** zachová ​původního vlastníka a přístupová práva během obnovy dat, **-Z** ​(de)komprimuje nástrojem ​compress, **-z** ​(de)komprimuje nástrojem ​gzip, **-j** ​(de)komprimuje nástrojem ​bzip2, **-J** (de)komprimuje nástrojem xz, **-w** interaktivní režim\\ ''#​ tar -cvf ssh.tar /etc/ssh''​\\ ''#​ tar --acls -cpvf scripts.tar backup.sh restore.sh''​\\ ''#​ tar -cMf /dev/st0 / -V system_bckp''​\\ ''#​ tar -tvf ssh.tar''​\\ ''#​ tar -xvf ssh.tar''​\\ ''#​ tar --acls -xpvf scripts.tar -C /usr/bin''​\\ pro archivaci a zároveň (de)komprimaci nástrojem compress:\\ ''#​ tar -cvZf ssh.tar.Z /etc/ssh''​\\ ''#​ tar -xvZf ssh.tar.Z''​\\ pro archivaci a zároveň (de)komprimaci nástrojem gzip:\\ ''#​ tar -cvzf ssh.tar.gz /etc/ssh''​\\ ''#​ tar -xvzf ssh.tar.gz''​\\ pro archivaci a zároveň (de)komprimaci nástrojem bzip2:\\ ''#​ tar -cvjf ssh.tar.bz2 /etc/ssh''​\\ ''#​ tar -xvjf ssh.tar.bz2''​\\ pro archivaci a zároveň (de)komprimaci nástrojem xz:\\ ''#​ tar -cvJf ssh.tar.xz /etc/ssh''​\\ ''#​ tar --remove-files -cvJf maillog_old.tar.xz maillog-20161225 maillog-20170102''​\\ ''#​ tar -xvJf ssh.tar.xz''​ |
 | (<​zdroj>​ %%|%%) **cpio** > <cil> | archivuje data, **-o** vytvoří archiv, **-d** vytvoří adresářový strom, **-v** podrobný výpis, **-i** rozbalí archiv, **-m** zachová čas poslední změny souborů, **-t** vypíše obsah archivu\\ ''​$ ls | cpio -ov > archiv.cpio''​\\ ''#​ ls /home | cpio -ov > /​dev/​rmt0''​\\ ''#​ find / -mtime -1 -type f -print | cpio -ov > /​dev/​rmt0''​\\ ''​$ cpio -o > /dev/fd0 **<​-'​**''​\\ ''<​soubor1>​ **<​-'​**''​\\ ''<​soubor2>​ **<​-'​**''​\\ ''​**ctrl**+**d**''​\\ ''#​ cpio -ivmd /home/\* < /​dev/​st0''​ | | (<​zdroj>​ %%|%%) **cpio** > <cil> | archivuje data, **-o** vytvoří archiv, **-d** vytvoří adresářový strom, **-v** podrobný výpis, **-i** rozbalí archiv, **-m** zachová čas poslední změny souborů, **-t** vypíše obsah archivu\\ ''​$ ls | cpio -ov > archiv.cpio''​\\ ''#​ ls /home | cpio -ov > /​dev/​rmt0''​\\ ''#​ find / -mtime -1 -type f -print | cpio -ov > /​dev/​rmt0''​\\ ''​$ cpio -o > /dev/fd0 **<​-'​**''​\\ ''<​soubor1>​ **<​-'​**''​\\ ''<​soubor2>​ **<​-'​**''​\\ ''​**ctrl**+**d**''​\\ ''#​ cpio -ivmd /home/\* < /​dev/​st0''​ |
-| **compress** <​soubor/​adresar>​ | komprimuje soubor standardním unixovým nástrojem compress (původní zdroj odstraní), **-c** vypíše výstup na STDOUT a původní zdroj ponechá, **-r** rekurzivně,​ **-v** podrobný výpis | +| **compress** <​soubor/​adresar>​ | komprimuje soubor standardním unixovým nástrojem compress (původní zdroj odstraní), **-c** vypíše výstup na STDOUT a původní zdroj zachová, **-r** rekurzivně,​ **-v** podrobný výpis | 
-| **uncompress** / **compress -d** <​soubor.Z>​ | dekomprimuje soubor (původní zdroj odstraní), **-c** vypíše výstup na STDOUT a původní zdroj ponechá ​(obdoba příkazu „zcat“),​ **-v** podrobný výpis\\ ''​$ zcat soubor.tar.Z | tar -x(f -)''​ | +| **uncompress** / **compress -d** <​soubor.Z>​ | dekomprimuje soubor (původní zdroj odstraní), **-c** vypíše výstup na STDOUT a původní zdroj zachová ​(obdoba příkazu „zcat“),​ **-v** podrobný výpis\\ ''​$ zcat ssh.tar.Z | tar -x(f -)''​ | 
-| **gzip** <​soubor>​ | komprimuje soubor nástrojem gzip (adresář musí být nejdřív zpracován tarem jako 1 soubor; původní zdroj odstraní), **-**<​n>​ úroveň komprese (nabývá hodnot 1–9, čím vyšší hodnota, tím vyšší komprese, výchozí hodnota je 6), **-c** vypíše výstup na STDOUT a původní zdroj ponechá, **-v** podrobný výpis\\ ''#​ gzip -c access.log > access.log_2017-02-15.gz && > access.log''​\\ (komprimuje soubor, který uloží pod novým názvem a obsah původního souboru smaže) | +| **gzip** <​soubor>​ | komprimuje soubor nástrojem gzip (adresář musí být nejdřív zpracován tarem jako 1 soubor; původní zdroj odstraní), **-**<​n>​ úroveň komprese (nabývá hodnot 1–9, čím vyšší hodnota, tím vyšší komprese, výchozí hodnota je 6), **-c** vypíše výstup na STDOUT a původní zdroj zachová, **-v** podrobný výpis\\ ''#​ gzip -c access.log > access.log_2017-02-15.gz && > access.log''​\\ (komprimuje soubor, který uloží pod novým názvem a obsah původního souboru smaže) | 
-| **gunzip** / **gzip -d** <​soubor.gz>​ | dekomprimuje soubor (původní zdroj odstraní), **-c** vypíše výstup na STDOUT a původní zdroj ponechá, **-l** vypíše jméno archivu, jeho velikost v B před a po kompresi a poměr komprese v procentech, **-t** ověří celistvost ​obsahu archivu, **-v** podrobný výpis\\ ''​$ gzip -cd soubor.tar.gz | tar -x(f -)''​ | +| **gunzip** / **gzip -d** <​soubor.gz>​ | dekomprimuje soubor (původní zdroj odstraní), **-c** vypíše výstup na STDOUT a původní zdroj zachová, **-l** vypíše jméno archivu, jeho velikost v B před a po kompresi a poměr komprese v procentech, **-t** ověří celistvost ​komprimovaného souboru, **-v** podrobný výpis\\ ''​$ gzip -cd ssh.tar.gz | tar -x(f -)''​ | 
-| **bzip2** <​soubor>​ | komprimuje soubor nástrojem bzip2 (vyšší komprese; adresář musí být nejdřív zpracován tarem jako 1 soubor; původní zdroj odstraní), **-**<​n>​ úroveň komprese (nabývá hodnot 1–9, čím vyšší hodnota, tím vyšší komprese, výchozí hodnota je 6), **-v** podrobný výpis | +| **bzip2** <​soubor>​ | komprimuje soubor nástrojem bzip2 (vyšší komprese ​než gzip; adresář musí být nejdřív zpracován tarem jako 1 soubor; původní zdroj odstraní), **-**<​n>​ úroveň komprese (nabývá hodnot 1–9, čím vyšší hodnota, tím vyšší komprese, výchozí hodnota je 6), **-k** zachová původní zdroj, **-v** podrobný výpis | 
-| **bunzip2** / **bzip2 -d** <​soubor.bz2>​ | dekomprimuje soubor (původní zdroj odstraní), **-c** vypíše výstup na STDOUT, **-k** zachová původní ​archiv, ​**-t** ověří celistvost ​obsahu archivu, **-v** podrobný výpis\\ ''​$ bzip2 -cd soubor.tar.bz2 | tar -x(f -)''​ | +| **bunzip2** / **bzip2 -d** <​soubor.bz2>​ | dekomprimuje soubor (původní zdroj odstraní), **-c** vypíše výstup na STDOUT ​a původní zdroj zachová, **-k** zachová původní ​zdroj **-t** ověří celistvost ​komprimovaného souboru, **-v** podrobný výpis\\ ''​$ bzip2 -cd ssh.tar.bz2 ​| tar -x(f -)''​ | 
-| **zip** <cil> <​zdroj>​ | komprimuje soubor nástrojem zip (zdroj ​ponechá), **-r** rekurzivně,​ **-e** pod heslem\\ ''​$ zip -r data.zip data''​ | +| **xz** <​soubor>​ | komprimuje soubor nástrojem xz (vyšší komprese než bzip2; adresář musí být nejdřív zpracován tarem jako 1 soubor; původní zdroj odstraní), **-**<​n>​ úroveň komprese (nabývá hodnot 0–9, čím vyšší hodnota, tím vyšší komprese, výchozí hodnota je 6), **-k** zachová původní zdroj, **-v** podrobný výpis | 
-| **unzip** <​soubor.zip>​ | dekomprimuje soubor (zdroj ​ponechá), **-l** vypíše obsah archivu, **-t** ověří celistvost ​obsahu archivu ​|+| **unxz** / **xz -d** <​soubor.xz>​ | dekomprimuje soubor (původní zdroj odstraní), **-c** vypíše výstup na STDOUT a původní zdroj zachová, **-k** zachová původní zdroj, **-l** vypíše jméno archivu, jeho velikost před a po kompresi a poměr komprese, **-t** ověří celistvost komprimovaného souboru, **-v** podrobný výpis\\ ''​$ xz -cd ssh.tar.xz ​| tar -x(f -)''​ | 
 +| **zip** <cil> <​zdroj>​ | komprimuje soubor nástrojem zip (původní ​zdroj zachová), **-r** rekurzivně,​ **-e** pod heslem\\ ''​$ zip -r ssh.zip /etc/ssh''​ | 
 +| **unzip** <​soubor.zip>​ | dekomprimuje soubor (původní ​zdroj zachová), **-l** vypíše obsah archivu, **-t** ověří celistvost ​komprimovaného souboru ​|
Poslední úprava: 2019/06/14 10:21 autor: Miroslav Bernát

počet návštěv: