Základní příkazy Unixu: Porovnání verzí

Z Milan Kerslager
Přejít na: navigace, hledání
(Založení článku)
 
m (Úprava formátování)
Řádka 1: Řádka 1:
 
== Příkazy pro práci s adresáři ==
 
== Příkazy pro práci s adresáři ==
ls [cesta]
+
 
 +
;ls [cesta]:
 
* výpis obsahu adresáře
 
* výpis obsahu adresáře
 
* přepínače:
 
* přepínače:
 
** <TT>-a</TT> vypíše všechny soubory v adresáři včetně souborů, které začínají tečkou (tzv. skryté soubory)  
 
** <TT>-a</TT> vypíše všechny soubory v adresáři včetně souborů, které začínají tečkou (tzv. skryté soubory)  
** -l dlouhý výpis (včetně práv, počet hardlinek, vlastníka, skupiny, délky, času poslední modifikace)  
+
** <TT>-l</TT> dlouhý výpis (včetně práv, počet hardlinek, vlastníka, skupiny, délky, času poslední modifikace)  
** -t setřídí výpis podle data poslední modifikace, od nejnovějších ke starším  
+
** <TT>-t</TT> setřídí výpis podle data poslední modifikace, od nejnovějších ke starším  
** -u setřídí výpis podle času posledního přístupu k souboru, od nejnovějších ke starším  
+
** <TT>-u</TT> setřídí výpis podle času posledního přístupu k souboru, od nejnovějších ke starším  
** -r opačný způsob třídění  
+
** <TT>-r</TT> opačný způsob třídění  
** -F přidat znak k souborům určující jejich typ, normálním nic (spustitelný*, adresář/, symbolická linky@, FIFO|, socket=)  
+
** <TT>-F</TT> přidat znak k souborům určující jejich typ, normálním nic (spustitelný*, adresář/, symbolická linky@, FIFO|, socket=)  
** -R rekurzivní výpis podadresářů  
+
** <TT>-R</TT> rekurzivní výpis podadresářů  
** -L vypsat soubor, na který ukazuje linka místo linky samotné (kombinace -RL jde i za linky)  
+
** <TT>-L</TT> vypsat soubor, na který ukazuje linka místo linky samotné (kombinace -RL jde i za linky)  
** -d vypíše adresáře jako ostaní soubory místo jejich obsahu  
+
** <TT>-d</TT> vypíše adresáře jako ostaní soubory místo jejich obsahu  
** -f netřídit obsah adresáře  
+
** <TT>-f</TT> netřídit obsah adresáře  
** -i vypíše číslo i-nodu každého souboru  
+
** <TT>-i</TT> vypíše číslo i-nodu každého souboru  
  
mkdir [adresář]
+
;mkdir [adresář]:
 
* vytvoření adresáře
 
* vytvoření adresáře
 
* přepínače:
 
* přepínače:
** -p rekurzivní vytváření (více adresářů najednou)  
+
** <TT>-p</TT> rekurzivní vytváření (více adresářů najednou)  
  
rmdir [adresář]
+
;rmdir [adresář]:
 
* smazání adresáře
 
* smazání adresáře
 
* adresář musí být prázdný (mazání neprázdných adresářů - viz: rm -r)  
 
* adresář musí být prázdný (mazání neprázdných adresářů - viz: rm -r)  
  
cd [adresář]
+
;cd [adresář]:
 
* změna aktuálního adresáře
 
* změna aktuálního adresáře
 
* bez parametru přepne do domácího adresáře
 
* bez parametru přepne do domácího adresáře
* cd - přepne do adresáře, ve kterém jsme byli naposledy (krok zpět)
 
* cd ~/dir označuje adresář dir ve vlastním domácím adresáři
 
* cd ~huzva označuje domácí adresář uživatele se jménem huzva
 
  
pwd
+
cd -      přepne do adresáře, ve kterém jsme byli naposledy (krok zpět)
 +
cd ~/dir  označuje adresář dir ve vlastním domácím adresáři
 +
cd ~huzva  označuje domácí adresář uživatele se jménem huzva
 +
 
 +
;pwd:
 
* výpis aktuálního adresáře  
 
* výpis aktuálního adresáře  
  
du
+
;du:
 
* vypíše obsazený prostor (výsledek v kB)
 
* vypíše obsazený prostor (výsledek v kB)
 
* přepínače
 
* přepínače
** -s spočítat jen výsledek za celý podstrom adresářů  
+
** <TT>-s</TT> spočítat jen výsledek za celý podstrom adresářů  
** -h výstup v jednotkách (kB, MB, GB apod.)  
+
** <TT>-h</TT> výstup v jednotkách (kB, MB, GB apod.)  
  
 
== Příkazy pro práci se soubory ==
 
== Příkazy pro práci se soubory ==
cp [soubor1] [cílové_jméno]
+
;cp [soubor1] [cílové_jméno]
cp [soubor1] [soubor2] [soubor3] ... [cílový adresář]
+
;cp [soubor1] [soubor2] [soubor3] ... [cílový adresář]:
 
* kopírování souboru(ů), cíl musí být vždy uveden (tečka označuje aktuální adresář)
 
* kopírování souboru(ů), cíl musí být vždy uveden (tečka označuje aktuální adresář)
 
* přepínače:
 
* přepínače:
** -r rekurzivní kopírování podadresářů  
+
** <TT>-r</TT> rekurzivní kopírování podadresářů  
** -i interaktivní (při přepisu souboru se ptá)  
+
** <TT>-i</TT> interaktivní (při přepisu souboru se ptá)  
** -a zachovává čas, vlastníka, skupinu, přístupová práva (používá se k archivaci)  
+
** <TT>-a</TT> zachovává čas, vlastníka, skupinu, přístupová práva (používá se k archivaci)  
  
mv [původní_jméno] [nové_jméno]
+
;mv [původní_jméno] [nové_jméno]:
 
