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

Both sides previous revision Předchozí verze
Následující verze
Předchozí verze
Poslední revize Both sides next revision
soubory-a-adresare [2019/11/30 19:52]
Miroslav Bernát
soubory-a-adresare [2020/03/24 16:49]
Miroslav Bernát
Řádek 16: Řádek 16:
 | **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''​ |
-| **ln** <​zdroj>​ <cil> | vytvoří pevný odkaz na soubor/adresář, **-s** symbolický odkaz |+| **ln** <​zdroj> ​(<cil>| vytvoří pevný odkaz na soubor ​zadaný prvním argumentem; není-li uveden cíl, vytvoří v pracovním ​adresáři odkaz na zdroj o stejném názvu, **-s** symbolický odkaz na soubor/​adresář ​|
 | **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ě |
Řádek 49: Řádek 49:
 | **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''​ | | **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 -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) | | **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** umožní použití rozšířených regulárních výrazů, **-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 '/​^#/​d;​ /^$/d' soubor1 > soubor2''​\\ ''​$ sed -E '/​^(#​|$)/d' soubor1 > soubor2''​\\ (odstraní v souboru komentáře a prázdné řádky)\\ ''#​ sed -i '/​auth%%[[:​blank:​]]%%\+required%%[[:​blank:​]]%%\+pam_env.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“) |
-| **cat >** <​soubor>​ | vloží obsah STDIN do daného souboru\\ ''​$ cat > /dev/pts/2 **<​-'​**''​\\ ''<​text>​ **<​-'​**''​\\ ''​**ctrl**+**d**''​ |+| **cat >** <​soubor>​ | vloží obsah STDIN do daného souboru\\ ''​$ cat > /dev/pts/2 **<​-'​**''​\\ ''<​text>​ **<​-'​**''​\\ ''​**Ctrl**+**d**''​ |
 | **>** <​soubor>​ / **cat /dev/null >** <​soubor>​ | smaže obsah souboru | | **>** <​soubor>​ / **cat /dev/null >** <​soubor>​ | smaže obsah souboru |
