SOUBORY A ADRESÁŘE | |
---|---|
pwd | vypíše cestu k aktuálnímu (pracovnímu) adresáři |
cd | cd ~ | cd $HOME | vstoupí do domovského adresáře přihlášeného uživatele |
cd <adresar> | vstoupí do daného adresáře; cesta se uvádí buď absolutní (začíná znakem „/“) nebo relativní (určená přímo názvem adresáře – pokud jde o podadresář pracovního adresáře, či znakem „..“ nebo „-“, který představuje adresář nadřazený či předchozí) |
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 nebo obsah adresáře podle abecedy, -a včetně skrytých souborů, -d samotný adresář bez obsahu, -i číslo i-uzlu (i-nodu), -l podrobný výpis (typ souboru („-“ = soubor, „d“ = adresář, „l“ = symbolický odkaz, „p“ = pojmenovaná roura, „b“ = blokové zařízení, „c“ = znakové zařízení), přístupová práva, počet pevných odkazů, vlastník, skupina, velikost v B, čas poslední změny, název; znak „+” na konci oprávnění znamená, že jsou nastavena práva ACL, znak „.” sděluje, že jsou nastaveny speciální atributy), -n obdoba volby „-l”, ale vypíše numerická ID uživatelů a skupin, -h s volbou „-l” vypíše velikosti v čitelném formátu, -r v opačném pořadí, -c podle poslední změny atributů souboru (přístupová práva, počet pevných odkazů, vlastník, skupina, velikost v B, čas poslední změny, název), -t podle poslední změny obsahu souboru, -u podle posledního přístupu, -A nezobrazí implicitní „.“ a „..“, -F zobrazí typ položky („*“ = spustitelný soubor, „@“ = symbolický odkaz, „/“ = adresář, „=“ = socket, „|“ = pojmenovaná roura), -R rekurzivně, -S podle velikosti, -U netřídí obsah podle abecedy, -X podle přípony, -Z vypíše bezpečnostní kontext SELinuxu, -1 vypíše jeden soubor na řádek; bez argumentu vypíše obsah pracovního adresáře$ ls -latr (vypíše obsah pracovního adresáře s naposledy změněnými soubory a adresáři na konci výpisu) |
stat <soubor ... | adresar ...> | vypíše podrobné atributy souboru či adresáře (název, velikost v B, počet bloků, typ souboru, číslo i-uzlu, přístupová práva, vlastníka, skupinu, bezpečnostní kontext SELinuxu, čas posledního přístupu, čas poslední změny atributů a čas poslední změny obsahu souboru), -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í změny atributů souboru, %z čas poslední změny obsahu souboru), -f zobrazí informace o souborovém systému$ stat -c "%U %G" soubor (vypíše vlastníka a skupinu vlastníků souboru) |
du [<soubor ... | adresar ...>] | vypíše v kB velikost diskového prostoru, kterou daný soubor či adresář zabírá, -a vypíše velikost všech souborů a adresářů rekurzivně, -b vypíše velikost v B, -m vypíše velikost v MB, -h vypíše velikost v čitelném formátu, -s celkový součet bez podrobností; bez argumentu vypíše velikost pracovního adresáře včetně všech podadresářů# du -sh /home/* (vypíše celkovou velikost domovských adresářů) # 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 čas poslední změny atributů na aktuální, -a změní jen čas posledního přístupu, -m změní jen čas poslední změny atributů, -d “<RRRR-MM-DD hh:mm>“ použije daný čas místo aktuálního, -c nevytvoří žádný soubor |
mkdir <adresar ...> | vytvoří adresář, -m <prava> nastaví přístupová práva, -p vytvoří nadřazené adresáře (pokud již neexistují)$ mkdir -p /adresar1/adresar2/adresar3 (vytvoří adresáře v dané cestě) |
mktemp | vytvoří dočasný soubor s jedinečným názvem v adresáři /tmp (vhodné zejména ve skriptech, kde jsou během zpracování vyžadována dočasná data), -d vytvoří dočasný adresář, -p <adresar> určí cílový adresář místo „/tmp“$ datasets_temp=$(mktemp) |
mknod <soubor> <typ> [<major> <minor>] | vytvoří speciální soubor daného typu (b pro blokové zařízení, c pro znakové zařízení, p pro rouru); hlavní (major) a vedlejší (minor) číslo musí být určeno pro blokové či znakové zařízení, -m <prava> nastaví přístupová práva# mknod /dev/sdb b 8 16 (vytvoří speciální soubor pro blokové zařízení „/dev/sdb“ s hlavním číslem 8 a vedlejším číslem 16) |
mkfifo <soubor ...> | vytvoří pojmenovanou rouru (FIFO), -m <prava> nastaví přístupová práva |
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 či adresář |
rm <soubor ... | adresar ...> | odstraní soubor, -d prázdný adresář, -R adresář včetně obsahu, -i žádá o potvrzení, -f provede bez potvrzení a ignoruje neexistující soubory či adresáře, -v podrobný výpis |
rmdir <adresar ...> | odstraní prázdný adresář, -p včetně nadřazených adresářů |
cp <zdroj> <cil> | kopíruje zdrojový soubor do existujícího cílové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 žádá o potvrzení, -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 (pokud cílový adresář neexistuje, vytvoří ho a zkopíruje do něj pouze obsah zdrojového adresáře), -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, -Z nastaví cílovému souboru bezpečnostní kontext SELinuxu podle výchozí politiky pro dané umístění$ cp soubor1 ./soubor2 (kopíruje soubor pod jiným názvem do téhož adresáře) # cp -pR /home/tom/{*,.[^.]*} /mnt/extdisk/home/tom (kopíruje obsah domovského adresáře uživatele „tom” na externí disk, včetně skrytých souborů) |
install <zdroj> <cil> | kopíruje zdrojový soubor do existujícího cílové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, -b vytvoří zálohu cílových souborů, jenž by mohly být případně přepsány, -m <prava> nastaví přístupová práva, -o <uzivatel> nastaví vlastníka souboru, -g <skupina> nastaví skupinu vlastníků souboru, -p zachová atributy zdroje, -d <adresar> vytvoří adresář (včetně nadřazených adresářů), -v podrobný výpis, -Z nastaví cílovému souboru bezpečnostní kontext SELinuxu podle výchozí politiky pro dané umístění# install -m 0755 /bin/chmod.broken /bin/chmod (kopíruje obsah jednoho souboru do druhého a nastaví mu přístupová práva) |
rsync [[<uzivatel>@]<hostitel>:]<zdroj ...> [[<uzivatel>@]<hostitel>:]<cil> | kopíruje zdrojový soubor do existujícího cílové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; data lze přenášet i mezi vzdálenými počítači, -r kopíruje adresář včetně jeho obsahu (pokud cílový adresář neexistuje, vytvoří ho), -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 obsahu 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> vyloučí soubory odpovídající danému vzoru, --exclude-from=<soubor> vyloučí soubory odpovídající vzorům obsaženým v daném souboru, --progress vypíše průběh synchronizace, --rsh <prikaz> určí alternativní program pro přenos dat, -v podrobný výpis# rsync -a --delete --exclude ".gvfs" /home /mnt/extdisk (synchronizuje data na externím disku s daty v domovském adresáři) # rsync -avz /var/log/ 192.168.0.20:/logs (kopíruje komprimované logy na vzdálený počítač) $ rsync --rsh="ssh -l root -p 22022" soubor1 soubor2 192.168.152.47:/tmp (kopíruje soubory na vzdálený počítač pomocí ssh) |
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=2048 of=/tmp/image.iso (kopíruje obraz CD do souboru) $ dd if=/dev/zero of=test bs=5M count=10 (vytvoří prázdný soubor o velikosti 50 MB) $ for file in {1..50}; do dd if=/dev/zero of=$file bs=1M count=1; done (vytvoří 50 prázdných souborů o velikosti 1 MB) # dd if=/dev/urandom of=/dev/sdb1 bs=1G (přepíše diskový oddíl náhodnými daty) |
truncate [<soubor ...>] | nastaví, zmenší nebo zvětší velikost souboru, -s určí velikost v B či v jednotkách – „K“, „M“, „G“, „T“ (násobky 1024) či „KB“, „MB“, „GB“, „TB“ (násobky 1000), znak „+“ zvětší velikost, „-“ zmenší velikost, „<“ nastaví maximální velikost, „>“ nastaví minimální velikost, „/“ zaokrouhlí dolů na násobek, „%“ zaokrouhlí nahoru na násobek; pokud soubor neexistuje, vytvoří ho$ truncate -s 1M data1 (vytvoří prázdný soubor o velikosti 1 MB) $ truncate -s "<5M" * (nastaví maximální velikost všech souborů v pracovním adresáři na 5 MB) |
cdrecord <stopa ...> | zapíše data na CD/DVD média, -scanbus najde SCSI adresu CD/DVD rekordéru v systému, dev=<cil> určí SCSI adresu CD/DVD rekordéru, speed=<n> určí rychlost zápisu, -v podrobný výpis$ cdrecord -v dev="6,0,0" speed=8 cd.iso (zapíše obsah souboru „cd.iso” na CD/DVD) |
mv <zdroj> <cil> | přemístí zdrojový soubor či adresář do existujícího cílové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 žádá o potvrzení, -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, -Z nastaví cílovému souboru bezpečnostní kontext SELinuxu podle výchozí politiky pro dané umístění |
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 (přejmenuje soubory s příponou „htm” na „html”) $ find / -name "honza*" | xargs rename honza jan (přejmenuje soubory a adresáře s názvem „honza*” na „jan*”) |
basename <soubor | adresar> | vypíše název souboru či adresáře, jehož cesta byla zadána jako argument |
dirname <soubor ... | adresar ...> | vypíše cestu k adresáři, v němž se nachází soubor či adresář, jehož cesta byla zadána jako argument# read a; while [[ $a != "/" ]]; do ls -ld $a; a=$(dirname $a); done (vypíše práva k adresářům v cestě zadané jako argument) |
find [<cesta ...>] [<volba>] [<test>] [<akce>] | hledá soubor či adresář v dané cestě, není-li cesta uvedena, hledá v pracovním adresáři; při použití volby -maxdepth <uroven> prohledává max. do dané úrovně adresářového stromu, -mindepth <uroven> prohledává min. od dané úrovně adresářového stromu; k testování slouží např. -name <vzor> podle názvu odpovídajícímu vzoru, -iname <vzor> podle názvu odpovídajícímu vzoru (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 | n | +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><jednotka> podle velikosti („c” = B, „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 vlastníků, -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 hledá soubory neexistujících uživatelů, -nogroup hledá soubory neexistujících skupin; pro akci lze použít např. -exec <prikaz> [<argument ...>] {} {\; | \+} provede příkaz (řetězec „{}“ je nahrazen cestou k nalezenému souboru, „;“ značí, že daný příkaz je spuštěn zvlášť pro každý odpovídající soubor, zatímco „+“ zpracuje více názvů souborů najednou jako argumenty příkazu; všechny tyto konstrukce by měly být uvozeny nebo potlačeny, aby byly chráněny před expanzí shellem), -ok <prikaz> [<argument ...>] {} \; interaktivní verze volby „-exec“ (vyžaduje potvrzení k provedení operace), -print zobrazí výsledek (implicitně), -print0 zobrazí i jména souborů obsahujících mezeru; rozšířené testování umožňují operátory -a = „a“ (oba výrazy jsou pravdivé), -o = „nebo“ (alespoň jeden výraz je pravdivý), ! = negace (výraz je nepravdivý); bez argumentu vypíše obsah pracovního adresáře rekurzivně# find /home -name "*.jpg" -o -name "*.png" (hledá v domovském adresáři soubory s příponou „.jpg“ nebo „.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 tom -exec rm -Rf '{}' \; (smaže všechny soubory a adresáře uživatele „tom“) # find . -maxdepth 2 -type l (hledá symbolické odkazy do druhé úrovně adresářového stromu) # find / -nouser -o -nogroup (hledá soubory neexistujících uživatelů a skupin) # find / -perm -4000 (vyhledá všechny soubory s nastaveným SUID bitem) # find / -perm -444 -perm /222 ! -perm /111 (vyhledá soubory, které jsou čitelné pro všechny, mají nastaven aspoň 1 bit pro zápis, ale nejsou spustitelné pro nikoho) # find / -context "*tmp_t*" (hledá soubory podle daného bezpečnostního kontextu SELinuxu) # find /var/log -type f -size +100M -exec du -h '{}' \+ | sort -rh | 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 d \( -perm -o=w -a ! -perm -o=t \) -exec ls -ld '{}' \; (vyhledá adresáře s právem zápisu pro ostatní bez nastaveného sticky bitu) # find / -type f -regex ".*\.\(sh\|pl\|py\)" -perm -o=x (vyhledá skripty s právy ke spuštění pro ostatní) |
which <prikaz ...> | vypíše absolutní cestu daného příkazu nebo skriptu (jeho aliasu) v $PATH, -a zobrazí všechny výskyty v $PATH |
whereis <prikaz ...> | vypíše absolutní cestu k binárnímu, zdrojovému a manuálovému souboru daného příkazu nebo skriptu v $PATH |
type <prikaz ...> | vypíše, zda se jedná o program či vestavěný příkaz nebo klíčové slovo shellu, u programu zobrazí absolutní cestu k binárnímu souboru, -a vypíše všechny výskyty včetně aliasů a funkcí |
apropos | man -k <klicove_slovo ...> | hledá příkazy obsahující v názvu či popisu daný řetězec |
whatis | man -f <klicove_slovo ...> | hledá příkazy, jejichž název odpovídá danému řetězci |
man | info <prikaz> | zobrazí manuálovou stránku k danému příkazu, q ukončí program |
help [<vzor>] | vypíše nápovědu k vestavěným příkazům a klíčovým slovům shellu odpovídajícím vzoru; bez argumentu vypíše všechny vestavěné příkazy a klíčová slova shellu |
ldd <program ...> | vypíše sdílené knihovny požadované daným programem |
lsof [<soubor ...>] | vypíše informace o daném otevřeném souboru – např. jeho název, program, který soubor používá, PID, uživatele, souborový popisovač, typ souboru, hlavní (major) a vedlejší (minor) číslo zařízení, velikost souboru v B a číslo i-uzlu, +D <adresar> vypíše otevřené soubory v daném adresáři rekurzivně, -l vypíše UID, -p <PID> soubory otevřené daným procesem, -u <uzivatel> soubory otevřené procesy vlastněnými daným uživatelem, -i vypíše síťové soubory, -n nepřeloží jména počítačů pomocí DNS, -P nepřeloží čísla portů na názvy portů, -r <n> aktualizuje výpis každých n sekund; bez argumentu se zobrazí všechny otevřené soubory patřící všem aktivním procesům; otevřený soubor může být běžný soubor, adresář, blokový speciální soubor, znakový speciální soubor, knihovna nebo síťový soubor (internetový soket, NFS soubor či soket UNIX domény)$ lsof /dev/cdrom (vypíše podrobné informace o procesech používajících CD/DVD mechaniku) $ lsof /dev/snd/* (vypíše podrobné informace o procesech používajících zvukovou kartu) # lsof +D /opt/app | awk 'NR > 1 {print $9}' > /tmp/otevrene_soubory.txt (uloží seznam otevřených souborů v adresáři „/opt/app“ do „/tmp/otevrene_soubory.txt“) $ lsof -p $$ (vypíše otevřené soubory z aktuálního shellu) # lsof -i -n -P (vypíše všechny otevřené porty včetně typů protokolů, IP adres hostitelů, uživatelů a procesů používajících daný port) |
Obsah souboru | |
---|---|
file <soubor ...> | zjistí typ datového formátu běžného souboru (ASCII, PDF, HTML atd.), -s čte blokové nebo znakové speciální soubory, -z čte obsah komprimovaného souboru$ file * | grep ASCII (vypíše soubory v pracovním adresáři obsahující prostý text) |
cat [<soubor ...>] | vypíše obsah textového souboru, -n čísluje všechny řádky, -b čísluje jen řádky obsahující text, -s potlačí opakující se prázdné řádky; není-li soubor uveden, čte ze STDIN$ cat a b c > abc (zapíše obsah tří souborů do souboru „abc“) |
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čí 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, :n vypíše obsah dalšího souboru, :p vypíše obsah předchozího souboru, q ukončí program |
head [<soubor ...>] | [-n [-]<n>] vypíše prvních n řádků souboru (implicitně 10), je-li před číslem uveden znak '-', vypíše všechny kromě posledních n řádků; není-li soubor uveden, čte ze STDIN |
tail [<soubor ...>] | [-n [+]<n>] vypíše posledních n řádků souboru (implicitně 10), je-li před číslem uveden znak '+', vypíše řádky začínající řádkem n, -f aktualizuje výpis o nově příchozí data; není-li soubor uveden, čte ze STDIN$ head -25 access.log | tail -1 (vypíše 25. řádek souboru) |
wc [<soubor ...>] | vypíše počet řádků, slov a bytů v textovém souboru, včetně bílých míst, -l počítá řádky, -w slova, -m znaky, -c byty; není-li soubor uveden, čte ze STDIN |
nl [<soubor ...>] | čísluje řádky souboru, -v <n> určí číslo, kterým má číslování začít (implicitně 1), -i <n> určí přírůstek, o který se číslo následujícího řádku zvýší (implicitně 1), -b <volba> čísluje řádky odpovídající dané volbě (a všechny řádky, t neprázdné řádky (implicitně), n žádné řádky, p<vyraz> řádky obsahující daný regulární výraz), -s <retezec> určí oddělovač mezi číslem řádku a jeho obsahem (implicitně tabulátor), -w <n> určí počet znaků (míst) pro zarovnání jednotlivých číslic vpravo (implicitně 6); není-li soubor uveden, čte ze STDIN$ nl style.css | more (čísluje řádky souboru, jehož obsah zobrazí po stránkách) $ nl -s ": " -b p^# script.sh (čísluje řádky souboru začínající znakem „#“) |
sort [<soubor ...>] | vzestupně seřadí řádky textového souboru (podle abecedy), -n podle číselných hodnot, -h podle číselných hodnot uvedených v čitelném formátu, -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 (setřídí a vypíše jedinečné řádky souboru) |
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 <vzor> [<soubor ... | adresar ...>] | vyhledá v textovém souboru řetězce obsahující daný vzor za použití základních regulárních výrazů a vypíše odpovídající řádek, -v vypíše řádky, které daný vzor neobsahují, -n vypíše číslo řádku, -c vypíše počet řádků obsahujících daný vzor, -l vypíše jména souborů obsahujících daný vzor, -L vypíše jména souborů, které daný vzor neobsahují, -h potlačí výpis názvu souborů na výstupu, -i ignoruje velikost písmen, -f <soubor> čte vzory z daného souboru (na každém řádku jeden), -o vypíše jen tu část řádku odpovídající vzoru, -A <n> vypíše dalších n řádků po řádku odpovídajícím shodě, -B <n> vypíše dalších n řádků před řádkem odpovídajícím shodě, -C <n> vypíše dalších n řádků před i po řádku odpovídajícím shodě, -E interpretuje vzory jako rozšířené regulární výrazy (obdoba příkazu „egrep“), -F interpretuje vzory jako pevné řetězce (obdoba příkazu „fgrep“), -R rekurzivně, -w vyhledá celá slova, jimž vzor vyhovuje, --color barevně zvýrazní odpovídající řetězec; není-li soubor uveden, čte ze STDIN# grep -i linux /etc/httpd/logs/access_log (vypíše řádky souboru obsahující výraz „linux“ v kombinaci malých i velkých písmen) $ ls -l | grep '^d '(vypíše podadresáře v pracovním adresáři) $ ps -ef | grep -w "httpd" (vypíše procesy webového serveru) $ grep '^P.*r$' notes (vypíše řádky souboru začínající na „P“ a končící na „r“) $ grep -Ei 'red hat|centos|fedora' /etc/*release (vypíše, zda systém odpovídá jedné z uvedených distribucí Linuxu) $ grep -R "header" /var/www/html (vypíše všechny řádky všech souborů v daném adresáři obsahující výraz „header“) |
egrep | grep -E <vzor> [<soubor ... | adresar ...>] | vyhledá v textovém souboru řetězce obsahující daný vzor za použití rozšířených regulárních výrazů a vypíše odpovídající řádek; není-li soubor uveden, čte ze STDIN# egrep -v '^[#;]|^$' *conf* (vypíše všechny řádky konfiguračních souborů, které nejsou zakomentované nebo prázdné) $ egrep '^[^#]*authpriv\.\*' /etc/rsyslog.conf (vypíše řádky souboru začínající výrazem „authpriv.*“) $ egrep -o '^[^:]+' /etc/passwd (vypíše všechny uživatele v systému) |
fgrep | grep -F <vzor> [<soubor ... | adresar ...>] | vyhledá v textovém souboru řetězce obsahující daný vzor bez použití regulárních výrazů a vypíše odpovídající řádek; není-li soubor uveden, čte ze STDIN$ fgrep '/*' style.css (vypíše řádky souboru obsahující komentář) |
sed [<adresa>] <prikaz> [<soubor ...>] | filtruje a edituje text neinteraktivním způsobem (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ě ntý výskyt vzorku, g nahradí vzorek globálně, u každého výskytu, a přidá výraz pod řádek se zadaným vzorem, <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 -i '/shared/s/ro/rw/' /etc/fstab (nahradí na řádku s prvním výskytem slova „shared“ řetězec „ro“ řetězcem „rw“) $ 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 -n 'p;n' soubor (vypíše liché řádky souboru) $ sed -n 'n;p' soubor (vypíše sudé řádky souboru) $ sed '/^#/d; /^$/d' soubor1 > soubor2 | $ sed -E '/^(#|$)/d' soubor1 > soubor2 (odstraní v souboru komentáře a prázdné řádky) # sed -i '$s/^/from="'$(awk -F "|" '{print $9 "," $11}' hosts.csv)'" /' .ssh/authorized_keys (vloží výstup příkazu před text na prvním řádku) # sed -i '$s/$/ !!Ansible user!!/' .ssh/authorized_keys (vloží řetězec za text na posledním řádku) # sed -i '/auth[[:blank:]]\+required[[:blank:]]\+pam_env.so/a auth\trequired\tpam_tally2.so deny=5' /etc/pam.d/system-auth (přidá výraz pod řádek se zadaným vzorem) $ 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ím způsobem (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; vestavěná proměnná NR představuje počet záznamů (řádků) oddělených novým řádkem, NF představuje 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 mezi „//“, pro porovnání slouží ~ (vzor odpovídá výrazu), !~ (vzor neodpovídá výrazu); || logické NEBO, && logické A; není-li soubor uveden, čte ze STDIN$ awk '/nameserver/ {print}' /etc/resolv.conf (vypíše všechny řádky obsahující „nameserver“) $ 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 (zkopíruje první a druhé slovo souboru do zadaných 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) |
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 (převede v souboru malá písmena na velká a obsah přesměruje do nového souboru) $ 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 (smaže daný znak v souboru a obsah přesměruje do nového souboru) |
rev [<soubor ...>] | obrátí pořadí znaků na každém řádku souboru (původní soubor nepřepíše); není-li soubor uveden, čte ze STDIN$ echo madam | rev |
tee [<soubor ...>] | čte ze STDIN a zapisuje na STDOUT a případně do daného souboru, -a výstup příkazu přidá na konec daného souboru; pokud soubor neexistuje, vytvoří ho$ 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 (přesměruje uvedený text na daný terminál) |
> | cat /dev/null > <soubor> | smaže obsah souboru |
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řepne z režimu vkládání do příkazového režimu přemístí kurzor na začátek daného řádku ukončí editor (pokud soubor nebyl změněn) ukončí editor bez uložení případných změn v souboru uloží změny v souboru / uloží soubor jako nový uloží změny a ukončí editor uloží změny / uloží změny a ukončí editor u souboru s právy pouze ke čtení očísluje řádky / odstraní číslování řádků 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 znaky 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ů) nahradí znak v místě kurzoru nahradí 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 vyžaduje 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 |
column [<soubor ...>] | formátuje řádky souboru do sloupců, -s <oddelovac> určí oddělovač vstupních položek (implicitně bílá místa), -t vytvoří tabulku; není-li soubor uveden, čte ze STDIN$ mount | column -t (formátuje výstup příkazu do tabulky) |
cut [<soubor ...>] | -c <m-n> vyřízne v souboru na každém řádku dané rozpětí znaků (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 (vyřízne ze souboru sloupce 2 a 4 a oddělí je mezerou) # cut -d : -f 1 < /etc/passwd | sort (vypíše všechny uživatele systému v abecedním pořadí) |
paste [<soubor1> <soubor2>] | spojí obsah souborů vedle sebe (1 sloupec = 1 soubor), -d <retezec> určí oddělovač polí místo tabulátoru, -s transpozice řádků a sloupců (1 řádek = 1 soubor); není-li soubor uveden, čte ze STDIN$ paste -s soubor1 soubor2 > soubor3 (spojí obsah dvou souborů do jednoho – 1 řádek = 1 soubor) |
split [<soubor>] | rozdělí soubor na několik částí o stejném počtu řádků (implicitně 1000), -l <n> určí počet řádků, -b <n> rozdělí soubor podle daného počtu bytů; není-li soubor uveden, čte ze STDIN |
join <soubor1> [<soubor2>] | spojí řádky dvou setříděných textových soborů podle prvního, identického pole odděleného bílým místem, -i ignoruje velikost písmen; není-li soubor uveden, čte ze STDIN |
diff <soubor1> <soubor2> | <adresar1> <adresar2> | porovná obsah dvou textových soborů nebo adresářů a vypíše rozdíl, -i ignoruje velikost písmen, -q hlásí, když se soubory liší, -s hlásí, když jsou soubory stejné, -r rekurzivně, -u zobrazí výpis v jednotném tvaru$ diff <(echo "Vitejte na prompt.cz") <(cat /etc/motd) (porovná výstup obou příkazů) |
cmp <soubor1> <soubor2> | porovnává obsah dvou souborů libovolného typu a vypíše první odlišné číslo bytu a řádku, -l vypíše všechny rozdíly byte po bytu |
sum [<soubor ...>] | vypíše kontrolní součet a počet bloků souboru; není-li soubor uveden, čte ze STDIN |
cksum [<soubor ...>] | vypíše CRC kontrolní součet a počet bytů souboru; není-li soubor uveden, čte ze STDIN |
sha1sum | sha512sum | md5sum [<soubor ...>] | vypíše nebo ověří SHA1 (160-bit), SHA512 (512-bit) či MD5 (128-bit) kontrolní součet souboru, -c <soubor> porovná kontrolní součet uložený v daném souboru s původním souborem; není-li soubor uveden, čte ze STDIN$ sha512sum ./F-7-x86_64-DVD.iso (vypíše kontrolní součet souboru) $ md5sum page.txt > page.md5; md5sum -c page.md5 (uloží kontrolní součet souboru „page.txt“ do „page.md5“ a poté ho porovná s původním souborem) |
ksvalidator <soubor ...> | ověří syntaxi souboru kickstart (automaticky vytvořeného instalačním programem Anaconda a uloženého jako /root/anaconda-ks.cfg) |
enca <soubor ...> | zjistí typ kódování textového souboru, -L <jazyk> určí jazyk vstupního souboru$ enca -L cs input.srt (zjistí typ kódování textového souboru, pokud program automaticky nerozpoznal použitý jazyk) |
convmv <soubor ... | adresar ...> | změní typ kódování jména souboru/adresáře, -f <zdrojovy_kod> určí původní kód, -t <cilovy_kod> určí nový kód, -i interaktivní režim, -r rekurzivně, --list vypíše všechna dostupná kódování, --notest provede operaci$ convmv --notest -f cp1250 -t UTF-8 * (změní typ kódování jmen obsahu pracovního adresáře z „cp1250“ na „UTF-8“) |
iconv [<soubor ...>] | změní typ kódování obsahu textového souboru, -f <zdrojovy_kod> určí původní kód, -t <cilovy_kod> určí nový kód, -l vypíše všechna dostupná kódování; není-li soubor uveden, překóduje STDIN na STDOUT$ iconv -f WINDOWS-1250 -t UTF-8 < input.srt > output.srt (změní typ kódování obsahu textového souboru z „WINDOWS-1250“ na „UTF-8“) |
recode [<zdrojovy_kod>]..<cilovy_kod> [<soubor ...>] | změní typ kódování obsahu textového souboru, -l vypíše známé typy kódování, -f potlačí chybový výstup, -v podrobný výpis; není-li soubor uveden, překóduje STDIN na STDOUT$ echo 'Výpis jmen všech souborů' | recode -f UTF-8..flat (vypíše text bez diakritiky) $ recode ..HTML < page.txt > page.html (změní typ kódování obsahu souboru „page.txt“ na „html“ a zapíše ho do „page.html“) $ find . -name "*.txt" -exec recode cp1250..UTF-8 '{}' \; (změní typ kódování obsahu textových souborů z „cp1250“ na „UTF-8“) |
od [<soubor ...>] | [-o] vypíše obsah binárního souboru oktálově, -d decimálně, -x hexadecimálně, -j <byte> vypíše data od daného bytu (offsetu), -w<pocet_bytu> zobrazí na řádku daný počet bytů; první sloupec výpisu označuje tzv. offset – pořadí prvního bytu daného řádku od začátku souboru; není-li soubor uveden, čte ze STDIN$ od -w8 /usr/bin/who $ od -j 0474360 /usr/bin/find |
strings <soubor ...> | vypíše textové řetězce obsažené zejména uvnitř binárního souboru o minimální délce čtyř znaků# strings $(which vsftpd) | egrep "libwrap|hosts" (zjistí, zda se program vztahuje k tcp wrappers) |
msgfmt <soubor>.po | převede textový soubor do binárního formátu, -o <soubor>.mo určí výstupní soubor$ msgfmt -o woocommerce-cs_CZ.mo woocommerce-cs_CZ.po |
convert <zdroj> <cil> | změní formát souboru, případně i jeho velikost$ convert image.tif image.jpg (změní formát souboru „tif“ na „jpg“) $ IFS=','; cmds="hostname -s,date,ifconfig -a"; for cmd in $cmds; do { echo "[$USER@${HOSTNAME} ${PWD/#$HOME/~}]" "${cmd}";}; eval "${cmd}"; done > info.txt && convert -background black -fill white info.txt info.png (vytvoří printscreen terminálu se zadanými příkazy) |
lame <soubor>.wav <soubor>.mp3 | změní formát audio souboru z „wav“ na „mp3“ či obráceně, -b <bitrate> určí minimální bitrate, -v variabilní bitrate, --verbose podrobný výpis |
aplay <soubor ...> | přehraje daný audio soubor |
arecord <soubor>.wav | vytvoří „wav“ audio soubor |
Archivace a komprimace | |
---|---|
tar [-f <archiv>] [<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> určí název svazku, -X <soubor> vyloučí soubory odpovídající vzorům uvedeným 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 (vytvoří archiv z daného adresáře) # tar -cvf scripts.tar backup.sh restore.sh (vytvoří archiv z daných souborů) # tar -cMf /dev/st0 / -V system_bckp (vytvoří zálohu systému na pásku) # tar -tvf ssh.tar (vypíše obsah archivu) # tar -xvf ssh.tar (rozbalí archiv) 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 či obnovuje data, -o vytvoří archiv, -d vytvoří adresářový strom, -i rozbalí archiv, -m zachová čas poslední změny souborů, -t vypíše obsah archivu, -v podrobný výpis$ ls | cpio -ov > archiv.cpio (vytvoří archiv z obsahu pracovního adresáře) # find / -mtime -1 -type f -print | cpio -ov > /dev/rmt0 (vytvoří archiv na pásku ze všech souborů, které byly změněny za poslední den) $ cpio -o > /dev/fd0 <-' <soubor1> <-' <soubor2> <-' Ctrl+d (vytvoří archiv na disketu interaktivním způsobem) # cpio -ivmd /\* < /dev/rmt0 (rozbalí archiv z pásky) $ rpm2cpio setup-2.12.2-6.el8.noarch.rpm | cpio -tv (vypíše soubory v balíčku) $ rpm2cpio setup-2.12.2-6.el8.noarch.rpm | cpio -idv (rozbalí soubory z balíčku) |
compress <soubor ...> | komprimuje soubor (adresář musí být nejdřív archivován do jednoho souboru nástrojem „tar“; původní zdroj odstraní), -c vypíše výstup na STDOUT a původní zdroj zachová, -d dekomprimuje soubor (obdoba příkazu „uncompress“), -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 |
gzip <soubor ...> | komprimuje soubor (adresář musí být nejdřív archivován do jednoho souboru nástrojem „tar“; 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á, -d dekomprimuje soubor (obdoba příkazu „gunzip“), -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 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 |
bzip2 <soubor ...> | komprimuje soubor (vyšší komprese než „gzip“; adresář musí být nejdřív archivován do jednoho souboru nástrojem „tar“; 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, -d dekomprimuje soubor (obdoba příkazu „bunzip2“), -v podrobný výpis |
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 |
xz <soubor ...> | komprimuje soubor (vyšší komprese než „bzip2“; adresář musí být nejdřív archivován do jednoho souboru nástrojem „tar“; 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, -d dekomprimuje soubor (obdoba příkazu „unxz“), -v podrobný výpis |
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 |
zip <cil> <zdroj ...> | komprimuje soubor či adresář (původní zdroj zachová), -r rekurzivně, -e pod heslem$ zip -r ssh.zip /etc/ssh |
unzip <soubor>.zip | dekomprimuje soubor (původní zdroj zachová), -d <adresar> určí cílový adresář pro rozbalení archivu, -l vypíše obsah archivu, -t ověří celistvost komprimovaného souboru |