* přejmenování souboru a jeho případný přesun
 
* přejmenování souboru a jeho případný přesun
 
* přesouvat adresáře lze jen v rámci jednoho filesystému (jednoho oddílu, resp. partition - jinak je nutné soubory kopírovat)  
 
* přesouvat adresáře lze jen v rámci jednoho filesystému (jednoho oddílu, resp. partition - jinak je nutné soubory kopírovat)  
  
rm [soubor]
+
;rm [soubor]:
 
* smazání souboru
 
* smazání souboru
 
* přepínače:
 
* přepínače:
** -i interaktivní (každé mazání bude vyžadovat souhlas uživatele)  
+
** <TT>-i</TT> interaktivní (každé mazání bude vyžadovat souhlas uživatele)  
** -f na nic se neptej a mazej  
+
** <TT>-f</TT> na nic se neptej a mazej  
** -r rekurzivní mazání včetně podadresářů  
+
** <TT>-r</TT> rekurzivní mazání včetně podadresářů  
* Poznámka:<BR>
+
 
SMRTELNÉ: rm -r .* (vyhoví i dvě tečky - příkaz maže i v nadřízených adresářích)<BR>
+
SMRTELNÉ: rm -r .* (vyhoví i dvě tečky - příkaz maže i v nadřízených adresářích)
SPRÁVNĚ: rm -r .[^.]*
+
  SPRÁVNĚ: rm -r .[^.]*
  
hexdump [soubor]
+
;hexdump [soubor]:
 
* hexadecimální výpis bajtů v souboru
 
* hexadecimální výpis bajtů v souboru
 
* přepínače:
 
* přepínače:
** -C kromě hexadecimálního výstupu vypíše i ASCII reprezentaci znaků (kromě řídících znaků)  
+
** <TT>-C</TT> kromě hexadecimálního výstupu vypíše i ASCII reprezentaci znaků (kromě řídících znaků)  
 +
 
  
 
== Textové utility ==
 
== Textové utility ==
  
cat [soubor]
+
;cat [soubor]:
 
* vypsání obsahu souboru  
 
* vypsání obsahu souboru  
  
tac [soubor]
+
;tac [soubor]:
 
* vypsání obsahu souboru s obráceným pořadím řádků  
 
* vypsání obsahu souboru s obráceným pořadím řádků  
  
head [soubor]
+
;head [soubor]:
 
* výpis začátku souboru (stadardně 10 řádků)
 
* výpis začátku souboru (stadardně 10 řádků)
 
* přepínače:
 
* přepínače:
Řádka 82: Řádka 85:
 
** <TT>-c číslo</TT> počet vypsaných bajtů od začátku souboru  
 
** <TT>-c číslo</TT> počet vypsaných bajtů od začátku souboru  
  
tail [soubor]
+
;tail [soubor]:
 
* výpis konce souboru (stadardně 10 řádků)
 
* výpis konce souboru (stadardně 10 řádků)
 
* přepínače:
 
* přepínače:
** -číslo počet vypsaných řádků od konce souboru  
+
** <TT>-číslo</TT> počet vypsaných řádků od konce souboru  
** -cčíslo počet vypsaných bajtů od konce souboru  
+
** <TT>-cčíslo</TT> počet vypsaných bajtů od konce souboru  
** -f na konci souboru čekej a zobrazuj přírustky  
+
** <TT>-f</TT> na konci souboru čekej a zobrazuj přírustky  
  
file [soubor]
+
;file [soubor]:
 
* určí typ souboru podle jeho obsahu (spustitelný, GIF, ZIP, text, prázdný, linka, ...)
 
* určí typ souboru podle jeho obsahu (spustitelný, GIF, ZIP, text, prázdný, linka, ...)
* definice typů je v souboru /etc/magic  
+
* definice typů je v souboru <TT>/etc/magic</TT>
  
stat [soubor]
+
;stat [soubor]:
 
* vypíše obsah inodu (vlastník, poslední změna souboru a inodu, velikost, přístupová práva, atd.)  
 
* vypíše obsah inodu (vlastník, poslední změna souboru a inodu, velikost, přístupová práva, atd.)  
  
strings [soubor]
+
;strings [soubor]:
 
* vypíše řetězce z binárního souboru  
 
* vypíše řetězce z binárního souboru  
  
wc [soubor]
+
;wc [soubor]:
 
* vypíše počet řádků, slov a písmen v souboru
 
* vypíše počet řádků, slov a písmen v souboru
 
* přepínače:
 
* přepínače:
** -l počet řádků  
+
** <TT>-l</TT> počet řádků  
** -w počet slov  
+
** <TT>-w</TT> počet slov  
** -c počet znaků  
+
** <TT>-c</TT> počet znaků  
  
touch [soubor]
+
;touch [soubor]:
 
* mění datum poslední modifikace souboru
 
* mění datum poslední modifikace souboru
 
* když soubor neexistuje, je vytvořen nový s nulovou délkou
 
* když soubor neexistuje, je vytvořen nový s nulovou délkou
 
* přepínače:
 
* přepínače:
** -t MMDDhhmm[[SS]RR][.ss] použít tento čas  
+
** <TT>-t MMDDhhmm[[SS]RR][.ss]</TT> použít tento čas  
  
cut [soubor]
+
;cut [soubor]:
 
* vertikální řez souborem
 
* vertikální řez souborem
 
* přepínače:
 
* přepínače:
** -bpozice pozice vyříznutí podle sloupců počítáno od 1  
+
** <TT>-bpozice</TT> pozice vyříznutí podle sloupců počítáno od 1  
** -fpoložky položky (implicitní oddělovač je tabelátor)  
+
** <TT>-fpoložky</TT> položky (implicitní oddělovač je tabelátor)  
** -dznak definuje znak jako oddělovač položek (tj. jiný, než tabelátor)  
+
** <TT>-dznak</TT> definuje znak jako oddělovač položek (tj. jiný, než tabelátor)  
 