-| **vi** / **vim** <​soubor>​\\ **ESC**\\ **:​**<​n>​\\ **:q**\\ **:q!**\\ **:w** / **:w** <​soubor>​\\ **:wq** / **:x** / **ZZ**\\ **:w!** / **:wq!**\\ **:set number** / **nonumber**\\ **:set ignorecase** / **noignorecase**\\ **:set all**\\ \\ **pohyb kurzoru:​**\\ vlevo:\\ **h** / <**šipka vlevo**>\\ **b**\\ **0**\\ vpravo:\\ **l** / <**šipka vpravo**>\\ **w**\\ **$**\\ nahoru:\\ **k** / <**šipka nahoru**>\\ **H**\\ **1G** \\ dolů:\\ **j** / <**šipka dolů**>\\ **L**\\ **G**\\ \\ **přidání textu:**\\ **i**\\ **a**\\ **I**\\ **A**\\ **o**\\ **O**\\ \\ **mazání** / **vyjmutí textu:**\\ **x**\\ **db**\\ **dw**\\ **d0**\\ **d$**\\ **dd** / <​n>​**dd**\\ **d1G**\\ **dG**\\ **:1,$d**\\ \\ **úprava textu:** \\ **yw** / <​n>​**yw**\\ **yy** / <​n>​**yy**\\ **P** / **p**\\ **r**\\ **R**\\ **:​**(<​adresa>​)**s****/​**<​hledany_vyraz>​**/​**<​nahrazujici_vyraz>​(**/​**<​volba>​)\\ \\ \\ \\ \\ **u**\\ **U**\\ **.**\\ \\  **hledání v textu:**\\ **/​**<​vyraz>​\\ **?​**<​vyraz>​\\ **n** / **N** | spustí textový editor „vi“/​„vim“ a vytvoří či otevře soubor\\ přejde z editačního do příkazového režimu\\ přemístí kurzor na začátek daného řádku\\ opustí editor (pokud soubor nebyl změněn)\\ opustí editor bez uložení případných změn v souboru\\ uloží změny v souboru / uloží soubor jako nový\\ uloží změny a opustí editor\\ uloží změny / uloží změny a opustí editor u souboru s právy pouze ke čtení\\ očísluje řádky / odstraní číslování\\ nerozlišuje/​rozlišuje velikost písmen\\ vypíše nastavení všech voleb\\ \\ \\ \\ jeden znak vlevo\\ na začátek předchozího slova\\ na začátek řádku\\ \\ jeden znak vpravo\\ na začátek následujícího slova\\ na konec řádku\\ \\ na předchozí řádek\\ na první řádek obrazovky\\ na první řádek souboru\\ \\ na následující řádek\\ na poslední řádek obrazovky\\ na poslední řádek souboru\\ \\ \\ v místě kurzoru\\ za kurzor\\ na začátek řádku\\ na konec řádku\\ na začátek nového řádku pod aktuálním řádkem\\ na začátek nového řádku nad aktuálním řádkem\\ \\ \\ jeden znak v místě kurzoru\\ znaky před kurzorem až do začátku slova\\ znak v místě kurzoru až do konce slova\\ znaky před kurzorem až do začátku řádku\\ znak v místě kurzoru až do konce řádku\\ celý řádek v místě kurzoru / následujících //n// řádků\\ celý řádek v místě kurzoru až do začátku souboru\\ celý řádek v místě kurzoru až do konce souboru\\ obsah celého souboru\\ \\ \\ kopíruje znak v místě kurzoru až do konce slova / následujících //n// slov\\ kopíruje současný řádek / následujících //n// řádků\\ vloží vyjmutý či zkopírovaný text před/za kurzor nebo nad/pod současný řádek (v případě vyjmutí/​kopie celých řádků)\\ přepíše znak v místě kurzoru\\ přepíše znaky v místě kurzoru\\ nahradí hledaný výraz výrazem novým; adresa **1,$** označuje rozsah celého dokumentu, není-li adresa uvedena, změna se projeví pouze na aktuálním řádku, volba **g** provede náhradu všech výskytů hledaného řetězce, volba **c** si vyžádá potvrzení k provedení operace\\ '':​1,​$s/​sto/​100/​g''​\\ (nahradí všechny výskyty slova "​sto"​ číslem "​100"​ v celém souboru)\\ vrátí zpět o poslední provedenou změnu\\ vrátí zpět o všechny změny provedené na současném řádku\\ opakuje poslední příkaz\\ \\ \\ hledá v textu daný výraz směrem vpřed\\ hledá v textu daný výraz směrem vzad\\ pokračuje v dalším hledání / v hledání opačným směrem |+| **vi** / **vim** <​soubor>​\\ **v**\\ **Shift**+**v**\\ **Ctrl**+**v**\\ **Esc**\\ **:​**<​n>​\\ **:q**\\ **:q!**\\ **:w** / **:w** <​soubor>​\\ **:wq** / **:x** / **ZZ**\\ **:w!** / **:wq!**\\ **:set number** / **nonumber**\\ **:set ignorecase** / **noignorecase**\\ **:set all**\\ \\ **pohyb kurzoru:​**\\ vlevo:\\ **h** / **Šipka vlevo**\\ **b**\\ **0**\\ vpravo:\\ **l** / **Šipka vpravo**\\ **w**\\ **$**\\ nahoru:\\ **k** / **Šipka nahoru**\\ **H**\\ **1G** \\ dolů:\\ **j** / **Šipka dolů**\\ **L**\\ **G**\\ \\ **přidání textu:**\\ **i**\\ **a**\\ **I**\\ **A**\\ **o**\\ **O**\\ \\ **mazání** / **vyjmutí textu:**\\ **x**\\ **db**\\ **dw**\\ **d0**\\ **d$**\\ **dd** / <​n>​**dd**\\ **d1G**\\ **dG**\\ **:1,$d**\\ \\ **úprava textu:** \\ **yw** / <​n>​**yw**\\ **yy** / <​n>​**yy**\\ **P** / **p**\\ **r**\\ **R**\\ **:​**(<​adresa>​)**s****/​**<​hledany_vyraz>​**/​**<​nahrazujici_vyraz>​(**/​**<​volba>​)\\ \\ \\ \\ \\ **u**\\ **U**\\ **.**\\ \\  **hledání v textu:**\\ **/​**<​vyraz>​\\ **?​**<​vyraz>​\\ **n** / **N** | spustí textový editor „vi“/​„vim“ a vytvoří či otevře soubor\\ spustí/​ukončí vizuální znakový režim\\ spustí/​ukončí vizuální řádkový režim\\ spustí/​ukončí vizuální blokový režim\\ přejde z editačního do příkazového režimu\\ přemístí kurzor na začátek daného řádku\\ opustí editor (pokud soubor nebyl změněn)\\ opustí editor bez uložení případných změn v souboru\\ uloží změny v souboru / uloží soubor jako nový\\ uloží změny a opustí editor\\ uloží změny / uloží změny a opustí editor u souboru s právy pouze ke čtení\\ očísluje řádky / odstraní číslování\\ nerozlišuje/​rozlišuje velikost písmen\\ vypíše nastavení všech voleb\\ \\ \\ \\ jeden znak vlevo\\ na začátek předchozího slova\\ na začátek řádku\\ \\ jeden znak vpravo\\ na začátek následujícího slova\\ na konec řádku\\ \\ na předchozí řádek\\ na první řádek obrazovky\\ na první řádek souboru\\ \\ na následující řádek\\ na poslední řádek obrazovky\\ na poslední řádek souboru\\ \\ \\ v místě kurzoru\\ za kurzor\\ na začátek řádku\\ na konec řádku\\ na začátek nového řádku pod aktuálním řádkem\\ na začátek nového řádku nad aktuálním řádkem\\ \\ \\ jeden znak v místě kurzoru\\ znaky před kurzorem až do začátku slova\\ znak v místě kurzoru až do konce slova\\ znaky před kurzorem až do začátku řádku\\ znak v místě kurzoru až do konce řádku\\ celý řádek v místě kurzoru / následujících //n// řádků\\ celý řádek v místě kurzoru až do začátku souboru\\ celý řádek v místě kurzoru až do konce souboru\\ obsah celého souboru\\ \\ \\ kopíruje znak v místě kurzoru až do konce slova / následujících //n// slov\\ kopíruje současný řádek / následujících //n// řádků\\ vloží vyjmutý či zkopírovaný text před/za kurzor nebo nad/pod současný řádek (v případě vyjmutí/​kopie celých řádků)\\ přepíše znak v místě kurzoru\\ přepíše znaky v místě kurzoru\\ nahradí hledaný výraz výrazem novým; adresa **1,$** označuje rozsah celého dokumentu, není-li adresa uvedena, změna se projeví pouze na aktuálním řádku, volba **g** provede náhradu všech výskytů hledaného řetězce, volba **c** si vyžádá potvrzení k provedení operace\\ '':​1,​$s/​sto/​100/​g''​\\ (nahradí všechny výskyty slova "​sto"​ číslem "​100"​ v celém souboru)\\ vrátí zpět o poslední provedenou změnu\\ vrátí zpět o všechny změny provedené na současném řádku\\ opakuje poslední příkaz\\ \\ \\ hledá v textu daný výraz směrem vpřed\\ hledá v textu daný výraz směrem vzad\\ pokračuje v dalším hledání / v hledání opačným směrem |
 | **tr** <​retezec1>​ (<​retezec2>​) | nahradí jednotlivé znaky z prvního řetězce novými z druhého, původní soubor nepřepíše,​ **-d** smaže znaky, **-s** opakující se znaky nahradí jedním výskytem\\ ''​$ echo "FIBRE CHANNEL STATISTICS REPORT"​ | tr '​A-Z'​ '​a-z'''​\\ (převede velká písmena na malá písmena)\\ ''​$ cat soubor1 | tr '​a-z'​ '​A-Z'​ > soubor2''​\\ ''​$ cat text1 | tr ' ' '​\t'​ > text2''​\\ (nahradí v souboru každou mezeru tabulátorem)\\ ''​$ awk -F ":"​ '​{print $1}' /etc/passwd | tr '​\n'​ ' '''​\\ (nahradí nový řádek mezerou)\\ ''​$ tr -d ';'​ < text1.txt > text2.txt''​ | | **tr** <​retezec1>​ (<​retezec2>​) | nahradí jednotlivé znaky z prvního řetězce novými z druhého, původní soubor nepřepíše,​ **-d** smaže znaky, **-s** opakující se znaky nahradí jedním výskytem\\ ''​$ echo "FIBRE CHANNEL STATISTICS REPORT"​ | tr '​A-Z'​ '​a-z'''​\\ (převede velká písmena na malá písmena)\\ ''​$ cat soubor1 | tr '​a-z'​ '​A-Z'​ > soubor2''​\\ ''​$ cat text1 | tr ' ' '​\t'​ > text2''​\\ (nahradí v souboru každou mezeru tabulátorem)\\ ''​$ awk -F ":"​ '​{print $1}' /etc/passwd | tr '​\n'​ ' '''​\\ (nahradí nový řádek mezerou)\\ ''​$ tr -d ';'​ < text1.txt > text2.txt''​ |
 | **cut** (<​soubor>​) | **-c** <m-n> vyřízne v souboru na každém řádku dané rozpětí znaků (počítá se od začátku řádku), **-f** <m-n> vyřízne dané rozpětí sloupců (polí) oddělených tabulátorem,​ **-d** <​znak>​ určí oddělovač polí místo tabulátoru;​ položky seznamu se oddělují čárkou; není-li soubor uveden, čte ze STDIN\\ ''​$ cut -f 2,4 -d ' ' data''​ | | **cut** (<​soubor>​) | **-c** <m-n> vyřízne v souboru na každém řádku dané rozpětí znaků (počítá se od začátku řádku), **-f** <m-n> vyřízne dané rozpětí sloupců (polí) oddělených tabulátorem,​ **-d** <​znak>​ určí oddělovač polí místo tabulátoru;​ položky seznamu se oddělují čárkou; není-li soubor uveden, čte ze STDIN\\ ''​$ cut -f 2,4 -d ' ' data''​ |
Řádek 75: Řádek 75:
 ^ Archivace a komprimace ^ ^ ^ Archivace a komprimace ^ ^
 | **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''​ | | **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 zachová, **-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 zachová (obdoba příkazu „zcat“),​ **-v** podrobný výpis\\ ''​$ zcat ssh.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 -)''​ |