Utility
more, less cat head, tail echo wc diff cut paste split tr sort uniq find xargs tar (grep) (sed)
more
more +num_skip +/reg_exp file1 [file2…] num_skip
počet přeskočených řádků reg_exp
vyhledání daného výrazu v každém ze souborů příkazy
ENTER posun na další řádek
SPACE posun o stránku
z posun o tolik, kolik SPACE a argument (číslo) mění default posun (SPACE bude nyní
posouvat o hodnotu čísla) b
posun o obrazovku zpět (platí pro soubory) :n, :p, :f
další soubor (next), předchozí soubor (previous), výpis aktuálního souboru a řádku v
spustí textový editor na daném řádku (platí pro soubory)
less, cat
less [options] file1 [file2 … ] umožňuje zpětný pohyb příkazy společné s more a vi pohyb šipkami
cat [options] file1 [file2 … ] nestránkovaný výpis souboru -n
číslování řádek -E
ukazuje na konci řádek $
head, tail
head [options] file1 [file2…] prvních 10 řádek souboru -n N
prvních N řádek souboru -c N
prvních N bytů souboru
tail [options] file1 [file2…] posledních 10 řádek souboru -n N
posledních N řádek souboru -c N
posledních N bytů souboru
echo, wc
echo [options] string -n
nevypisuje konec řádku wc [options] file1 [file2…]
word count -w
počet slov -l
počet řádek -L
délka nejdelší řádky -c
počet bytů
diff
diff [options] file1 file2 difference porovnání obsahu 2 souborů (adresářů) je-li file - , pak se porovnává se standardním vstupem -b
ignoruje počet bílých znaků -B
ignoruje prázdné řádky -C N
na výstupu se zobrazí i N řádek okolí (context) -i
case insensitive -r
rekurzivní porovnávání souborů u adresářů -x pattern
u prohledávání adresářů neporovnává soubory a poadresáře vyhovující pattern diff3
diff pro tři soubory
cut
cut [options] file1 [file2…] vyříznutí částí souborů po řádcích -cSEZNAM
pouze znaky ze seznamu -fSEZNAM
pouze pole ze seznamu -dODDELOVAC
definice jednoznakového oddělovače defaultní je TAB
-s pouze řádky obsahující oddělovače
SEZNAM má tvar: N[,M,…] – n-té pole (případně též M-té, …) N- – od n-tého pole dál -N – do n-tého pole M-N – m-té až n-té pole
paste, split
paste [options] file1 [file2…] složí soubory – řádky vedle sebe -dODDELOVAC
split [options] file [prefix] rozdělení souboru po 1000 řádcích do souborů prefixaa, prefixab,
prefixac, … -aN
délka suffixu vzniklých souborů bude N -d
použijí se numerické sufixy -lN
rozděluje se po N řádcích -bN
rozděluje po N bytech -CN
z každého řádku vezme N znaků lze použít v shellovém programování pro parsování proměnných (!)
tr
tr [options] mna1 [mna2] translate přeloží, smaže, zmáčkne znaky z mny1 ze standardního vstupu na standardní výstup
-d smaže (delete) znaky z mny1
-s zmáčkne (squeze) posloupnost stejných znaků vyskytujících se v mně1 do jednoho
mna z1z2z3z4-z5z6 – znaky a rozsahy znaků speciální znaky
\n … newline \r … return \t … tab [:alnum:] … písmena a číslice [:alpha:] … písmena [:digit:] … číslice [:lower:] … lower-case písmena [:upper:] … upper-case písmena [:space:] … mezery [:punct:] … ,.:; atd.
sort
sort [options] file setřídí řádky textu -b
ignoruje úvodní mezery -d
uvažuje pouze mezery a písmena (dictionary) -f
ignoruje velikost písmen -n
numericky – podle hodnoty čísel a ne podle slovníkového pořadí -r
reverse -o file_name
výstup do souboru
uniq
uniq [options] [filein [fileout]] obsahuje-li vstup za sebou duplicitní
řádky, pak vypíše pouze jedenkrát -c
prefixuje řádky počtem opakování -u
vypíše pouze neduplicitní (následné) řádky
find (1)
vyhledávání souborů find [options] path [expr]
-P nenásledovat symbolické linky (default)
-L následovat symbolické linky
-d nejdříve prohledávat podadresáře
-name pattern vyhledání souborů s daným vzorem (speciální znaky “?*[]”)
-iname pattern case insensitive verze name
-lname pattern soubor je symbolický link, jehož cíl má tvar vzoru
-ilname pattern case insensitive verze lname
-regex pattern soubor odpovídá regulárnímu výrazu
-iregex pattern case insensitive verze regex
-wholename pattern pattern se vztahuje ne pouze k souboru, ale k celé cestě
find (2)
-size [+|-]N[unit] c … byty, k … kilobyty, M … megabyty, G … gigabyty
-type d …adresář f … soubor l … symbolický link
-mindepth M, -maxdepth N prohledává od úrovně M, resp. do úrovně N
-amin [+|-]N přístup k souboru naposledy před N minutami
-anewer file soubor je novější, než poslední změna souboru file
-atime [+|-] N přístup k souboru naspoledy před 24*N hodinami
-cmin, -cnewer, -mtime, -mnewer viz. axxx, pro změnu údajů o souboru (c), resp. samotného souboru (m)
-empty prázdný soubor
find (3)
-gid N, -uid N GID, resp. UID souboru je N
-group name, -user name soubor patří skupině, resp. uživateli name
-perm mod soubory s právy právě mod (oktalově nebo znakově)
-perm –mod soubory s právem alespoň mod
-perm /mod soubory, kde alespoň jedna skupina splňuje definovaný
mód
find (4)
akce -print
vytiskne nalezené soubory (default) -fprint file
vytiskne nalezené soubory do douboru -printf format
vytiskne nalezené soubory v zadané formě (c styl) -ls
vytiskne nalzené soubory v ls formátu -delete
smaže nalezené soubory -prune
nevstoupí do nalezeného adresáře -exec command \;
s nalezenými soubory provede příkaz command (všechny jsou argumentem příkazu)
-exec command {} \; s nalezenými soubory provede příkaz command (po jednom)
find (5)
operátory ()
určuje prioritu !, not
negace expr1 expr2, expr1 -a expr2, expr1 –and expr2
musí platit expr1 i expr2 expr1 -o expr2, expr1 –or expr2
platí expr1 nebo expr2 expr1, expr2
provede expr1 a pak expr2
find (6)
find ~/ -name '*.txt' find /tmp/ -name ‘*.txt' -exec grep “www.” \; find ~/ -name 'core*' -delete; find . -name "rc.conf" -exec rm '{}' \; find /usr/src -not \( -name "*.h" -o -name ".*.c" \) -
print find ~ -type f \( -name “\*.php” -fprint php_files , -
name “\*.js” -fprint javascript_files \)
xargs
xargs [options] command provede příkaz a jako parametry doplní řetězce
ze standardního vstupu oddělené mezerou (jako na výrobní lince)
-d Z jako oddělovač se použije znak Z
-a file parametry se budou číst ze souboru
-i command …{} … {} … opakuje příkaz pro každou řádku se standardního
vstupu a její obsah vloží místo {} ls –1 *.[ch] | xargs –i cp {} {}.bak
tar (1)
archivace adresářů tar operation [options] file [dir]
operace -c
create -x
extract -t
list … vypíše obsah archivu -r
append -v
verbose … podrobnější informace o procesu options
-C dir přepnutí do adresáře dir
-f file pracuje se souborem file
-z zabalí/extrahuje za pomozi aplikace gzip
-j zabalí/extrahuje za pomozi aplikace bzip2
tar (2)
tar –cf dir.tar dir tar –czf dir.tar.gz dir tar –t –f dir.tar.gz tar –xjf dir.tar.bz2 file tar –xjf dir.tar.bz2 –C dir1/
Úkol
vypište loginy všech uživatelů systému vypište UID a domovské adresáře všech
uživatelů nahraďte oddělovače v /etc/passwd za
tabulátory vyberte soubor a změnte ho tak, aby
obsahoval pouze velká písmena setřiďte /etc/passwd podle loginů Jak smazat nalezené soubory bez použití
přepínače –delete v find?