* tvar seznamu položek (pozic):
 
* tvar seznamu položek (pozic):
** 2-5 druhá až pátá položka (pozice)  
+
** <TT>2-5</TT> druhá až pátá položka (pozice)  
** -5 první až pátá položka (pozice)  
+
** <TT>-5</TT> první až pátá položka (pozice)  
** 1,7 první a sedmá položka  
+
** <TT>1,7</TT> první a sedmá položka  
  
nl [soubor]
+
;nl [soubor]:
 
* očíslovat řádky souboru (výstupu)  
 
* očíslovat řádky souboru (výstupu)  
  
join [soubor1] [soubor2]
+
;join [soubor1] [soubor2]:
 
* tiskne na výstup odpovídající řádky obou souborů podle společné identifikace
 
* tiskne na výstup odpovídající řádky obou souborů podle společné identifikace
 
* přepínače:
 
* přepínače:
** -1 sloupec z prvního souboru slučovat podle identifikace ze zadaného sloupce  
+
** <TT>-1</TT> sloupec z prvního souboru slučovat podle identifikace ze zadaného sloupce  
** -2 sloupec z druhého souboru slučovat podle identifikace ze zadaného sloupce  
+
** <TT>-2</TT> sloupec z druhého souboru slučovat podle identifikace ze zadaného sloupce  
** -t oddělovač použít jiný oddělovač v vstupních a výstupních souborech  
+
** <TT>-t</TT> oddělovač použít jiný oddělovač v vstupních a výstupních souborech  
  
find [adresář] [podmínka] [operace]
+
;find [adresář] [podmínka] [operace]:
 
* rekurzivní prohledávání stromu adresářů a souborů
 
* rekurzivní prohledávání stromu adresářů a souborů
 
* podmínka:
 
* podmínka:
** -name soubor nalezení souboru dle jména. Lze použít metaznaky *,?,[], musí však být uzavřeny do apostrofů nebo uvozovek nebo uvozeny zpětným lomítkem, aby byly interpretovány příkazem find a ne expandovány shellem. Varianta -iname soubor ignoruje velká/malá písmena  
+
** <TT>-name</TT> soubor nalezení souboru dle jména. Lze použít metaznaky *,?,[], musí však být uzavřeny do apostrofů nebo uvozovek nebo uvozeny zpětným lomítkem, aby byly interpretovány příkazem find a ne expandovány shellem. Varianta -iname soubor ignoruje velká/malá písmena  
** -user jméno hledá se soubor, jehož vlastníkem je uživatel jméno  
+
** <TT>-user</TT> jméno hledá se soubor, jehož vlastníkem je uživatel jméno  
** -type typ hledá soubory daného typu, kde typ nabývá hodnoty:
+
** <TT>-type</TT> typ hledá soubory daného typu, kde typ nabývá hodnoty:
*** f obyčejný soubor  
+
*** <TT>f</TT> obyčejný soubor  
*** d adresář  
+
*** <TT>d</TT> adresář  
*** l linka  
+
*** <TT>l</TT> linka  
** -atime n hledají se soubory, ke kterým bylo před n dny naposledy přistupováno  
+
** <TT>-atime n</TT> hledají se soubory, ke kterým bylo před n dny naposledy přistupováno  
** -mtime n hledají se soubory, do kterých byl před n dny proveden poslední zápis  
+
** <TT>-mtime n</TT> hledají se soubory, do kterých byl před n dny proveden poslední zápis  
** -links n hledá se soubor se specifikovaným počtem odkazů (linků)  
+
** <TT>-links n</TT> hledá se soubor se specifikovaným počtem odkazů (linků)  
** -size n hledají se soubory o velikosti n jednotek, kde jednotka je standardně 512 bajtů nebo se dá určit písmenem, které následuje těsně za číslem:
+
** <TT>-size n</TT> hledají se soubory o velikosti n jednotek, kde jednotka je standardně 512 bajtů nebo se dá určit písmenem, které následuje těsně za číslem:
*** c v bajtech  
+
*** <TT>c</TT> v bajtech  
*** k v kilobajtech  
+
*** <TT>k</TT> v kilobajtech  
** -a operátor logického sočinu ("a")  
+
** <TT>-a</TT> operátor logického součinu ("a")  
** -o operátor logického součtu ("nebo")  
+
** <TT>-o</TT> operátor logického součtu ("nebo")  
** ! negace  
+
** <TT>!</TT> negace  
 
* pokud je před číselným výrazem (výše označeno jako n) uveden znak + (plus), znamená to že se budou hledat soubory, u nichž kritérium přesahuje danou hodnotu. Pokud je před číselným výrazem znak - (mínus), budou se hledat soubory s kritériem nedosahujícím danou hodnotu.
 
* pokud je před číselným výrazem (výše označeno jako n) uveden znak + (plus), znamená to že se budou hledat soubory, u nichž kritérium přesahuje danou hodnotu. Pokud je před číselným výrazem znak - (mínus), budou se hledat soubory s kritériem nedosahujícím danou hodnotu.
 
* operace:
 
* operace:
** -print zobrazení jmen souborů, které byly vybrány (GNU find nalezené soubory zobrazuje i bez tohoto parametru)  
+
** <TT>-print</TT> zobrazení jmen souborů, které byly vybrány (GNU find nalezené soubory zobrazuje i bez tohoto parametru)  
** -exec příkaz se soubory vybranými podle kritéria bude proveden uvedený příkaz, ve kterém znaky {} reprezentují jméno vybraného souboru, text příkazu musí být ukončen mezerou, zpětným lomítkem a středníkem  \;
+
** <TT>-exec příkaz</TT> se soubory vybranými podle kritéria bude proveden uvedený příkaz, ve kterém znaky {} reprezentují jméno vybraného souboru, text příkazu musí být ukončen mezerou, zpětným lomítkem a středníkem  \;
 +
 
 +
