Základní příkazy Unixu: Porovnání verzí
Z Milan Kerslager
(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 | ||
− | |||
− | |||
− | |||
− | 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ářů |
− | + | ||
− | SMRTELNÉ: rm -r .* (vyhoví i dvě tečky - příkaz maže i v nadřízených adresářích) | + | 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 | + | ** <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 | ||
− | |||
== 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) | ||
− | + | dos2unix soubor.txt | |
− | + | 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 | |
− | + | $ 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ů == | == 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 | |
− | + | 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). | 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
Obsah
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)