Príkazy UNIX
1 - Základné príkazy pre prácu so súbormi
cp - Kopirovanie suborov
mv - Presuvanie suborov
rm - Mazanie suborov
touch - Zmena casu pristupu a modifikacie suboru
ln - Vytvorenie linky
cp - Kopirovanie suborov [z ang. CoPy]
Syntax:
a) cp [-R [-L]] [-i] [-v] source_file target_file
b) cp [-R [-L]] [-i] [-v] source_file1 source_file2 ... source_fileN target_directory
Prikaz cp je mozne pouzit v dvoch zapisoch. Ak sa pouzije prvy zapis (a.), prikaz cp skopiruje subor source_file do suboru target_file. V druhom pripade (b.), sa subor source_file skopiruje do adresara target_directory, pricom nazov noveho suboru bude zhodny so suborom source_file.
Pre bezpecne kopirovanie medzi vzdialenymi pocitacmi pozri prikaz scp v sekcii Zakladne prikazy pre komunikaciu.
Najdolezitejsie prepinace *:
-R ak je source_file adresar, tak cp skopiruje adresar source_file aj so vsetkymi podadresarmi pripojenymi v tomto bode. Symbolicke linky su skopirovane, nie su nasledovane
-p pri kopirovani sa snazi zachovat co najviac casov modifikacie, casov pristupu, priznakov, user ID a group ID, tak ako umoznuju pristupove prava
-i vyziada od pouzivatela potvrdenie prepisania suboru v pripade, ze cielovy subor uz existuje (bez tohoto prepinaca cp prepise obsah povodneho suboru bez upozornenia !!)
-r rekurzivne kopiruje cely obsah zvolenych adresarov (to iste ako -R)
* pre dalsie prepinace pozri manualy ("man cp")
Priklady:
cp foo /work/workfoo skopiruje sa subor foo z aktualneho adresara do adresara /work do suboru s menom workfoo. Ak tento subor uz existuje bude bez upozornenia prepisany.
cp -i ~/notes[a-g] /work skopiruju sa subory s menom notesa, notesb, notesc,...,notesg z domovskeho adresara do adresara /work. Pri vyskyte cieloveho suboru s rovnakym menom ako zdrojovy subor, cp vyziada od pouzivatela potvrdenie prepisania existujuceho suboru.
cp -R /usr/jozo /usr/fero zaloha skopiruju sa adresare /usr/jozo a /usr/fero do adresara zaloha, ktory sa nachadza v aktualnom adresari. Pritom sa skopiruju aj obsahy tychto adresarov (subory aj podadresare). Ak sa nachadzaju v adresaroch symbolicke linky, tak su skopirovane (nekopiruju sa subory na ktore linky ukazuju).
mv - Presuvanie suborov [z ang. Move]
Syntax:
a) mv [-i] source target
b) mv [-i] source1 ... sourceN directory
Prikaz mv vo svojej prvej forme (a) presuva subor s menom source do cielovej cesty a premenuje subor na meno target. Tato forma predpoklada, ze target nie je meno existujuceho adresara.
V druhej forme (b) presuva kazdy subor s menom source1 az sourceN do cielovej cesty s nazvom directory.
Najdolezitejsie prepinace *:
-i vyziada od pouzivatela potvrdenie prepisania suboru v pripade, ze cielovy subor uz existuje (bez tohoto prepinaca mv prepise obsah povodneho suboru bez upozornenia !!)
* pre dalsie prepinace pozri manualy ("man mv")
Priklady:
mv foo /work/workfoo presunie subor foo z aktualneho adresara do adresara /work a premenuje ho s menom workfoo. Ak tento subor uz existuje bude bez upozornenia prepisany.
mv -i ~/notes[a-g] /work presunu sa subory s menom notesa, notesb, notesc,...,notesg z domovskeho adresara do adresara /work. Pri vyskyte cieloveho suboru s rovnakym menom ako zdrojovy subor, mv vyziada od pouzivatela potvrdenie prepisania existujuceho suboru.
rm - Mazanie suborov [z ang. ReMove]
Syntax:
rm [-iR] file1 ... fileN
Prikaz rm maze subory s menami file1 az fileN.
Najdolezitejsie prepinace *:
-R ak je niektory z fileX adresar, tak rm zmaze tento adresar aj s jeho obsahom
-i vyziada od pouzivatela potvrdenie vymazania suboru v pripade, ze cielovy subor uz existuje (bez tohoto prepinaca rm vymaze kazdy subor bez upozornenia !!)
* pre dalsie prepinace pozri manualy ("man rm")
Priklady:
rm foo vymaze subor foo z aktualneho adresara bez upozornenia
rm -iR /usr/jozo /usr/fero foo vymazu sa adresare /usr/jozo a /usr/fero aj s ich obsahmi a takisto aj subor foo s aktualneho adresara. Kazdemu mazaniu suboru, ale adresara bude predchadzat poziadavka na potvrdenie zmazania danej polozky.
touch - Zmena casu pristupu a modifikacie suboru
Syntax:
touch [-acfm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...
Prikaz touch nastavuje cas pristupu a modifikacie suborov uvedenych ako argumenty na aktualny cas. Ak subor uvedeny ako argument neexistuje, prikaz touch ho vytvori. Je tiez mozne specifikovat cas, ktory ma byt suborom priradeny.
Najdolezitejsie prepinace *:
-a zmeni cas pristupu suboru. Cas modifikacie suboru nie je zmeneny.
-c nevytvori novy subor, ak subor neexisuje.
-m zmeni cas modifikacie suboru. Cas pristupu suboru nie je zmeneny.
-r na zmenu sa pouzije cas pristupu a modifikacie, ake ma zadany subor a nie aktualny cas
-t zmeni cas pristupu a modifikacie na zadany cas. Argument musi mat nasledujuci tvar "[[CC]YY]MMDDhhmm[.SS]", kde kazdy z parov predstavuje nasledovne:
CC prve dve cislice roka
YY druhe dve cislice roka
MM mesiac (1-12)
DD den (1-31)
hh hodina (0-23)
mm minuta (0-59)
SS sekunda (0-61)
Ak nie je zadane CC a YY pouzije sa aktualny rok. Ak nie je zadnane SS pouzije sa 0.
* pre dalsie prepinace pozri manualy ("man touch")
Priklady:
touch foo ak subor foo neexistuje, prikaz touch ho vytvori a prideli mu aktualne nastavenia casu. Ak foo existuje, zmeni len jeho casove informacie.
touch -mct 10231745.33 foo nastvi cas modifikacie suboru foo na 10 mesiac, 23 den, 17:45:33. Cas pristupu sa nezmeni. Ak subor foo neexistuje, nebude vytvoreny.
ln - Vytvorenie linky [z ang. LiNk]
Syntax:
ln [-fs] source_file [target_file]
ln [-fs] source_file ... [target_dir]
Prikaz ln vytvara novu polozku adresara (linkovy subor), ktora rovnake mody ako originalny subor. Linky su vhodne na udrziavanie viacerych kopii jedneho suboru na viacerych miestach zaroven, pricom sa setri miestom. Subor nie je v skutocnosti kopirovany, ale vytvori sa subor, ktory na originalny subor "ukazuje". Esituju dva druhy liniek: hard linky a symbolicke linky.
Bez zadania prepinaca ln vytvori hard linku. Hard linka je nerozoznatelna od povodnej adresarovej polozky. Hard linky sa nemozu vztahovat na adresare.
Symbolicka linka obsahuje meno suboru, na ktory je nalinkovana Referencovany subor je spristupneny, ak je volana operacia open. Operacia stat na symbolickej linke vrati informacie o referencovanom subore; na zistenie inoformacii o linke je nutne pouzit lstat. Symbolicke linky sa mozu vztahovat aj na adresare.
S jednym, alebo dvoma argumentmi, ln vytvara linku na existujuci subor soruce_file. Ak je zadany target_file, linka bude mat toto meno. Ak je zadany adresar target_dir, linka sa vytvori v nom s menom poslednej casti source_file.
Ak je zadanych viac ako dva argumenty, ln vytvori linky v adresari target_dir na vsetky uvedene subory. Nazvy liniek budu rovnake ako su nazvy originalnych suborov.
Najdolezitejsie prepinace *:
-s vytvori symbolicku linku.
* pre dalsie prepinace pozri manualy ("man ln")
Priklady:
ln foo /work/workfoo v adresari /work vytvori hardlinku s menom workfoo
ln -s /home/larry /work/larry-dir v adresari /work vytvori linku larry-dir na adresar /home/larry
2 – Pokročilé príkazy pre prácu so súbormi
tar - Archivator
gzip - Kompresia suborov
gunzip - Dekompresia suborov
split - Rozdelenie suburu
tar - Archivator [z ang. Tape ARchiver]
Syntax:
tar [-cxtrudzf] files ...
Prikaz tar sluzi na vytvaranie archivacnych suborov,na pridavanie suborov do neho a extrakciu suborov z archivacneho suboru. Tar zlucuje subory do jedneho archivacneho suboru, pricom zachovava vsetky informacie o suboroch, ako su uzivatelske prava.
Najdolezitejsie prepinace *:
-c vytvorenie noveho archivacneho suboru
-x extrakcia suborov z archivacneho suboru
-t vypis obsahu archivacneho suboru
-r pridanie suborov na koniec archivacneho suboru
-u (aktualizacia); pridanie suborov ak verzia na suborovom systeme je novsia ako verzia v archivacnom subore
-d porovnanie suborov v archivacnom subore so subormi na suborovom systeme
-f filename
urci meno archivacneho suboru
-z pouzitie prikazu gzip na zkomprimovanie archivu
-v vypis podrobnych informacii o archivovanych suboroch.
* pre dalsie prepinace pozri manualy ("man tar")
Priklady:
tar -cf arch.tar * vytvori archiv arch.tar zo vsetkych suborov a adresarov aj s ich podstromami nachadzajucich sa v aktualnom adresari
tar -xzf arch.tgz extrakcia suborov ulozenych v archive arch.tgz. Pri archivacii bol pouzity prepinac -z, takze teraz je potrebne ho uviest znova, aby sa archiv dekomprimoval prikazom gzip.
tar -czvf arch.tgz /work/test1 /work/test2 vytvori archiv s vyuzitim kompresie prikazom gzip. Do archivu sa vlozia dva adresare aj s celym svojim obsahom. Prepinac -v sposobi, ze pocas vytvarania archivu sa budu zobrazovat mena archivovanych suborov.
gzip - Kompresia suborov
Syntax:
gzip [-dtvr] file ...
Prikaz gzip sluzi na kompresiu suborov. Pouziva Lempel-Ziv kodovanie, tak ako zip a pkzip. Kazdy subor file je nahradeny suborom s rovnakym menom a koncovkou ".gz". Ak nie je zadany ziadny prepinac, gzip vykona kompresiu vsetkych suborov uvedenych ako argumenty.
Najdolezitejsie prepinace *:
-d dekompresia suborov
-t testuje integritu archivu
-v vypisuje informacie o urovni kompresie
-r prechadza rekurzivne cez adresarovu strukturu a komprimuje vsetky subory
* pre dalsie prepinace pozri manualy ("man gzip")
Priklady:
gzip * kazdy zo suborov v aktualnom adresari sa nahradi skomprimovanym suborom s koncovkou ".gz"
gzip -dv * vsetky subory v aktalnom adresari budu dekomprimovane, pricom sa zobrazia aj informacie aj o urovni kompresie
gunzip - Dekompresia suborov
Syntax:
gunzip [-tvr] file ...
Prikaz gunzip sluzi na dekompresiu suborov. Kazdy subor file ukonceny koncovkou ".gz" sa rozbali na subor bez tejto koncovky.
Najdolezitejsie prepinace *:
-t testuje integritu archivu
-v vypisuje informacie o urovni kompresie
-r prechadza rekurzivne cez adresarovu strukturu a komprimuje vsetky subory
* pre dalsie prepinace pozri manualy ("man gunzip")
Priklady:
gunzip *.gz kazdy skomprimovany subor v aktualnom adresari sa rozbali
gunzip -tv *.gz kontrola integrity vsetkych skomprimovanych suborov v aktualnom adresari
split - Rozdelenie suburu
Syntax:
split [-b byte_count[k|m]] [-l line_count] [file [name]]
Prikaz split cita vstupny subor a rozdeli ho na subory o velkosti 1000 riadkov kazdy. Ak nie je zadany file rozdeluje sa do suborov standardny vstup.
Najdolezitejsie prepinace *:
-b vytvarane subory budu velkosti bytes_count. Ak 'k' nasleduje za cislom, subory budu dlzky bytes_count kilobajtov. Ak 'm' nasleduje za cislom, subory budu dlzky bytes_count megabajtov.
-l vytvarane subory budu velkosti n riadkov
* pre dalsie prepinace pozri manualy ("man split")
Priklad:
tar -czf - * | split -b 1400k skomprimovanie obsahu adresara a rozdelenie na diskety. Tento trik umoznuje vyhnut sa vytvoreniu docasneho suboru, ktory by sa nasledne rozdeloval. Prikaz tar odosle spakovany subor na standardny vstup prikazu split.
3 – Príkazy pre prácu s obsahom súboru
cat - Spajanie a vypisovanie suborov
grep - Vypis riadkov zhodnych so vzorom
wc - Ratanie poctu slov, riadkov a znakov
tr - Nahradzovanie zvolenych znakov
sort - Zoradovanie
head - Zobrazenie zaciatocnej casti suboru
tail - Zobrazenie poslednej casti suboru
awk - Jazyk na vyhladavanie a spracovanie vzorov (velmi silny nastroj na pracu s textom)
more - Prezerac obsahu textovych suborov
less - Prezerac obsahu textovych suborov (vylepsena obdoba prikazu more)
cmp - Porovnanie dvoch suborov
diff - Hladanie rozdielov medzi dvoma subormi
uniq - Vypis alebo filtracia opakujucich sa riadkov
file - Zistenie typu suboru
cut - Vyber casti riadkov zo suborov
paste - Spajanie korespondujucich riadkov suborov
cat - Spajanie a vypisovanie suborov [z ang. ConcAtenaTe]
Syntax:
cat [-benstuv] [-] [file ...]
Prikaz cat cita sekvnecne subory a zapisuje ich na standardny vystup. K suborom file sa pristupuje v poradi zapisu do prikazoveho riadku. '-' predstavuje standardny vstup.
Najdolezitejsie prepinace *:
-n cisluje riadky vystupu, zacinajuc od 1
-s zmensi pocet viacerych po sebe nasledujucich prazdnych riadkov na jeden
* pre dalsie prepinace pozri manualy ("man cat")
Priklady:
cat text1 obsah suboru text1 sa vypise na standardny vystup
cat -n text1 >text2 vypis obsahu suboru text1, pricom na zaciatku kazdeho riadku bude cislo riadku. Pomocou '>' je vystup presmerovany do suboru text2, ktory ak neexistuje tak sa vytvori. V opacnom pripade, sa jeho obsah prepise.
cat textA textB >>text2 vypis obsahu suboru textA a nasledne aj suboru textB. Standardny vystup je opat presmerovany. Tentoraz sa pomocou '>>' pripaja vypis na koniec suboru text2.
grep - Vypis riadkov zhodnych so vzorom
Syntax:
grep [-v, -c, -l, -n, -s, -h, -i, -x] [-e] expr [-f file] files ...
Prikaz grep prehladava subory files (alebo standardny vstup, ak nie su zadane ziadne subory) a hlada riadky zhodne so vzorom.
Najdolezitejsie prepinace *:
-c potlaci normalny vystup; miesto toho vypise pocet zhodnych riadkov pre kazdy vstupny subor. Ak je zadany prepinac -v, vypise sa pocet nezhodujucich sa riadkov.
-e expr , pouzije sa expr ako vzor; vhodne pri vyrazoch zacinajucich '-'
-f file , pouzije sa vzor ulozeny v subore file
-h potlaci vypis nazvov suborov na vystupe, ked sa prehladavaju viacere subory
-i ignoruje sa rozdiel medzi velkymi a malymi pismenami
-l potlaci normalny vystup; vypisu sa len nazvy suborov, z ktorych by sa normalne vypisovalo
-n na zaciatok kazdeho riadku na vystupe vlozi cislo riadku zo vstupneho suboru
-s potlaci vypis chybovych hlasok pri neexistujucich alebo necitatelnych suboroch
-v vypise len riadky, v ktorych sa nenasiel zadany vzor
-x vypise len riadky, kde sa zhoduje so vzorom cely riadok
* pre dalsie prepinace pozri manualy ("man grep")
Priklady:
grep -n '[dD]on\'t' text1 vypise vsetky riadky zo suboru text1, v ktorych sa vyskytuju slova don't a Don't. Vypise sa aj cislo riadku v subore text1.
ls -l | grep '^d......r' vypisu sa vsetky adresare z aktualneho adresara, ktore maju pre vsetkych uzivatelov pravo na citanie. Vyskyt vzoru sa hlada len od zaciatku riadku (^), nie v ramci neho.
ls | grep -v '.cc$' vypisu sa vsetky subory a adresare, ktore sa nekoncia ".cc".
wc - Pocet slov, riadkov a znakov [z ang. Word Count]
Syntax:
wc [-clw] [file ...]
Prikaz wc zobrazuje pocet riadkov, slov a znakov obsiahnutych v kazdom zo vstupnych suborov file (alebo zo standardneho vstupu) na standardny vystup. Ak je zadanych viac suborov, zobrazi sa dalsi riadok obsahujuci sucet slov, riadkov a znakov vo vsetkych suboroch dokopy.
Pouzivane prepinace:
-c len pocet znakov vo vsutpnom subore je zapisany na standardny vystup
-l len pocet riadkov vo vstupnom subore je zapisany na standardny vystup
-w len pocet slov vo vstupnom subore je zapisany na standardny vystup
Priklady:
wc foo zobrazi statistiku riadkov, slov a znakov so suboru foo
napr: "10 57 367 foo"
who | wc –l zobrazenie poctu prihlasenych pouzivatelov (pocet riadkov vypisu prikazu who)
tr - Preklad znakov [z ang. TRanslate characters]
Syntax:
tr [-cs] string1 string2
tr [-c] -d string1
tr [-c] -s string1
tr [-c] -ds string1 string2
Prikaz tr kopiruje standardny vstup na standardny vystup so substituciou, alebo vymazanim zvolenych znakov. Prikaz pracuje len so standardnym vstupom, neakceptuje subory ako parametre.
Najdolezitejsie prepinace *:
-c nahradza vsetky znaky, okrem znakov uvedenych v string1
-d vymaze vsetky znaky uvedene v string1. Ak je zadany aj parameter -c, vyamzu sa vsetky znaky okrem znakov v string1.
-s zmensi pocet vyskytov viac po sebe iducich rovnakych znakov na jeden
* pre dalsie prepinace pozri manualy ("man tr")
Priklady:
tr -cs "[:alpha:]" "\n" < file1 vytvori zoznam slov zo suboru file1, pricom kazde slovo bude na samostatnom riadku. Slovo je tvorene len pismenami.
tr "[:lower:]" "[:upper:]" < file1 vsetky male pismena v subore file1 sa zmenia na velke
sort - Usporiadanie
Syntax:
sort [-t separator] [-o output-file] [-bdfiMmnr] [+POS1 [-POS2]] [file ...]
Prikaz sort sluzi na usporiadanie riadkov v zadanych suboroch.
Najdolezitejsie prepinace *:
-b ignoruju sa medzery na ziaciatku, ked sa hladaju zoradovacie kluce na kazdom z riadkov
-d zoradenie podla "telefonneho zoznamu"; ignoruju sa vsetky znaky okrem pismen, cislic a medzier
-f zmena malych pismen na velke pri zoradovani, aby napr. 'b' bolo zoradene rovnako ako 'B'
-i ignoruju sa znaky mimo ASCII rozsahu 040-0176
-M zoradenie podla mesiacov. Na zoradenie sa pouzivaju sa skratky 'JAN' , 'FEB',...
-m zoradenie viacerych suborov ako jeden
-n zoradenie podla ciselnych hodnot
-r otocene zoradenie
-o output-file , vystup sa zapise do suboru output-file a nie na standardny vystup.
-t separator , pouzije znak separator ako oddelovac poli, pri hladani zoradovacieho kluca v riadku. Prednastaveny oddelovac poli je biely znak.
+POS1 [-POS2] specifikuje pole v ramci kazdeho riadku, ktore sa pouzije ako zoradovaci kluc. Pole sa sklada z casti zacinajucej poziciou POS1 az po (ale nezahrnajuc) poziciu POS2 (alebo po koniec riadku ak POS2 nie je zadany). Kazdy POS predstavuje pole oddelene oddelovacim znakom. Format POS je f.c, kde f predstavuje cislo pola a c predstavuje cislo znaku v danom poli. Polia su cislovane od 0.
* pre dalsie prepinace pozri manualy ("man sort")
Priklady:
ls -la | sort -M +5 zoradenie poloziek v aktualnom adresari podla piateho pola (cisluje sa od 0), pricom sa polozky zoradia podla mesiacov
ls -la | sort +8.3 zoradenie poloziek v aktualnom adresari podla deviateho pola (mena suborov), pricom sa uspriadava podla tretieho pismena v ramci mena suboru
sort -t: -o birthdays +3.2 -3.3 friends zoradi subor friends podla druheho pismena v tretom poli, pricom ako oddelovac poli sa pouzije ':'. Vysledok sa ulozi do suboru birthdays
head - Zobrazenie prvych riadkov suboru
Syntax:
head [-n count] [-c bytes] [file ... ]
Prikaz head zobrazi prvych count riadkov, alebo bajtov (bytes) kazdeho zvoleneho suboru. Ak nie je zadany ziadny subor, head pouzije ako vstup standardny vstup. Ak nie je zadane cislo count, berie sa predvolena hodnota 10. Prikaz head teda vypise prvych 10 riadkov.
Najdolezitejsie prepinace:
-n head zobrazi count riadkov suboru file, alebo standardneho vstupu
-c zobrazi sa bytes bajtov suboru file, alebo so standardneho vstupu
Priklady:
head foo vypise na standardny vystup prvych 10 riadkov suboru foo
head -n 25 foo vypise na standardny vystup prvych 25 riadkov suboru foo
head -c 16 foo vypise na standardny vystup prvych 16 bajtov zo suboru foo
tail - Zobrazenie poslednej casti suboru
Syntax:
tail [| -f | -r] [-b number | -c number | -n number] [file ...]
Prikaz tail zobrazuje obsah suboru file, alebo svoj stadndardny vstup, na standardny vystup.
Vypis zacina na bajte, riadku alebo na 512 bajtovom bloku urcenom na vstupe. Cislo so zaciatocnym "+" posunie zaciatok vypisu dalej vzhladom na zaciatok suboru. Napriklad "-c +2" zacne vypisovat od druheho bajtu vstupu. Cislo zacinajuce '-' posunie zaciatok vypisu spat vzhladom na koniec suboru. Napriklad "-n -2" vypise posledne dva riadky vstupu.
Najdolezitejsie prepinace *:
-b pozicia je cislo number, ktore predstavuje 512 bajtove bloky
-c pozicia je cislo number, ktore predstavuje bajty
-n pozicia je cislo number, ktore predstavuje riadky. Toto je predvoleny prepinac, takze je mozne zadat iba samtone cislo number
-r sposobi obrateny vypis podla riadkov. Ak je zadany jeden z parametrov -b, -c, -n tak cisla predstavuju pocet bajtov, 512 bajtovych blokov, alebo riadkov, ktore sa zobrazia vzhladom na koniec vstupu
* pre dalsie prepinace pozri manualy ("man tail")
Priklady:
tail -25 text1 vypise poslednych 25 riadkov suboru text1. Prepinac -n nie je nutne zadavat, pretoze je predvoleny.
tail -c +7 text1 vypise obsah suboru text1 zacinajuc od 7 bajtu v subore
cat text1 | tail -r +15 cat vypise obsah suboru text1. Ten sa vlozi na vstup programu tail. tail vypise poslednych 15 riadkov suboru text1 v obratenom poradi riadkov
awk - Jazyk na vyhladavanie a spracovanie vzorov
[A Pattern Scanning and Processing Language]
Syntax:
awk [options] [file]
Awk je programovaci jazyk, ktoreho hlavnym zameranim je prehladavanie skupiny suborov na vyskyt vzorov a nasledne spracovanie takychto riadkov, alebo poli.Awk umoznuje transformaciu udajov s vyuzitim jednoducheho zapisu.Awk je velmi komplexny jazyk, preto sa na tejto stranke nachadza len zhrnutie jeho najdolezitejsich crt. Awk umoznuje pracu nie len z poliami, ale aj s podretazcami. Na to sluzi funkcia substr, ktora umoznuje vyber podretazca z vybraneho retazca. Dolezitou funkciou je tiez length, ktora zistuje dlzku aktualne prehladavaneho riadku.
Pre hlbsie pochopnie awk odporucam studium manualovych stranok (man awk), alebo dokumentu na ose v adresari OS/pocitacove/csh/doc/awk.doc. Pozor: subor awk.doc nie je Word dokument a vacsina textovych prehladacov s nim ma problemy. Pre bezproblemove prezeranie awk.doc odporucam pouzit prikaz more (more awk.doc).
Priklady:
ls -la | awk '{print $5, $9}' v tomto pripade prikaz awk sposobi vypis iba stlpcov 5 (velkost suboru) a 9 (meno suboru). (Samozrejme, ked sa v mene suboru nachadza medzera, tak v stlpci 9 nebude cele meno suboru.) Taketo filtrovanie stlpcov moze byt velmi uzitocne pri vytvarani skriptov.
ls -la | awk '{sum += $5} END {print sum}' v tomto priklade awk vytvori sucet z hodnout v piatom stlpci vypisu ls -la (teda velkosti suborov) a nakoniec vypise ziskany sucet. Direktiva END sluzi v awk na vykonanie prikazov po skonceni prehladavania. Prikaz sa teda vykona len raz, a nie pre kazdy z prehladavanych riadkov. Rovnako existuje aj direktiva BEGIN, ktora sluzi na vykonanie prikazov pred spustenim prehladavania vstupu (napr: ls | awk 'BEGIN {str="Output"} ; {print str, $1}').
ps -o time | awk 'BEGIN {FS=":"} ; {print $1}' v tomto pripade prikaz ps vypisuje iba cas CPU, kazdeho z beziacich procesov pouzivatela. FS zabezpecuje zmenu oddelovaca poli, teda namiesto bieleho znaku sa pouzije ako oddelovac znak ":". V nasom pripade to znamena, ze sa vypisu len hodiny kazdeho zo zaznamu a cast minut a sekund sa nezobrazi.
more - Prezerac obsahu textovych suborov
Syntax:
more [+n] [file ...]
Prikaz more je interaktivny prikaz zobrazujuci obsah suboru, pricom vypis je vzdy po naplneni obrazovky pozastaveny. Pouzivatel ma moznost sa po strankach suboru lubovolne pohybovat. File moze byt aj '-' co predstavuje standardny vstup.
Najdolezitejsie prepinace *:
+n zacne vypis suboru od riadku s cislom n
* pre dalsie prepinace pozri manualy ("man more")
Najdolezitejsie prikazy:
medzernik prechod na nasledujucu stranku
d posun o 11 riadkov (cca. o polovicu stranky)
/ vyhladanie regularneho vyrazu od aktualnej pozicie dalej v texte. Regularnym vyrazom moze byt lubovolny retazec. Ak po prikaze / sa hned zada Enter, vyhlada sa dalsi vyskyt posledne zadaneho retazca.
? vyhladanie regularneho vyrazu nad aktualnou poziciou.
f prechod na dalsiu stranku (to iste ako medzernik)
b prechod na predchadzajucu stranku
n zobrazi dalsi vyskyt posledne zadaneho regularneho vyrazu
:n ak bol zadany viac ako jeden subor, zobrazi sa nasledujuci subor
:p zobrazi sa predchadzajuci subor
q ukoncenie programu more
Priklady:
more foo zobrazi sa obsah suboru foo. Ak je obsah dlhsi ako je pocet riadkov obrazovky, vypis sa pozastavi a program caka na pokyn od pouzivatela
more +30 text1 zobrazi sa obsah suboru text1 zacinajuc riadkom 30
more text1 text2 zobrazi sa subor text1. Po prejdeni na koniec suboru text1, alebo zadanim prikazu ":n" sa vypis presunie na subor text2
less - Prezerac obsahu textovych suborov
Syntax:
less [+n] [file ...]
Prikaz less je podobny prikazu more, ale umoznuje spatny pohyb v subore ako aj pohyb vpred. Less nemusi nacitavat pred zobrazenim cely obsah suboru, takze pri velkych vstupnych suboroch sa startuje rychlejsie. Rovnako ako prikaz more aj less je interaktivny prikaz, ale s vacsimi moznostami.
Najdolezitejsie prepinace *:
+n zacne vypis suboru od riadku s cislom n
* pre dalsie prepinace pozri manualy ("man less")
Najdolezitejsie prikazy:
medzernik prechod na nasledujucu stranku
d posun o 11 riadkov (cca. o polovicu stranky)
/ vyhladanie regularneho vyrazu od aktualnej pozicie dalej v texte. Regularnym vyrazom moze byt lubovolny retazec. Ak po prikaze / sa hned zada Enter, vyhlada sa dalsi vyskyt posledne zadaneho retazca.
? vyhladanie regularneho vyrazu nad aktualnou poziciou.
f prechod na dalsiu stranku (to iste ako medzernik)
b prechod na predchadzajucu stranku
n zobrazi dalsi vyskyt posledne zadaneho regularneho vyrazu
:n ak bol zadany viac ako jeden subor, zobrazi sa nasledujuci subor
:p zobrazi sa predchadzajuci subor
q ukoncenie programu more
Less obsahuje mnozstvo moznych nastaveni. Pre podrobny popis prikazu pozri ("man less")
Priklady:
less foo zobrazi sa obsah suboru foo. Ak je obsah suboru dlhsi ako je velkost stranky, vypis sa po nacitani jednej stranky pozastavi.
less +30 text1 zobrazi sa obsah suboru text1 zacinajuc riadkom 30
less text1 text2 zobrazi sa subor text1. Po prejdeni na koniec suboru text1, alebo zadanim prikazu ":n" sa vypis presunie na subor text2
cmp - Porovnanie dvoch suborov [z ang. CoMPare]
Syntax:
cmp [-l | -s] file1 [file2]
Prikaz cmp porovnava dva subory akehokolvek typu a zapise vysledky na standardny vystup. Pri povodnych nastaveniach cmp nevypisuje nic ak sa riadky zhoduju; ak su rozne, uvedie sa bajt a cislo riadku na ktorom sa ukazala prva odlisnost. Prvy subor file1 musi byt zadany z prikazoveho riadku, druhy file2 je bud specifikovany ako parameter, alebo sa cita zo standardneho vstupu. Bajty a riadky su cislovane od jednotky.
Najdolezitejsie prepinace *:
-l vypise cislo bajtu (desiatkovo) a hodnoty rozdielnych bajtov (osmickovo) pre kazdy rozdiel v suboroch
-z skontroluje sa najprv velkost subor. Ak sa velkost nezhoduje, cmp ohlasi rozdiel vo velkosti a nepokracuje v prehladavani obsahu suborov.
* pre dalsie prepinace pozri manualy ("man cmp")
Priklady:
cmp foo /work/workfoo porovna obsah suborov foo a /work/workfoo
Vystup: "foo /work/workfoo differ: char 55, line 3"
takyto vystup znamena, ze subory su rozdielne a prvy rozdiel sa nachadza na riadku 3. Je to 55 znak od zaciatku suboru.
diff - Hladanie rozdielov medzi dvoma subormi [z ang. DiFFerence]
Syntax:
diff [options] from-file to-file
V najjednoduchsom pripade diff porovnava obsah dvoch suborov from-file a to-file. Ak from-file je adresar a to-file nie je, tak diff porovnava subor v adresari from-file, ktory ma rovnaky nazov ako subor to-file.
Ak oba from-file a to-file su adresare, diff porovnava korespondujuce subory v oboch adresaroch.
Prikaz diff obsahuje velke mnozstvo prepinacov options, ktore mozno najst v manpages ("man diff")
Priklad:
/home/larry# cat frog
Animals are very interesting creatures. One of my favorite
animals is
the tiger, a fearsome beast with large teeth.
I also like the lion---it's really neat!
/home/larry# cp frog toad
/home/larry# diff frog toad
/home/larry# cat dog
Animals are very nteresting creatures. One of my favorite
animals is
the tiger, a fearsome beast with large teeth.
I also like the lion---it's really neat!
/home/larry# diff frog dog
1c1,2
< Animals are very interesting creatures. One of my favorite
animals is
---
> Animals are very nteresting creatures. One of my favorite
animals is
>
3c4
< I also like the lion---it's really neat!
---
> I also like the lion---it's really neat!
/home/larry#
Na priklade vidiet, ze program diff nevytvara ziadny vystup, pokial su subory identicke. Pokial sa porovnavaju dva rozne subory, tak riadok 1c1,2 hovori, ze bol porovnany prvy riadok laveho suboru (frog) s prvym a druhym riadkom praveho suboru (dog), a ze tu boly najdene rozdiely. Potom sa porovnali riadky 3 (v subore frog) a 4 (v subore dog) a aj tu bol najdeny rozdiel.
uniq - Vypis alebo filtracia opakujucich sa riadkov [z ang. Unique]
Syntax:
uniq [-c | -d | -u] [-i] [-f fields] [-s chars] [input_file[output_file]]
Prikaz uniq cita standardny vstup, porovnava susedne riadky a zapisuje kazdy jedinecny riadok na vystup. Opakujuce riadky nebudu detekovane, ak nenasleduju zasebou. Je teda vhodne subory najprv usporiadat.
Najdolezitejsie prepinace *:
-c kazdy riadok sa rozsiri o pocet vyskytov daneho riadku, ktory sa vlozi na zaciatok riadka a bude nasledovany medzerou a samotnym textom riadku.
-d zobrazia sa iba riadky, ktore sa opakuju
-u zobrazia sa iba riadky, ktore sa vo vstupe neopakuju
-i nerozlisuju sa velke a male pismena
* pre dalsie prepinace pozri manualy ("man uniq")
Priklady:
cat text1 | sort | uniq –c vypise sa obsah suboru text1, pricom ziadny z riadkov sa nebude opakovat. Kazdy riadok sa na vystupe bude zacinat poctom vyskytov v subore text1
file - Zistenie typu suboru
Syntax:
file [file ...]
Prikaz file sa pokusa identifikovat format suborov uvedenych v zozname na prikazovom riadku. Pretoze nie vsetky subory maju priponu charakterizujucu format suboru, pokusa sa prikaz file previest niektore zakladne testy a tak odhadnut, o aky subor ide. Prikaz file rozoznava tri zakladne skupiny suborov. Textove subory, ktore obsahuju iba ASCII znaky a teda mozu byt bezpecne prezerane na ASCII terminaly. Spustitelne subory, obsahujuce hlavicku charakteristicku pre UNIXove, alebo ine systemy. A nakoniec datove subory, co su vsetky ostatne subory. Prikaz file sa snazi toto zakladne rozdelenie obohatit o vcelku podrobny popis typov suborov (vid. priklad).
Zoznam prepinacov sa nachadza v manualoch ("man file")
/temp# file *
pripravne_08c.c: ASCII C program text
putty.exe: MS-DOS executable (EXE), OS/2 or MS Windows
search01: C shell script text executable
readme ASCII text
4.7-disc1.iso: ASCII text, with no line terminators
work: directory
index-4.html: HTML document text
projectOS.bz2: bzip2 compressed data, block size = 500k
index.docbook: XML document text
logotp3.gif: GIF image data, version 89a, 102 x 27,
screenshot.png: PNG image data, 298 x 102, 8-bit/color RGB, non-interlaced
svd.pdf: PDF document, version 1.3
archiv.tgz: gzip compressed data, deflated, last modified: Fri Dec 6 18:26:21 2002, os: Unix
priklad ukazuje funkcionalitu prikazu file, pricom treba podotknut, ze tento nastroj nie je vzdy neomylny. Napriklad subor 4.7-disc1.iso je v skutocnosti subor binarny (ISO image).
cut - Vyber casti riadkov zo suborov
Syntax:
cut [-b] list [file ...]
cut [-c] list [file ...]
cut [-f] list [file ...]
Prikaz cut sluzi na vyber roznych casti riadkov zo zvolenych suborov, pricom ich zapise na standardny vystup. Prvky obsiahnute v zozname list predstavuju pozicie stlpcov, alebo pozicie poli oddelenych tabulatorom. Cislovanie stlpcov sa zacina cislom 1.
list je zoznam cisel, alebo rozsahov cisel (napr. 1-3), oddelenych ciarkou. Cislu moze predchadzat pomlcka, co znaci, ze sa budu brat vsetky znaky od zaciatku riadku az po cislo stlpca, ktore je za pomlckou. Ak sa vlozi pomlcka za cislo, vyberu sa vsetky znaky od daneho stlpca az po koniec riadku. Rozsahy sa mozu prekryvat, alebo opakovat.
Hlavne prepinace:
-b list obsah zoznamu list predstavuje pozicie bajtov
-c list obsah zoznamu list predstavuje pozicie znakov
-f list obsah zoznamu list predstavuje pozicie poli oddelenych tabulatorom
Priklady:
Majme subor foo s nasledovnym obsahom:
123456
abc d ef
/home/work #cut -c 2,4- foo
2456
b d ef zo suboru foo sa vyberie stlpec 2 a stlpce od cisla 4 az po koniec, pricom jednotlive stlpce su delene podla pozicie znakov.
paste - Spajanie korespondujucich riadkov suborov
Syntax:
paste [-s] [-d list] file
Prikaz paste sluzi na spajanie korespondujucich riadkov zadanych suborov, pricom nahradzuje vsetky znaky noveho riadku (okrem posledneho suboru) znakom tabulator. Vystup sa zapisuje na standardny vystup. Ak paste narazi na koniec jedneho suboru zatialco ostatne subory este obsahuju data, subor sa berie ako by obsahoval prazdne riadky.
Mozne prepinace:
-d list umozni pouzit ine znaky ako znak tabulatoru na nahradu za znak noveho riadku v suboroch. Cez list sa prechadza cyklicky od prveho znaku po posledny. Ak sa pride na koniec zoznamu list, zacne sa znova od zaciatku zoznamu. Toto pokracuje az kym sa pride na riadok z posledenho suboru (default pouzitie), alebo sa pride na koniec kazdeho zo vstupnych suborov (pouzitie prepinaca -s), kedy paste zacne vyberat znaky opat od zaciatku zoznamu.
V zozname sa mozu pouzit aj tieto specialne znaky:
\n novy riadok
\t tabulator
\\ backslash
\0 prazdny retazec
Kazdy znak pred ktorym sa pouzije backslash predstavuje prave ten znak.
-s spoji vsetky riadky vstupnych suborov zvlast
Priklady:
Majme tri subory s1, s2 a s3 s nasledovnym obsahom:
s1 s2 s3
1 1 1 a a # #
2 2 2 b b * *
c c
/home/work # paste -d AB s1 s2 s3
1 1 1Aa aB# #
2 2 2Ab bB* *
Ac cB na nahradu znaku noveho riadku sa pouziju znaky A a B
/home/work # paste -s -d '\ \\' s1 s2 s3
1 1 1 2 2 2
a a b b\c c
# # * * nahradzuju sa znaky novych riadkov postupne po suboroch (kvoli pouzitu prapinaca -s) znakmi medzera a '\'. Kedze subor s1 ma len dva riadky pouzije sa v nom na nahradzovanie iba medzera. s2 ma tri riadky a tak sa pouzije znak medzera a aj znak '\'.
4 – Príkazy pre prácu s adresármi
cd - Zmena adresara
ls - Zobrazenie obsahu adresara
pwd - Zistenie pracovneho adresara
mkdir - Vytvorenie adresarov
rmdir - Odstranenie adresara
find - Vyhladavanie (ako suborov tak aj adresarov podla zvolenej podmienky)
cd - Zmena adresara [z ang. Change Directory]
Syntax:
cd [directory]
Prikaz cd nie je prikazom unixu, ale internym prikazom shellu. Kedze je vsak tento prikaz velmi dolezity, bol zaradeny do tohoto prehladu unixovych prikazov.
Ak je prikaz cd zadany bez argumentov, zmeni sa aktualny adresar na domovsky adresar. Inak sa aktualny adresar zmeni na adresar uvedeny v argumente.
Priklady:
/home# cd
/home/larry# cd /usr/local/bin
/usr/local/bin# cd ..
/usr/local#
prvym prikazom cd sa pouzivatel "larry" dostane spat do svojho domovskeho adresara "/home/larry". Druhym prikazom sa dostane do adresara "/usr/local/bin". Poslednym prikazom sa dostane o uroven vyssie do rodicovskeho adresara adresara "/usr/local/bin".
/usr/local# cd ~/work
/home/larry/work#
symbol ~ predstavuje domovsky adresar pouzivatela "larry" (teda /home/larry ), takze je mozne tento symbol vyuzit na rychly prechod do podadresara, alebo pristup k suboru, ktory sa nachadza v domovskom adresari pouzivatela "larry".
ls - Zobrazenie obsahu adresara [z ang. LiSt]
Syntax:
ls [-LRTacilrtu1] [file ...]
Prikaz ls pre kazdy operand file zobrazi meno suboru a vsetky pozadovane informacie o nom, ak nejde o adresar. Pre vsetky operandy, ktore su adresare ls vypise vsetky subory, ktore sa v nich nachadzaju aj so vsetkymi pozadovanymi informaciami.
Ak nie je zadany ziaden operand, ls vypise obsah aktualneho adresara.
Najdolezitejsie prepinace *:
-L ak argumentom je symbolicka linka, zobrazia sa informacie o subore, alebo adresari na ktory linka ukazuje, a nie o linke samotnej
-R prechadza rekurzivne cez adresare
-T zobrazi vsetky casove informacie o subore vratane mesiaca, dna, hodiny, minuty, sekundy a roku
-a vypise vsetky subory, vratane adresarov zacinajucich '.'
-c zoradi vypis suborov podla casu zmeny stavu suboru
-i vypise subory aj s cislom i-uzla
-l vypis v rozsirenom formate. Vypis vacsieho poctu informacii o subore
-r obrati poradie vypisu
-t zoradi vypis suborov podla casu modifikacie. Ak je zadany parameter -u, tak sa zoradia podla casu pristupu k suborom.
-u pouzije sa cas posledneho pristupu k suborom, miesto casu modifikacie.
* pre dalsie prepinace pozri manualy ("man ls")
Priklady:
ls -l | sort +4 zobrazi subory z aktualneho adresara aj s informaciami o nich a zoradi ich podla velkosti (stvrty stlpec vypisu ls je velkost)
ls *.txt vypisu sa vsetky subory z aktualneho adresara konciace ".txt"
pwd - Zistenie pracovneho adresara [z ang. Print Working Directory]
Syntax:
pwd
Prikaz pwd vypise absolutnu cestu sucasneho pracovneho adresara na standardny vystup
mkdir - Vytvorenie adresarov [z ang. Make Directory]
Syntax:
mkdir directory1 [directory2 ...]
Prikaz mkdir vytvori adresare s nazvom ako su zadane operandy.
Priklady:
/home/larry# ls
/home/larry# mkdir mydir
/home/larry# ls
mydir
/home/larry# cd mydir
/home/larry/mydir#
vytvorenie adresara "mydir" v adresari "/home/larry". Prikaz ls nezobrazi najprv ziadne polozky. Po vytvoreni adresara "mydir", prikaz ls zobrazi jednu polozku (novovytvoreny adresar).
rmdir - Odstranenie adresara [z ang. Remove Directory]
Syntax:
rmdir directory1 [directory2 ...]
Prikaz rmdir je opakom prikazu mkdir. Sluzi na odstranenie vsetkych adresarov zadanych ako argumenty. Prikaz rmdir odstrani adresare iba za podmienky, ze su prazdne.
Priklady:
/home/larry# ls
mydir
/home/larry# rmdir mydir
/home/larry# ls
/home/larry#
prikaz ls najprv ukazuje adresar "mydir", po pouziti prikazu rmdir je uz adresar odstraneny, co potvrdi aj nulovy vypis prikazu ls.
find - Vyhladavanie
Syntax:
find [pathname ...] expression
Prikaz find rekurzivne prechadza adresarmi pre kazdy pathname, pricom vyhodnocuje expression pre kazdy najdeny subor. Expressions su vyrazy, ktore sa vyhodnocuju na true ak su splnene.
Najdolezitejsie expressions:
-exec utility [argument ...]\;
true ak program s menom utility vrati hodnotu