find /proc -name \*conn\* -exec cat {} \; 2> /dev/null
  
Příklad: find /proc -name \*conn\* -exec cat {} \; 2> /dev/null
 
  
 
== Filtry ==
 
== Filtry ==
  
less [soubor] ...
+
;less [soubor] ...:
 
* vstup opisuje na výstup po stránkách, lepší a novější varianta příkazu more
 
* vstup opisuje na výstup po stránkách, lepší a novější varianta příkazu more
 
* název je slovní hříčka: program méně umí více, než program více, který toho umí méně, než program méně (more znamená anglicky více a less znamená méně)
 
* název je slovní hříčka: program méně umí více, než program více, který toho umí méně, než program méně (more znamená anglicky více a less znamená méně)
 
* ovládací klávesy:
 
* ovládací klávesy:
** mezera posun o stránku vpřed  
+
** <TT>mezera</TT> posun o stránku vpřed  
** b posun o stránku zpět  
+
** <TT>b</TT> posun o stránku zpět  
** q konec programu  
+
** <TT>q</TT> konec programu  
** :n skočí na následující soubor uvedený na příkazové řádce  
+
** <TT>:n</TT> skočí na následující soubor uvedený na příkazové řádce  
** /řetězec hledat řetězec směrem dopředu  
+
** <TT>/řetězec</TT> hledat řetězec směrem dopředu  
** ?řetězec hledat řetězec směrem dozadu  
+
** <TT>?řetězec</TT> hledat řetězec směrem dozadu  
** n hledat další výskyt řetězce (v původním směru hledání)  
+
** <TT>n</TT> hledat další výskyt řetězce (v původním směru hledání)  
** N hledat další výskyt řetězce v opačném směru, než bylo zadáno původní hledání  
+
** <TT>N</TT> hledat další výskyt řetězce v opačném směru, než bylo zadáno původní hledání  
** F čeká a zobrazuje přírustky v souboru - obdoba příkazu tail -f soubor  
+
** <TT>F</TT> čeká a zobrazuje přírustky v souboru - obdoba příkazu tail -f soubor  
  
dos2unix
+
;dos2unix:
 
* provádí konverzi DOSového formátu konce řádku - znaky CR (Carriage Return - návrat vozíku tiskárny, kód 0x0D hexadecimálně, resp. 13 decimálně) a LF (Line Feed - posun papíru v tiskárně o jeden řádek, tj. 0x0A hexadecimálně, resp. 10 decimálně) do formátu konce řádků v Unixu (jen znak CR)
 
* provádí konverzi DOSového formátu konce řádku - znaky CR (Carriage Return - návrat vozíku tiskárny, kód 0x0D hexadecimálně, resp. 13 decimálně) a LF (Line Feed - posun papíru v tiskárně o jeden řádek, tj. 0x0A hexadecimálně, resp. 10 decimálně) do formátu konce řádků v Unixu (jen znak CR)
  Příklad: dos2unix soubor.txt
+
  dos2unix soubor.txt
  Příklad: dos2unix < soubor.dos > soubor.unx  
+
  dos2unix < soubor.dos > soubor.unx  
  
unix2dos
+
;unix2dos:
 
* provádí konverzi z Unixového formátu konce řádku (znak LF) na formát DOSu (znaky CR a LF)  
 
* provádí konverzi z Unixového formátu konce řádku (znak LF) na formát DOSu (znaky CR a LF)  
  
tee [soubor]
+
;tee [soubor]:
 
* filtr - opisuje vstup do souboru a zároveň na obrazovku
 
* filtr - opisuje vstup do souboru a zároveň na obrazovku
 
* přepínače:
 
* přepínače:
** -a nový text se připojí na konec souboru  
+
** <TT>-a</TT> nový text se připojí na konec souboru  
  
sort [+číslo] [přepínače] [soubor]
+
;sort [+číslo] [přepínače] [soubor]:
 
* filtr - třídění vstupu
 
* filtr - třídění vstupu
 
* přepínače:
 
* přepínače:
** -n setřídění numerické (pokud jsou číselné hodnoty)  
+
** <TT>-n</TT> setřídění numerické (pokud jsou číselné hodnoty)  
** -r setřídění sestupné  
+
** <TT>-r</TT> setřídění sestupné  
** -b ignorovat počáteční mezery  
+
** <TT>-b</TT> ignorovat počáteční mezery  
** -f nebudou se rozlišovat malá a velká písmena (velká písmena jsou převáděna na malá)  
+
** <TT>-f</TT> nebudou se rozlišovat malá a velká písmena (velká písmena jsou převáděna na malá)  
** -k číslo určuje sloupec, od kterého se posuzuje pořadí při třídění (číslovány od 1)
+
** <TT>-k</TT> číslo určuje sloupec, od kterého se posuzuje pořadí při třídění (číslovány od 1)
** -k číslo1,číslo2 určuje rozsah sloupců pro třídění
+
** <TT>-k</TT> číslo1,číslo2 určuje rozsah sloupců pro třídění
** -tznak určení znaku, který odděluje jednotlivé sloupce  
+
** <TT>-tznak</TT> určení znaku, který odděluje jednotlivé sloupce  
** -u z výstupního souboru budou vyloučeny duplicitní řádky (pro posouzení duplicit se porovnávají pouze klíče)  
+
** <TT>-u</TT> z výstupního souboru budou vyloučeny duplicitní řádky (pro posouzení duplicit se porovnávají pouze klíče)  
  
uniq [paramery] [soubor]
+
;uniq [paramery] [soubor]:
 
* filtr - odstraňuje duplicitní řádky ze setříděného vstupu
 
* filtr - odstraňuje duplicitní řádky ze setříděného vstupu
 
* přepínače:
 
* přepínače:
** -číslo přeskočí se zadaný počet řádků od začátku  
+
** <TT>-číslo</TT> přeskočí se zadaný počet řádků od začátku  
** -u budou se vypisovat pouze řádky, které nejsou duplicitní  
+
** <TT>-u</TT> budou se vypisovat pouze řádky, které nejsou duplicitní  
** -d budou se vypisovat pouze řádky, které jsou duplicitní  
+
** <TT>-d</TT> budou se vypisovat pouze řádky, které jsou duplicitní  
** -c na začátku každého řádku se vypíše počet výskytů  
+
** <TT>-c</TT> na začátku každého řádku se vypíše počet výskytů  
  
grep [výraz] [soubor]
+
;grep [výraz] [soubor]:
 
* hledá výraz v souboru a vypisuje řádky, které ho obsahují
 
* hledá výraz v souboru a vypisuje řádky, které ho obsahují
 
* přepínače:
 
* přepínače:
** -c vypíše počet řádků, ve kterých byl nalezen vzor  
+
** <TT>-c</TT> vypíše počet řádků, ve kterých byl nalezen vzor  
** -i ignoruje rozdíly mezi malými a velkými písmeny  
+
** <TT>-i</TT> ignoruje rozdíly mezi malými a velkými písmeny  
** -l zobrazuje pouze jména souborů, ve kterých byl nalezen vzor  
+
** <TT>-l</TT> zobrazuje pouze jména souborů, ve kterých byl nalezen vzor  
** -n zobrazí čísla řádků obsahujících vzor  
+
** <TT>-n</TT> zobrazí čísla řádků obsahujících vzor  
** -s potlačen chybový výstup  
+
** <TT>-s</TT> potlačen chybový výstup  
** -v vypíše řádky neobsahující vzor  
+
** <TT>-v</TT> vypíše řádky neobsahující vzor  
** -r rekurzivní hledání v podadresářích  
+
** <TT>-r</TT> rekurzivní hledání v podadresářích  
** -q nalezený řádek se nevypisuje - používá se např. v testech ve skriptech, kde jen testujeme návratový kód, tj. nalezeno - pravda (0), nenalezeno - nepravda (1)  
+
** <TT>-q</TT> nalezený řádek se nevypisuje - používá se např. v testech ve skriptech, kde jen testujeme návratový kód, tj. nalezeno - pravda (0), nenalezeno - nepravda (1)  
 
* při specifikaci hledaného řetězce lze použít regulární výraz, ve kterém lze použít následující speciální znaky (doporučuji zapisovat regulární výraz do uvozovek či apostrofů):
 
* při specifikaci hledaného řetězce lze použít regulární výraz, ve kterém lze použít následující speciální znaky (doporučuji zapisovat regulární výraz do uvozovek či apostrofů):
  
          ^  začátek řádku  
+
^  začátek řádku  
          $  konec řádku  
+
$  konec řádku  
          .  libovolný znak  
+
.  libovolný znak  
          *  libovolný počet opakování předchozího znaku  
+
*  libovolný počet opakování předchozího znaku  
          [] právě jeden znak z množiny znaků uvedených v těchto závorkách, při specifikaci lze použít následující dva speciální znaky:
+
[] právě jeden znak z množiny znaků uvedených v těchto závorkách, při specifikaci lze použít následující dva speciální znaky:
          -  používá se pro označení intervalu znaků z množiny ASCII (např. a-z, 0-9)  
+
-  používá se pro označení intervalu znaků z množiny ASCII (např. a-z, 0-9)  
          ^  negace výčtu znaků  
+
^  negace výčtu znaků  
          \  potlačení speciálního významu následujícího znaku  
+
\  potlačení speciálního významu následujícího znaku  
 +
 
 +
Příklady regulárních výrazů:
  
          Příklady regulárních výrazů:
+
^#        řádky začínající znakem křížek (hash)
 +
^$        prázdné řádky
 +
^.$        řádky obsahující právě jeden znak
 +
^[a-z]*$  řádky obsahující pouze malá písmena
 +
\.[0-9]    výraz označuje tečku následovanou číslicí
  
          ^#        řádky začínající znakem křížek (hash)
 
          ^$        prázdné řádky
 
          ^.$        řádky obsahující právě jeden znak
 
          ^[a-z]*$  řádky obsahující pouze malá písmena
 
          \.[0-9]    výraz označuje tečku následovanou číslicí
 
  
 
== Porovnávání souborů ==
 
== Porovnávání souborů ==
cmp
+
 
 +
;cmp:
 
* porovnává dva soubory po jednotlivých bajtech, ohlásí první rozdílný bajt
 
* porovnává dva soubory po jednotlivých bajtech, ohlásí první rozdílný bajt
 
* přepínače:
 
* přepínače:
** -s potlačení výstupu o nalezených odchylkách  
+
** <TT>-s</TT> potlačení výstupu o nalezených odchylkách  
  
diff soubor1 soubor2
+
;diff soubor1 soubor2:
 
* porovnává dva soubory po jednotlivých řádcích a hledá rozdíly mezi nimi
 
* porovnává dva soubory po jednotlivých řádcích a hledá rozdíly mezi nimi
 
* vypisuje změněné řádky, výstup se používá jako vstup pro program patch
 
* vypisuje změněné řádky, výstup se používá jako vstup pro program patch
 
* přepínače:
 
* přepínače:
** -u unifikovaný výstup (používá se nejčastěji, modifikované řádky jsou odlišeny znaky plus a mínus, které vyjadřují, zda byl řádek smazán nebo přidán; změněné řádky jsou obklopeny původními,aby se při použití programu patch poznalo, je-li zpracovávaný soubor ve stavu, který byl zachycen programem diff)  
+
** <TT>-u</TT> unifikovaný výstup (používá se nejčastěji, modifikované řádky jsou odlišeny znaky plus a mínus, které vyjadřují, zda byl řádek smazán nebo přidán; změněné řádky jsou obklopeny původními,aby se při použití programu patch poznalo, je-li zpracovávaný soubor ve stavu, který byl zachycen programem diff)  
** -r rekurzivní běh  
+
** <TT>-r</TT> rekurzivní běh  
** -N zahrnuty i nové soubory  
+
** <TT>-N</TT> zahrnuty i nové soubory  
 
* popis standardního výstupu programu (unifikovaný formát viz výše):
 
* popis standardního výstupu programu (unifikovaný formát viz výše):
  
 
Ve výpisu je nejdříve údaj o typu a rozsahu nalezených změn, poté následuje výpis řádek z obou souborů: znak < označuje řádky prvého souboru, znak > označuje řádky druhého souboru. Údaj o typu a rozsahu změn má tuto strukturu m x n, kde:
 
Ve výpisu je nejdříve údaj o typu a rozsahu nalezených změn, poté následuje výpis řádek z obou souborů: znak < označuje řádky prvého souboru, znak > označuje řádky druhého souboru. Údaj o typu a rozsahu změn má tuto strukturu m x n, kde:
  
          m  označuje čísla řádek prvního souboru  
+
m  označuje čísla řádek prvního souboru  
          n  označuje čísla řádek druhého souboru  
+
n  označuje čísla řádek druhého souboru  
          x  může nabývat hodnot:
+
x  může nabývat hodnot:
          a  přidání řádků k prvnímu souboru  
+
a  přidání řádků k prvnímu souboru  
          d  zrušení řádků z druhého souboru  
+
d  zrušení řádků z druhého souboru  
          c  změna znaků na řádcích  
+
c  změna znaků na řádcích  
  
 
Např. zápis 8,20 c 8,22 označuje že na řádcích 8 až 20 z prvního souboru byly provedeny změny, které jsou zapsány na řádcích 8 až 22 druhého souboru (současně byly dva řádky vloženy).  
 
Např. zápis 8,20 c 8,22 označuje že na řádcích 8 až 20 z prvního souboru byly provedeny změny, které jsou zapsány na řádcích 8 až 22 druhého souboru (současně byly dva řádky vloženy).  
  
comm [-123] soubor1 soubor2
+
;comm [-123] soubor1 soubor2:
 
 
 
* zjišťuje, které řádky ve dvou setříděných souborech jsou stejné
 
* zjišťuje, které řádky ve dvou setříděných souborech jsou stejné
 
* výstup obsahuje tři vzájemně se prolínající sloupce s následujícím významem:
 
* výstup obsahuje tři vzájemně se prolínající sloupce s následujícím významem:
Řádka 271: Řádka 276:
 
** 3. sloupce - řádek je v obou souborech  
 
** 3. sloupce - řádek je v obou souborech  
 
* přepínače:
 
* přepínače:
** -123 potlačí výstup příslušného sloupce (např. -13 propustí na standardní výstup pouze druhý sloupec)
+
** <TT>-123</TT> potlačí výstup příslušného sloupce (např. -13 propustí na standardní výstup pouze druhý sloupec)

Verze z 5. 12. 2007, 11:42

Příkazy pro práci s adresáři

ls [cesta]
  • výpis obsahu adresáře
  • přepínače:
    • -a vypíše všechny soubory v adresáři včetně souborů, které začínají tečkou (tzv. skryté soubory)
    • -l dlouhý výpis (včetně práv, počet hardlinek, vlastníka, skupiny, délky, času poslední modifikace)
    • -t setřídí výpis podle data poslední modifikace, od nejnovějších ke starším
    • -u setřídí výpis podle času posledního přístupu k souboru, od nejnovějších ke starším
    • -r opačný způsob třídění
    • -F přidat znak k souborům určující jejich typ, normálním nic (spustitelný*, adresář/, symbolická linky@, FIFO|, socket=)
    • -R rekurzivní výpis podadresářů
    • -L vypsat soubor, na který ukazuje linka místo linky samotné (kombinace -RL jde i za linky)
    • -d vypíše adresáře jako ostaní soubory místo jejich obsahu
    • -f netřídit obsah adresáře
    • -i vypíše číslo i-nodu každého souboru
mkdir [adresář]
  • vytvoření adresáře
  • přepínače:
    • -p rekurzivní vytváření (více adresářů najednou)
rmdir [adresář]
  • smazání adresáře
  • adresář musí být prázdný (mazání neprázdných adresářů - viz: rm -r)
cd [adresář]
  • změna aktuálního adresáře
  • bez parametru přepne do domácího adresáře
cd -       přepne do adresáře, ve kterém jsme byli naposledy (krok zpět)
cd ~/dir   označuje adresář dir ve vlastním domácím adresáři
cd ~huzva  označuje domácí adresář uživatele se jménem huzva 
pwd
  • výpis aktuálního adresáře
du
  • vypíše obsazený prostor (výsledek v kB)
  • přepínače
    • -s spočítat jen výsledek za celý podstrom adresářů
    • -h výstup v jednotkách (kB, MB, GB apod.)

Příkazy pro práci se soubory

cp [soubor1] [cílové_jméno]
cp [soubor1] [soubor2] [soubor3] ... [cílový adresář]
  • kopírování souboru(ů), cíl musí být vždy uveden (tečka označuje aktuální adresář)
  • přepínače:
    • -r rekurzivní kopírování podadresářů
    • -i interaktivní (při přepisu souboru se ptá)
    • -a zachovává čas, vlastníka, skupinu, přístupová práva (používá se k archivaci)
mv [původní_jméno] [nové_jméno]
  • přejmenování souboru a jeho případný přesun
  • přesouvat adresáře lze jen v rámci jednoho filesystému (jednoho oddílu, resp. partition - jinak je nutné soubory kopírovat)
rm [soubor]
  • smazání souboru
  • přepínače:
    • -i interaktivní (každé mazání bude vyžadovat souhlas uživatele)
    • -f na nic se neptej a mazej
    • -r rekurzivní mazání včetně podadresářů
SMRTELNÉ: rm -r .* (vyhoví i dvě tečky - příkaz maže i v nadřízených adresářích)
 SPRÁVNĚ: rm -r .[^.]*
hexdump [soubor]
  • hexadecimální výpis bajtů v souboru
  • přepínače:
    • -C kromě hexadecimálního výstupu vypíše i ASCII reprezentaci znaků (kromě řídících znaků)


Textové utility

cat [soubor]
  • vypsání obsahu souboru
tac [soubor]
  • vypsání obsahu souboru s obráceným pořadím řádků
head [soubor]
  • výpis začátku souboru (stadardně 10 řádků)
  • přepínače:
    • -číslo počet vypsaných řádků od začátku souboru
    • -c číslo počet vypsaných bajtů od začátku souboru
tail [soubor]
  • výpis konce souboru (stadardně 10 řádků)
  • přepínače:
    • -číslo počet vypsaných řádků od konce souboru
    • -cčíslo počet vypsaných bajtů od konce souboru
    • -f na konci souboru čekej a zobrazuj přírustky
file [soubor]
  • určí typ souboru podle jeho obsahu (spustitelný, GIF, ZIP, text, prázdný, linka, ...)
  • definice typů je v souboru /etc/magic
stat [soubor]
  • vypíše obsah inodu (vlastník, poslední změna souboru a inodu, velikost, přístupová práva, atd.)
strings [soubor]
  • vypíše řetězce z binárního souboru
wc [soubor]
  • vypíše počet řádků, slov a písmen v souboru
  • přepínače:
    • -l počet řádků
    • -w počet slov
    • -c počet znaků
touch [soubor]
  • mění datum poslední modifikace souboru
  • když soubor neexistuje, je vytvořen nový s nulovou délkou
  • přepínače:
    • -t MMDDhhmm[[SS]RR][.ss] použít tento čas
cut [soubor]
  • vertikální řez souborem
  • přepínače:
    • -bpozice pozice vyříznutí podle sloupců počítáno od 1
    • -fpoložky položky (implicitní oddělovač je tabelátor)
    • -dznak definuje znak jako oddělovač položek (tj. jiný, než tabelátor)
  • tvar seznamu položek (pozic):
    • 2-5 druhá až pátá položka (pozice)
    • -5 první až pátá položka (pozice)
    • 1,7 první a sedmá položka
nl [soubor]
  • očíslovat řádky souboru (výstupu)
join [soubor1] [soubor2]
  • tiskne na výstup odpovídající řádky obou souborů podle společné identifikace
  • přepínače:
    • -1 sloupec z prvního souboru slučovat podle identifikace ze zadaného sloupce
    • -2 sloupec z druhého souboru slučovat podle identifikace ze zadaného sloupce
    • -t oddělovač použít jiný oddělovač v vstupních a výstupních souborech
find [adresář] [podmínka] [operace]
  • rekurzivní prohledávání stromu adresářů a souborů
  • podmínka:
    • -name soubor nalezení souboru dle jména. Lze použít metaznaky *,?,[], musí však být uzavřeny do apostrofů nebo uvozovek nebo uvozeny zpětným lomítkem, aby byly interpretovány příkazem find a ne expandovány shellem. Varianta -iname soubor ignoruje velká/malá písmena
    • -user jméno hledá se soubor, jehož vlastníkem je uživatel jméno
    • -type typ hledá soubory daného typu, kde typ nabývá hodnoty:
      • f obyčejný soubor
      • d adresář
      • l linka
    • -atime n hledají se soubory, ke kterým bylo před n dny naposledy přistupováno
    • -mtime n hledají se soubory, do kterých byl před n dny proveden poslední zápis
    • -links n hledá se soubor se specifikovaným počtem odkazů (linků)
    • -size n hledají se soubory o velikosti n jednotek, kde jednotka je standardně 512 bajtů nebo se dá určit písmenem, které následuje těsně za číslem:
      • c v bajtech
      • k v kilobajtech
    • -a operátor logického součinu ("a")
    • -o operátor logického součtu ("nebo")
    • ! negace
  • pokud je před číselným výrazem (výše označeno jako n) uveden znak + (plus), znamená to že se budou hledat soubory, u nichž kritérium přesahuje danou hodnotu. Pokud je před číselným výrazem znak - (mínus), budou se hledat soubory s kritériem nedosahujícím danou hodnotu.
  • operace:
    • -print zobrazení jmen souborů, které byly vybrány (GNU find nalezené soubory zobrazuje i bez tohoto parametru)
    • -exec příkaz se soubory vybranými podle kritéria bude proveden uvedený příkaz, ve kterém znaky {} reprezentují jméno vybraného souboru, text příkazu musí být ukončen mezerou, zpětným lomítkem a středníkem \;
find /proc -name \*conn\* -exec cat {} \; 2> /dev/null 


Filtry

less [soubor] ...
  • vstup opisuje na výstup po stránkách, lepší a novější varianta příkazu more
  • název je slovní hříčka: program méně umí více, než program více, který toho umí méně, než program méně (more znamená anglicky více a less znamená méně)
  • ovládací klávesy:
    • mezera posun o stránku vpřed
    • b posun o stránku zpět
    • q konec programu
    • :n skočí na následující soubor uvedený na příkazové řádce
    • /řetězec hledat řetězec směrem dopředu
    • ?řetězec hledat řetězec směrem dozadu
    • n hledat další výskyt řetězce (v původním směru hledání)
    • N hledat další výskyt řetězce v opačném směru, než bylo zadáno původní hledání
    • F čeká a zobrazuje přírustky v souboru - obdoba příkazu tail -f soubor
dos2unix
  • provádí konverzi DOSového formátu konce řádku - znaky CR (Carriage Return - návrat vozíku tiskárny, kód 0x0D hexadecimálně, resp. 13 decimálně) a LF (Line Feed - posun papíru v tiskárně o jeden řádek, tj. 0x0A hexadecimálně, resp. 10 decimálně) do formátu konce řádků v Unixu (jen znak CR)
dos2unix soubor.txt
dos2unix < soubor.dos > soubor.unx 
unix2dos
  • provádí konverzi z Unixového formátu konce řádku (znak LF) na formát DOSu (znaky CR a LF)
tee [soubor]
  • filtr - opisuje vstup do souboru a zároveň na obrazovku
  • přepínače:
    • -a nový text se připojí na konec souboru
sort [+číslo] [přepínače] [soubor]
  • filtr - třídění vstupu
  • přepínače:
    • -n setřídění numerické (pokud jsou číselné hodnoty)
    • -r setřídění sestupné
    • -b ignorovat počáteční mezery
    • -f nebudou se rozlišovat malá a velká písmena (velká písmena jsou převáděna na malá)
    • -k číslo určuje sloupec, od kterého se posuzuje pořadí při třídění (číslovány od 1)
    • -k číslo1,číslo2 určuje rozsah sloupců pro třídění
    • -tznak určení znaku, který odděluje jednotlivé sloupce
    • -u z výstupního souboru budou vyloučeny duplicitní řádky (pro posouzení duplicit se porovnávají pouze klíče)
uniq [paramery] [soubor]
  • filtr - odstraňuje duplicitní řádky ze setříděného vstupu
  • přepínače:
    • -číslo přeskočí se zadaný počet řádků od začátku
    • -u budou se vypisovat pouze řádky, které nejsou duplicitní
    • -d budou se vypisovat pouze řádky, které jsou duplicitní
    • -c na začátku každého řádku se vypíše počet výskytů
grep [výraz] [soubor]
  • hledá výraz v souboru a vypisuje řádky, které ho obsahují
  • přepínače:
    • -c vypíše počet řádků, ve kterých byl nalezen vzor
    • -i ignoruje rozdíly mezi malými a velkými písmeny
    • -l zobrazuje pouze jména souborů, ve kterých byl nalezen vzor
    • -n zobrazí čísla řádků obsahujících vzor
    • -s potlačen chybový výstup
    • -v vypíše řádky neobsahující vzor
    • -r rekurzivní hledání v podadresářích
    • -q nalezený řádek se nevypisuje - používá se např. v testech ve skriptech, kde jen testujeme návratový kód, tj. nalezeno - pravda (0), nenalezeno - nepravda (1)
  • při specifikaci hledaného řetězce lze použít regulární výraz, ve kterém lze použít následující speciální znaky (doporučuji zapisovat regulární výraz do uvozovek či apostrofů):
^  začátek řádku 
$  konec řádku 
.  libovolný znak 
*  libovolný počet opakování předchozího znaku 
[] právě jeden znak z množiny znaků uvedených v těchto závorkách, při specifikaci lze použít následující dva speciální znaky:
-  používá se pro označení intervalu znaků z množiny ASCII (např. a-z, 0-9) 
^  negace výčtu znaků 
\  potlačení speciálního významu následujícího znaku 

Příklady regulárních výrazů:

^#         řádky začínající znakem křížek (hash)
^$         prázdné řádky
^.$        řádky obsahující právě jeden znak
^[a-z]*$   řádky obsahující pouze malá písmena
\.[0-9]    výraz označuje tečku následovanou číslicí


Porovnávání souborů

cmp
  • porovnává dva soubory po jednotlivých bajtech, ohlásí první rozdílný bajt
  • přepínače:
    • -s potlačení výstupu o nalezených odchylkách
diff soubor1 soubor2
  • porovnává dva soubory po jednotlivých řádcích a hledá rozdíly mezi nimi
  • vypisuje změněné řádky, výstup se používá jako vstup pro program patch
  • přepínače:
    • -u unifikovaný výstup (používá se nejčastěji, modifikované řádky jsou odlišeny znaky plus a mínus, které vyjadřují, zda byl řádek smazán nebo přidán; změněné řádky jsou obklopeny původními,aby se při použití programu patch poznalo, je-li zpracovávaný soubor ve stavu, který byl zachycen programem diff)
    • -r rekurzivní běh
    • -N zahrnuty i nové soubory
  • popis standardního výstupu programu (unifikovaný formát viz výše):

Ve výpisu je nejdříve údaj o typu a rozsahu nalezených změn, poté následuje výpis řádek z obou souborů: znak < označuje řádky prvého souboru, znak > označuje řádky druhého souboru. Údaj o typu a rozsahu změn má tuto strukturu m x n, kde:

m  označuje čísla řádek prvního souboru 
n  označuje čísla řádek druhého souboru 
x  může nabývat hodnot:
a  přidání řádků k prvnímu souboru 
d  zrušení řádků z druhého souboru 
c  změna znaků na řádcích 

Např. zápis 8,20 c 8,22 označuje že na řádcích 8 až 20 z prvního souboru byly provedeny změny, které jsou zapsány na řádcích 8 až 22 druhého souboru (současně byly dva řádky vloženy).

comm [-123] soubor1 soubor2
  • zjišťuje, které řádky ve dvou setříděných souborech jsou stejné
  • výstup obsahuje tři vzájemně se prolínající sloupce s následujícím významem:
    • 1. sloupec - řádek je v prvním souboru, není ve druhém
    • 2. sloupec - řádek je ve druhém souboru, není v prvním
    • 3. sloupce - řádek je v obou souborech
  • přepínače:
    • -123 potlačí výstup příslušného sloupce (např. -13 propustí na standardní výstup pouze druhý sloupec)