skoleni:zaklady_prikazove_radky

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
skoleni:zaklady_prikazove_radky [2018/06/05 17:59] – Reorg, upravy prvni casti rkratkyskoleni:zaklady_prikazove_radky [2022/11/14 12:26] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 150: Řádek 150:
 ==== Editace příkazové řádky ==== ==== Editace příkazové řádky ====
  
-Řádka se dá editovat podobně jako v textovém editoru, tedy posouvat se šipkami doleva a doprava nebo pomocí kláves ''Home'' a ''End''. ''Backspace'' a ''Delete'' fungují také stejně. +Řádka se dá editovat podobně jako v textovém editoru, tedy posouvat se šipkami doleva a doprava nebo pomocí kláves ''Home'' a ''End''. ''Backspace'' a ''Delete'' fungují také stejně.
  
 <code text> <code text>
Řádek 291: Řádek 291:
 </code> </code>
  
-Pokud ho nyní spustíme (nezapomeňte na tabulátor, jak u názvu příkazu tak i u jeho argumentu), tak by nám měl vypsat číslo 4 (v prvním shellu běží desktopové prostředí, druhý shell byl spuštěn programem Terminál a třetí a čtvrtý jsme spustili my příkazem ''bash'').  Ukončíme tedy posledn9 ''bash'' pomocí příkazu ''exit'' (příkaz pro ukončení shellu) a zjistíme znovu, kolik shellů máme puštěných v sobě:+Pokud ho nyní spustíme (nezapomeňte na tabulátor, jak u názvu příkazu tak i u jeho argumentu), tak by nám měl vypsat číslo 4 (v prvním shellu běží desktopové prostředí, druhý shell byl spuštěn programem Terminál a třetí a čtvrtý jsme spustili my příkazem ''bash'').  Ukončíme tedy poslední ''bash'' pomocí příkazu ''exit'' (příkaz pro ukončení shellu) a zjistíme znovu, kolik shellů máme puštěných v sobě:
  
 <code text> <code text>
Řádek 306: Řádek 306:
 ==== Získání administrátorských práv ==== ==== Získání administrátorských práv ====
  
-V Linuxu existuje administrátorský účet (**root**, superuser), který má plné oprávnění.  Z bezpečnostních důvodů se za něj nepřihlašuje.  Je však možné jeho prostřednictvím spouštět příkazy.  Toho lze dosáhnout tím, že před příkaz zadáme slovo ''sudo'' Tento název vznikl z anglického //superuser do//, tedy "superuživateli, udělej (něco)" A právě to něco jsou argumenty tohoto příkazu.  Předtím, než je příkaz za administrátora puštěn, tak se nás program ''sudo'' může zeptat na heslo.  Nejčastěji se ptá na heslo přihlášeného uživatele.  +V Linuxu existuje administrátorský účet (**root**, superuser), který má plné oprávnění.  Z bezpečnostních důvodů se za něj nepřihlašuje.  Je však možné jeho prostřednictvím spouštět příkazy.  Toho lze dosáhnout tím, že před příkaz zadáme slovo ''sudo'' Tento název vznikl z anglického //superuser do//, tedy "superuživateli, udělej (něco)" A právě to něco jsou argumenty tohoto příkazu.  Předtím, než je příkaz za administrátora puštěn, tak se nás program ''sudo'' může zeptat na heslo.  Nejčastěji se ptá na heslo přihlášeného uživatele.
  
 To, jestli jste oprávněni pouštět příkazy za administrátora není tedy dáno tím, jestli znáte jeho heslo, ale tím, jestli jste k tomu oprávněni, což byste na svém počítači být mohli. Pokud tedy pustíme ''sudo echo Ahoj'', spustí se příkaz ''echo'' s argumentem ''Ahoj'' s plnými právy.  Vzhledem k tomu, že na vypsání textu moc práv potřeba není, nebude v chování rozdíl, snad jen na tu část, kdy se nás ''sudo'' bude ptát na heslo. To, jestli jste oprávněni pouštět příkazy za administrátora není tedy dáno tím, jestli znáte jeho heslo, ale tím, jestli jste k tomu oprávněni, což byste na svém počítači být mohli. Pokud tedy pustíme ''sudo echo Ahoj'', spustí se příkaz ''echo'' s argumentem ''Ahoj'' s plnými právy.  Vzhledem k tomu, že na vypsání textu moc práv potřeba není, nebude v chování rozdíl, snad jen na tu část, kdy se nás ''sudo'' bude ptát na heslo.
Řádek 317: Řádek 317:
 </code> </code>
  
-Změnilo se nám pár věcí v promptu.  Hlavní věcí je konkrétní uživatel (v tomto případě z ''liveuser'' na ''root'').  Cesta již není ''~'' a místo ''$'' je na konci promptu ''#'' (ukazatel přepnutí na administrátora).  Zmáčkneme ''Ctrl-D'' a jsme zpět normální uživatelé.  Toto přepínání se ale příliš nedoporučuje.  +Změnilo se nám pár věcí v promptu.  Hlavní věcí je konkrétní uživatel (v tomto případě z ''liveuser'' na ''root'').  Cesta již není ''~'' a místo ''$'' je na konci promptu ''#'' (ukazatel přepnutí na administrátora).  Zmáčkneme ''Ctrl-D'' a jsme zpět normální uživatelé.  Toto přepínání se ale příliš nedoporučuje.
  
 **Pokud zapomenete, že jste přepnutí na administrátora a nějaký příkaz spustíte omylem, tak můžete způsobit větší škodu než za normálního uživatele.  Používejte tedy příkaz ''sudo'' jen na puštění jednotlivých příkazů a ne na dlouhodobé nabytí práv.** **Pokud zapomenete, že jste přepnutí na administrátora a nějaký příkaz spustíte omylem, tak můžete způsobit větší škodu než za normálního uživatele.  Používejte tedy příkaz ''sudo'' jen na puštění jednotlivých příkazů a ne na dlouhodobé nabytí práv.**
Řádek 340: Řádek 340:
 Systém súborov v Linuxe je organizovaný v **jednej stromovej** štruktúre. Systém súborov v Linuxe je organizovaný v **jednej stromovej** štruktúre.
  
-**Koreň** tohoto systému (//file system root//) sa označuje ‘**''/''**’ a každá absolútna cesta preto začína týmto symbolom. +**Koreň** tohoto systému (//file system root//) sa označuje ‘**''/''**’ a každá absolútna cesta preto začína týmto symbolom.
  
 Prvá úroveň systému súborov je bežne rozdelená na nasledujúce adresáre: Prvá úroveň systému súborov je bežne rozdelená na nasledujúce adresáre:
Řádek 347: Řádek 347:
   * **''/etc''**  - obsahuje konfiguračné súbory   * **''/etc''**  - obsahuje konfiguračné súbory
   * **''/home''** - domovské adresáre bežných užívateľov   * **''/home''** - domovské adresáre bežných užívateľov
-  * **''/proc''** - prístup k informáciám a nastaviteľným parametrom jednotlivých procesov aj celého systému (na úrovni kernelu)    +  * **''/proc''** - prístup k informáciám a nastaviteľným parametrom jednotlivých procesov aj celého systému (na úrovni kernelu) 
-  * **''/media''** - pripojené odpojitelné médiá (napr. USB alebo CD-ROM a pod.) +  * **''/media''** - pripojené odpojitelné médiá (napr. USB alebo CD-ROM a pod.)
   * **''/mnt''** - dočasne pripojené ďalšie suborové systémy   * **''/mnt''** - dočasne pripojené ďalšie suborové systémy
   * **''/opt''** - súbory volitelných softwarových balíčkov   * **''/opt''** - súbory volitelných softwarových balíčkov
Řádek 360: Řádek 360:
     * **''/usr/lib''** - knižnice     * **''/usr/lib''** - knižnice
     * **''/usr/local''** - lokálne nastavenia softwaru     * **''/usr/local''** - lokálne nastavenia softwaru
-  * **''/var''** - variabilné, často sa meniace dáta, ktoré majú byť zachované po reboote +  * **''/var''** - variabilné, často sa meniace dáta, ktoré majú byť zachované po reboote
  
-//Pozn.:// Toto rozdelenie **nie je** striktné, avšak vačšina bežných aplikácií ho dodržuje(vínimka: ''/proc'', ''/sys'', ''/boot'')+Pozn.: Toto rozdelenie **nie je** striktné, avšak vačšina bežných aplikácií ho dodržuje (vínimka: ''/proc'', ''/sys'', ''/boot'').
  
 ==== Prehľad základných príkazov ==== ==== Prehľad základných príkazov ====
Řádek 368: Řádek 368:
 === Navigácia === === Navigácia ===
  
-  * **''pwd''** - //print working directory//  +  * **''pwd''** - //print working directory// 
-    * Zobrazí absolútnu cestu k aktuálnemu adresáru  +    * Zobrazí absolútnu cestu k aktuálnemu adresáru 
-<code bash>+<code>
 $ pwd $ pwd
 /home/user1/ /home/user1/
 </code> </code>
  
-  * **''ls''** - //list// +  * **''ls''** - //list//
     * Vypíše obsah aktuálneho adresára     * Vypíše obsah aktuálneho adresára
-    * Užitočné prepínače:  +    * Užitočné prepínače: 
-      * **''-a''**’ - vypíše všetky súbory, vrátane skrytých((skryté súbory začínajú znakom .’ a sú ignorované bežnými nástrojmi ako napr. rm.)+      * **''-a''** - vypíše všetky súbory, vrátane skrytých (skryté súbory začínajú znakom ''.'' a sú ignorované bežnými nástrojmi ako napr. ''rm''.) 
-      * **''-l''**’  - vypíše detailnejšie informácie (dá sa použiť skratka ll+      * **''-l''**  - vypíše detailnejšie informácie (dá sa použiť skratka ''ll''
-<code bash>+<code>
 $ ls $ ls
 Documents  Downloads  Games  Music  Pictures  Private  Public  Templates  Videos Documents  Downloads  Games  Music  Pictures  Private  Public  Templates  Videos
 </code> </code>
  
-  * **''cd''** - //change directory// +  * **''cd''** - //change directory//
     * Zmení aktuálny adresár na zadaný (“//presunie sa//” do zadaného adresáru)     * Zmení aktuálny adresár na zadaný (“//presunie sa//” do zadaného adresáru)
-    * Dá sa používať zadaním absolútnej aj relatívnej cesty. +    * Dá sa používať zadaním absolútnej aj relatívnej cesty 
-    * Bez argumentov zmení adresár na //domovský// +    * Bez argumentov zmení adresár na //domovský// 
-    * Existuje niekoľko symbolových skratiek, pomocou ktorých sa dá cieľová cesta konštruovať: +    * Existuje niekoľko symbolových skratiek, pomocou ktorých sa dá cieľová cesta konštruovať 
-      * **''.''**’ - skratka pre //aktuálny// adresár +      * **''.''** - skratka pre //aktuálny// adresár 
-      * **''..''**’ - skratka pre //rodičovský// adresár +      * **''..''** - skratka pre //rodičovský// adresár 
-      * **''~''**’ - skratka pre //domovský// adresár užívateľa, ktorý príkaz používa ((podľa //premennej prostredia// $HOME))  +      * **''~''** - skratka pre //domovský// adresár užívateľa, ktorý príkaz používa (podľa //premennej prostredia// ''$HOME''
-    * Špeciálna symbol **''-''**’ sa dá použiť namiesto cieľovej cesty (a bez pridaných ďalších prepínačov) pre zmenu na predošlý aktívny adresár (vizpríklad)  +    * Špeciálny symbol **''-''** sa dá použiť namiesto cieľovej cesty (a bez pridaných ďalších prepínačov) pre zmenu na predošlý aktívny adresár (viz príklad) 
-<code bash+<code> 
-$ pwd +$ pwd
 /home/user1/Documents /home/user1/Documents
  
 $ cd ../Pictures $ cd ../Pictures
-$ pwd +$ pwd
 /home/user1/Pictures /home/user1/Pictures
  
Řádek 407: Řádek 407:
 </code> </code>
  
-  * **''tree''** +  * **''tree''**
     * Vypíše (stromovo) štruktúru súborového systému od zadaného adresáru     * Vypíše (stromovo) štruktúru súborového systému od zadaného adresáru
-<code bash>+<code>
 $ tree ~ $ tree ~
 (Zobrazí stromovú struktúru domovského adresára -> Vyskúšajte sami.) (Zobrazí stromovú struktúru domovského adresára -> Vyskúšajte sami.)
 </code> </code>
  
-  * **''find''**  +  * **''find''** 
-    * Umožňuje vyhľadávať súbory, prípadne obsah súborov ((analógia: Windows Search))+    * Umožňuje vyhľadávať súbory, prípadne obsah súborov (analógia: Windows Search)
     * Poskytuje veľa rôznych parametrov pre upresnenie vyhladávania.     * Poskytuje veľa rôznych parametrov pre upresnenie vyhladávania.
-    * Viac informácií: “//man find//” +    * Viac informácií: ''man find'' 
-<code bash>+<code>
 $ find /etc -name httpd $ find /etc -name httpd
 /etc/httpd /etc/httpd
Řádek 430: Řádek 430:
   * **''mkdir''** - //make directory//   * **''mkdir''** - //make directory//
     * Vytvorí zadaný adresár (rodičovský adresár musí existovať)     * Vytvorí zadaný adresár (rodičovský adresár musí existovať)
-    * Prepínač **''-p''**’ prípadne vytvorí aj všetky adresáre na zadanej ceste.  +    * Prepínač **''-p''** prípadne vytvorí aj všetky adresáre na zadanej ceste. 
-<code bash>+<code>
 $ mkdir novy_adresar $ mkdir novy_adresar
  
 $ mkdir novy_adresar/druhy/treti/posledny $ mkdir novy_adresar/druhy/treti/posledny
-mkdir: cannot create directory novy_adresar/druhy/treti/posledny: No such file or directory+mkdir: cannot create directory 'novy_adresar/druhy/treti/posledny': No such file or directory
  
 $ mkdir -p novy_adresar/druhy/treti/posledny $ mkdir -p novy_adresar/druhy/treti/posledny
-$ tree +$ tree
 . .
 └── novy_adresar └── novy_adresar
Řádek 447: Řádek 447:
  
   * **''rmdir''** - //remove directory//   * **''rmdir''** - //remove directory//
-    * Odstráni/zmaže zadaný adresár +    * Odstráni (zmažezadaný adresár 
-    * Zadaný adresár musí byť prázdny ((Prázdny adresár obsahuje iba špeciálne súbory .’ ..’))  +    * Zadaný adresár musí byť prázdny (Prázdny adresár obsahuje iba špeciálne súbory ''.'' ''..''
-<code bash>+<code>
 $ rmdir novy_adresar/ $ rmdir novy_adresar/
 rmdir: failed to remove 'novy_adresar/': Directory not empty rmdir: failed to remove 'novy_adresar/': Directory not empty
Řádek 462: Řádek 462:
  
   * **''touch''**   * **''touch''**
-    * Pomocou tohto príkazu sa dá vytvoriť nový (prázdny) súbor. ((Funkcionalita tohto príkazu nie je vyslovene vytváranie súborov, ale z jeho podstaty sa dá pre vytváranie použiť)+    * Pomocou tohto príkazu sa dá vytvoriť nový (prázdny) súbor. (Funkcionalita tohto príkazu nie je vyslovene vytváranie súborov, ale z jeho podstaty sa dá pre vytváranie použiť.
-<code bash+<code> 
-$ touch subor1 +$ touch subor1
 $ touch novy_adresar/subor2 novy_adresar/druhy/subor3 $ touch novy_adresar/subor2 novy_adresar/druhy/subor3
 $ tree $ tree
Řádek 479: Řádek 479:
     * Odstráni zadaný súbor     * Odstráni zadaný súbor
     * Užitočné prepínače:     * Užitočné prepínače:
-      * **''-r''**’ - //recursive// - pri špecifikovaní adresáru, odstráni aj všetky podadresáre (vrátane obsahu) +      * **''-r''** - //recursive// - pri špecifikovaní adresáru, odstráni aj všetky podadresáre (vrátane obsahu) 
-      * **''-f''**’ - //force// - ignoruje problémové argumenty a preskočí potvrdzovanie užívateľom +      * **''-f''** - //force// - ignoruje problémové argumenty a preskočí potvrdzovanie užívateľom 
-    * Kombinácia **''-rf''**’ je často užitočná, ale pozor na jej použitie!+    * Kombinácia **''-rf''** je často užitočná, ale pozor na jej použitie!
  
-<code bash>+<code>
 $ ls $ ls
 novy_adresar  subor1 novy_adresar  subor1
Řádek 501: Řádek 501:
   * **''echo''**   * **''echo''**
     * Zobrazí zadaný text na //štandardný výstup//     * Zobrazí zadaný text na //štandardný výstup//
-    * Výstup tohoto príkazu sa bežne posiela do súborov (viz//Presmerovanie// nižšie).  +    * Výstup tohoto príkazu sa bežne posiela do súborov (viz //Presmerovanie// nižšie). 
-<code bash>+<code>
 $ echo Hello world! $ echo Hello world!
 Hello world! Hello world!
Řádek 510: Řádek 510:
     * Vytvorí kópiu zadaného súboru na zadanom mieste (prípadne s novým názvom)     * Vytvorí kópiu zadaného súboru na zadanom mieste (prípadne s novým názvom)
     * Prepínač ‘**''-r''**’ (//recursive//) umožňuje kopírovať aj adresáre.     * Prepínač ‘**''-r''**’ (//recursive//) umožňuje kopírovať aj adresáre.
-    * //Pokročilé//: príkaz ‘//scp//’ sa používa pre kopírovanie súborov medzi viacerými počítačmi prostredníctvom siete.  +    * Pokročilé: príkaz ''scp'' sa používa pre kopírovanie súborov medzi viacerými počítačmi prostredníctvom siete.
  
   * **''mv''** - //move//   * **''mv''** - //move//
-    * Presunie daný objekt (súbor, adresár, iné..) na zadané miesto +    * Presunie daný objekt (súbor, adresár, iné) na zadané miesto 
-    * Tento príkaz sa tiež používa pre **''premenovanie''** objektov.+    * Tento príkaz sa tiež používa pre **premenovanie** objektov.
  
   * **''ln''** - //link//   * **''ln''** - //link//
-    * Vytvorí odkaz na daný objekt (adresár, súbor, iné..)+    * Vytvorí odkaz na daný objekt (adresár, súbor, iné)
     * Po zmazaní povodného objektu, tento odkaz stále existuje a je funkčný. Daný objekt je úplne zmazaný až keď naňho neukazuje žiadny odkaz (nemá žiadnu ďalšiu referenciu).     * Po zmazaní povodného objektu, tento odkaz stále existuje a je funkčný. Daný objekt je úplne zmazaný až keď naňho neukazuje žiadny odkaz (nemá žiadnu ďalšiu referenciu).
-    * Prepínač **''-s''**’ sa používa k vytvoreniu tzv. //slabých// odkazov (//soft-link//), ktoré nevytvárajú referencie na daný objekt+    * Prepínač **''-s''** sa používa k vytvoreniu tzv. //slabých// odkazov (//soft-link//), ktoré nevytvárajú referencie na daný objekt
  
  
Řádek 529: Řádek 529:
   * **''tee''**   * **''tee''**
     * Číta zo //štandardného vstupu// a zapisuje na //štandardný výstup// a do zadaných súborov     * Číta zo //štandardného vstupu// a zapisuje na //štandardný výstup// a do zadaných súborov
-    * //Pozn.//: Bežné použitie na konci //roury// pre distribúciu výstupu do viacerých súborov.+    * Pozn.: Bežné použitie na konci //roury// pre distribúciu výstupu do viacerých súborov.
  
   * **''wc''** - //word count//   * **''wc''** - //word count//
     * Spočíta a vypíše počet slov (medzier) v zadanom súbore.     * Spočíta a vypíše počet slov (medzier) v zadanom súbore.
-    * Prípadne počet riadkov s prepínačom **''-l''**.+    * Prípadne počet riadkov s prepínačom **''-l''**.
  
   * **''less / more''**   * **''less / more''**
Řádek 546: Řádek 546:
  
   * **''grep''**   * **''grep''**
-    * Vyhľadá zadaný text v súbore. +    * Vyhľadá zadaný text v súbore.
     * Tento príkaz je v základe jednoduchý, ale dá sa pomocou prepínačov alebo regulárnych výrazov použiť aj pre komplexnejšie úlohy.     * Tento príkaz je v základe jednoduchý, ale dá sa pomocou prepínačov alebo regulárnych výrazov použiť aj pre komplexnejšie úlohy.
-    * //Pozn.: O tomto príkaze viac v ďalšej kapitole.// +    * Pozn.: O tomto príkaze viac v ďalšej kapitole.
  
   * **''sort''**   * **''sort''**
     * Zotriedi vstupné data     * Zotriedi vstupné data
-    * Rôzne možnosti triedenia viz. “//man sort//”+    * Rôzne možnosti triedenia viz. ''man sort''
  
   * **''uniq''**   * **''uniq''**
     * Preskočí záznamy, ktoré sa za sebou opakujú     * Preskočí záznamy, ktoré sa za sebou opakujú
-    * Užitočný prepínač pre spočítanie rovnakých záznamov: **''-c''**+    * Užitočný prepínač pre spočítanie rovnakých záznamov: **''-c''**
  
 === "Divoké karty" ("Wildcards") === === "Divoké karty" ("Wildcards") ===
  
-Pri práci s príkazovou riadkou sa často stretneme s potrebou vykonať nejaký príkaz pre viacero rôznych súborov, ktoré však majú nejakú spoločnú vlastnosť (//napr.:// presunúť všetky súbory s príponou //.txt//).+Pri práci s príkazovou riadkou sa často stretneme s potrebou vykonať nejaký príkaz pre viacero rôznych súborov, ktoré však majú nejakú spoločnú vlastnosť (napr.: presunúť všetky súbory s príponou ''.txt'').
  
-Aby sme nemuseli takéto súbory zadávať po jednom, existujú pomocné skratky, tzv. //divoké karty// (//wildcards//)((AnalógiaRegulárne výrazy))+Abychom nemuseli takéto súbory zadávať po jednom, existujú pomocné skratky, tzv. //divoké karty// (//wildcards//) (analógiaregulárne výrazy).
  
-  * **''*''**’ - //asterisk// +  * **''*''** - //asterisk// 
-    * Symbol //hviezdička// sa po zavolaní príkazu rozbalí na **''všetky''** potenciálne zmysluplné možnosti+    * Symbol //hviezdička// sa po zavolaní príkazu rozbalí na **všetky** potenciálne zmysluplné možnosti
     * Príklad:     * Príklad:
-<code bash>+<code>
 $ mv /tmp/*.txt ~/ $ mv /tmp/*.txt ~/
-(Presunie všetky súbory s príponou .txt z adresáru /tmp do domovského adresára)+</code>
  
 +Presunie všetky súbory s príponou ''.txt'' z adresáru ''/tmp'' do domovského adresára.
 +
 +<code>
 $ rm /tmp/test* $ rm /tmp/test*
-(Odstráni z adresáru /tmp všetky súbory začínajúce retazcom "test")+</code> 
 + 
 +Odstráni z adresáru ''/tmp'' všetky súbory začínajúce retazcom ''test''.
  
 Na zamyslenie: Aký je rozdiel medzi nasledujúcimi príkazmi? Na zamyslenie: Aký je rozdiel medzi nasledujúcimi príkazmi?
 +
 +<code>
 $ rm -rf /tmp/* $ rm -rf /tmp/*
-$ rm -rf /tmp/ +$ rm -rf /tmp/
 </code> </code>
  
-  * **''?''**’ - //any single character//  +  * **''?''** - //any single character// 
-    * Tento symbol zastupuje **''akýkoľvek jeden''** symbol+    * Tento symbol zastupuje **akýkoľvek jeden** symbol
  
-  * **''{x..y}''**’ +  * **''{x..y}''**
     * Tento zložený symbol sa rozvinie na postupnosť zadaného rozsahu     * Tento zložený symbol sa rozvinie na postupnosť zadaného rozsahu
-    * Ako //X// a //Y// sa dá zadať rozsah čísel alebo písmen.  +    * Ako //X// a //Y// sa dá zadať rozsah čísel alebo písmen
     * Príklad:     * Príklad:
-<code bash>+<code>
 $ mkdir adresar{A..N} $ mkdir adresar{A..N}
 $ ls $ ls
 adresarA  adresarC  adresarE  adresarG  adresarI  adresarK  adresarM adresarA  adresarC  adresarE  adresarG  adresarI  adresarK  adresarM
 adresarB  adresarD  adresarF  adresarH  adresarJ  adresarL  adresarN adresarB  adresarD  adresarF  adresarH  adresarJ  adresarL  adresarN
 +</code>
  
 Na zamyslenie: Čo spraví nasledujúci príkaz? Na zamyslenie: Čo spraví nasledujúci príkaz?
 +
 +<code>
 $ touch subor{1..9}{1..9} $ touch subor{1..9}{1..9}
 </code> </code>
Řádek 599: Řádek 609:
  
 Pre presmerovanie vstupu / výstupu sa používajú nasledovné znaky: Pre presmerovanie vstupu / výstupu sa používajú nasledovné znaky:
-  * **''<''**’ - presmerovanie vstupu (default: //štandardný vstup//) +  * **''<''** - presmerovanie vstupu (default: //štandardný vstup//) 
-  * **''>''**’ - presmerovanie vystupu (default: //štandardný výstup//+  * **''>''** - presmerovanie vystupu (default: //štandardný výstup//
-  * **''<nowiki>>></nowiki>''**’ - pripájanie na koniec súboru +  * **''<nowiki>>></nowiki>''** - pripájanie na koniec súboru 
-  * **''2>''**’ - presmerovanie chybového výstupu (default: //štandardný chybový výstup//)+  * **''2>''** - presmerovanie chybového výstupu (default: //štandardný chybový výstup//)
  
 Štandardné vstupy / výstupy sú tiež označené číslami nasledovne: Štandardné vstupy / výstupy sú tiež označené číslami nasledovne:
   * **stdin** - //štandardný vstup// - číslo **0**,   * **stdin** - //štandardný vstup// - číslo **0**,
   * **stdout** - //štandardný výstup// - číslo **1**,   * **stdout** - //štandardný výstup// - číslo **1**,
-  * **stderr** - //štandardný chybový výstup// - číslo **2**.((Na zamyslenie: Všimnite si, že presmerovanie chybového výstupu sa zapisuje ''2>''))+  * **stderr** - //štandardný chybový výstup// - číslo **2**. (Na zamyslenie: Všimnite si, že presmerovanie chybového výstupu sa zapisuje ''2>'')
  
 Taktiež existuje špeciálny súbor **''/dev/null''**, ktorý funguje ako “//čierna diera//”, resp. “//nič//” (prípadne tzv. “//void//”). Všetko, čo je do tohoto súboru zapísané, je zahodené. Napríklad je často užitočné do tohto súboru presmerovať //chybový výstup//, keď nás chybové hlásenia nezaujímajú: Taktiež existuje špeciálny súbor **''/dev/null''**, ktorý funguje ako “//čierna diera//”, resp. “//nič//” (prípadne tzv. “//void//”). Všetko, čo je do tohoto súboru zapísané, je zahodené. Napríklad je často užitočné do tohto súboru presmerovať //chybový výstup//, keď nás chybové hlásenia nezaujímajú:
  
-<code bash+<code> 
- príkaz  2>  /dev/null+príkaz 2> /dev/null
 </code> </code>
  
 Presmerovanie sa používa cielene so **súbormi**. Presmerovanie sa používa cielene so **súbormi**.
- +
 Pre predávanie výstupu ďalším príkazom sa používajú “//roury//” (//pipe//). Pre predávanie výstupu ďalším príkazom sa používajú “//roury//” (//pipe//).
  
 === Roury (pipe) === === Roury (pipe) ===
  
-Rúry sa používajú pre **zreťazenie viacerých príkazov do jedného**, prostredníctvom prepájania ich výstupov so vstupmi. Zapisuje sa znakom **''|''**.+Rúry sa používajú pre **zreťazenie viacerých príkazov do jedného**, prostredníctvom prepájania ich výstupov so vstupmi. Zapisuje sa znakom **''|''**.
  
-<code bash>+<code>
 Syntax: "príkaz1 | príkaz2" Syntax: "príkaz1 | príkaz2"
 Prepojí výstup príkazu-1 na vstup príkazu-2. Prepojí výstup príkazu-1 na vstup príkazu-2.
 </code> </code>
  
-Prikazy sa daju sekvenčne zapojit aj viac krát v //jednom//” príkaze.+Prikazy sa daju sekvenčne zapojit aj viac krát v //jednom// príkaze.
  
-<code bash>+<code>
 $ ls /usr/bin | grep yum $ ls /usr/bin | grep yum
 yum yum
Řádek 642: Řádek 652:
 </code> </code>
  
-(Nasledujúci súbor ''numbers.txt'' obsahuje nahodné čísla 0-10.)+Nasledujúci súbor ''numbers.txt'' obsahuje nahodné čísla 0-10.
  
-<code bash>+<code>
 $ cat numbers.txt | sort | uniq -c $ cat numbers.txt | sort | uniq -c
       2 0       2 0
Řádek 656: Řádek 666:
       4 8       4 8
       3 9       3 9
- 
-(Tento príkaz spočítal výskyt každého čisla v súbore ''numbers.txt'') 
 </code> </code>
 +
 +Tento príkaz spočítal výskyt každého čisla v súbore ''numbers.txt''.
  
  
 ===== Práce s textem, vstupem a výstupem ===== ===== Práce s textem, vstupem a výstupem =====
  
-V príkazovej riadke je bežný prípad, že potrebujete spracovať výstup nejakého príkazu. Taký klasický príklad je: máte súbor a hľadáte v ňom kľúčové slovo. Alebo máte adresára hľadáte kľúčové slovo v ktoromkoľvek súbore ktorý sa nachádza v spomínanom adresáre.+V príkazovej riadke je bežný prípad, že potrebujete spracovať výstup nejakého príkazu. Taký klasický príklad je: máte súbor a hľadáte v ňom kľúčové slovo. Alebo máte adresár a hľadáte kľúčové slovo v ktoromkoľvek súborektorý sa nachádza v spomínanom adresáre.
  
 Na hľadanie kľúčových slov je najpoužívanejší príkaz ''grep''. Teraz vás poprosím si pozrieť manuálovú stránku tohto príkazu ako aj nápovedu. (**Úloha**: ako to spraviť?) Na hľadanie kľúčových slov je najpoužívanejší príkaz ''grep''. Teraz vás poprosím si pozrieť manuálovú stránku tohto príkazu ako aj nápovedu. (**Úloha**: ako to spraviť?)
Řádek 671: Řádek 681:
 Naša úloha bude, že sa snažíme nájsť reťazec ''PATH'' v súbore ''/etc/bashrc''. Naša úloha bude, že sa snažíme nájsť reťazec ''PATH'' v súbore ''/etc/bashrc''.
  
-<code  bash+<code> 
-$ grep PATH /etc/bashrc                                                                                                                                        +$ grep PATH /etc/bashrc
         case ":${PATH}:" in         case ":${PATH}:" in
                     PATH=$PATH:$1                     PATH=$PATH:$1
Řádek 680: Řádek 690:
 Reťazec sme našli. Mohli by sme dostať aj čísla riadkov? Reťazec sme našli. Mohli by sme dostať aj čísla riadkov?
  
-<code bash>$ grep -n PATH /etc/bashrc                                                                                                                                     +<code>$ grep -n PATH /etc/bashrc
 58:        case ":${PATH}:" in 58:        case ":${PATH}:" in
 63:                    PATH=$PATH:$1 63:                    PATH=$PATH:$1
 65:                    PATH=$1:$PATH</code> 65:                    PATH=$1:$PATH</code>
  
-Kde všade môžeme ešte kľúčové slovo PATH nájsť v ''/etc/''?+Kde všade môžeme ešte kľúčové slovo ''PATH'' nájsť v ''/etc/''?
  
-<code bash+<code> 
-$ grep -R PATH /etc/                                                               +$ grep -R PATH /etc/
 grep: /etc/pki/tls/certs/ca.crt: Permission denied grep: /etc/pki/tls/certs/ca.crt: Permission denied
 grep: /etc/pki/rsyslog: Permission denied grep: /etc/pki/rsyslog: Permission denied
Řádek 696: Řádek 706:
 grep: /etc/ssh/ssh_host_ed25519_key: Permission denied grep: /etc/ssh/ssh_host_ed25519_key: Permission denied
 grep: /etc/ssh/sshd_config.rpmnew: Permission denied grep: /etc/ssh/sshd_config.rpmnew: Permission denied
-/etc/bashrc:        case ":${PATH}:" in                                                         +/etc/bashrc:        case ":${PATH}:" in 
-/etc/bashrc:                    PATH=$PATH:$1                                                                               +/etc/bashrc:                    PATH=$PATH:$1 
-/etc/bashrc:                    PATH=$1:$PATH                                                              +/etc/bashrc:                    PATH=$1:$PATH 
-Binary file /etc/udev/hwdb.bin matches                                                                                                                                       +Binary file /etc/udev/hwdb.bin matches 
-/etc/csh.login: switch (":${PATH}:"    +/etc/csh.login: switch (":${PATH}:")
  
 </code> </code>
Řádek 710: Řádek 720:
 ==== Premenné prostredia ==== ==== Premenné prostredia ====
  
-Každý linuxový proces ma množinu premenných prostredia ktoré sú mu dostupne. Veľmi ľahko si ich môžeme všetky vypísať pomocou príkazu ''env''. Rovnako môžete tieto premenné ľahko zadefinovať sami a využívať ich v príkazovej riadke pomocou konštruktu ''$MENO_PREMENNEJ''. Teraz si vypíšeme obsah premennej prostredia ''PATH'':+Každý linuxový proces ma množinu premenných prostrediaktoré sú mu dostupne. Veľmi ľahko si ich môžeme všetky vypísať pomocou príkazu ''env''. Rovnako môžete tieto premenné ľahko zadefinovať sami a využívať ich v príkazovej riadke pomocou konštruktu ''$MENO_PREMENNEJ''. Teraz si vypíšeme obsah premennej prostredia ''PATH'':
  
-<code bash>$ echo $PATH</code>+<code>$ echo $PATH</code>
  
 Ľahko si môžeme zadefinovať vlastnú premennú a pouziť ju: Ľahko si môžeme zadefinovať vlastnú premennú a pouziť ju:
  
-<code bash>$ export TAJNY_SUBOR=/etc/bashrc</code>+<code>$ export TAJNY_SUBOR=/etc/bashrc</code>
  
 a následne v tomto tajnom súbore niečo nájsť: a následne v tomto tajnom súbore niečo nájsť:
  
-<code bash>$ grep PATH $TAJNY_SUBOR</code>+<code>$ grep PATH $TAJNY_SUBOR</code>
  
  
Řádek 727: Řádek 737:
 Všetko príkazy, ktoré sme doteraz zadali do príkazovej riadky, môžeme zapísať do súboru a vykonať sekvenčne: Všetko príkazy, ktoré sme doteraz zadali do príkazovej riadky, môžeme zapísať do súboru a vykonať sekvenčne:
  
-<code bash>$ vim nas-prvy-skript.sh</code>+<code>$ vim nas-prvy-skript.sh</code>
  
-<code bash>export TAJNY_SUBOR=/etc/bashrc +<code bash>export TAJNY_SUBOR=/etc/bashrc 
-grep PATH $TAJNY_SUBOR</code>+grep PATH $TAJNY_SUBOR</code>
  
 a následne vykonať: a následne vykonať:
  
-<code bash>$ bash nas-prvy-skript.sh</code>+<code>$ bash nas-prvy-skript.sh</code>
  
 {{:skoleni:org.gnome.todo.png?48|}}**Náročná úloha:** napíšte do príkazovej riadky ''cat'' a následne ''skúška'' a potvrdte enterom. Dokážete popísať, co sa práve deje? {{:skoleni:org.gnome.todo.png?48|}}**Náročná úloha:** napíšte do príkazovej riadky ''cat'' a následne ''skúška'' a potvrdte enterom. Dokážete popísať, co sa práve deje?
Řádek 744: Řádek 754:
  
  
-== Prvé spustenie ==+==== Prvé spustenie ====
  
 Textový editor sa spúšťa pomocou príkazu ''vi''. Ako [[link na vysvetlenie argumentu|argument]] je mu predaný názov súboru, ktorý sa chystáme upravovať. Textový editor sa spúšťa pomocou príkazu ''vi''. Ako [[link na vysvetlenie argumentu|argument]] je mu predaný názov súboru, ktorý sa chystáme upravovať.
Řádek 752: Řádek 762:
 Po spustení sa príkazový riadok nahradí náhľadom obsahu súboru. Vlnovky označujú prázdne riadky na konci súboru. Vľavo dolu sa zobrazí názov súboru, počet jeho riadkov a znakov alebo informácia o tom, že sa vytvoril nový súbor. Na tomto mieste sa budú zobrazovať aj informácie o iných vykonaných zmenách. V pravo dole je percentuálna alebo slovná reprezentácia pozície v dokumente. Po spustení sa príkazový riadok nahradí náhľadom obsahu súboru. Vlnovky označujú prázdne riadky na konci súboru. Vľavo dolu sa zobrazí názov súboru, počet jeho riadkov a znakov alebo informácia o tom, že sa vytvoril nový súbor. Na tomto mieste sa budú zobrazovať aj informácie o iných vykonaných zmenách. V pravo dole je percentuálna alebo slovná reprezentácia pozície v dokumente.
  
-== Módy editora ==+==== Módy editora ====
  
 Editor vi má tri používané módy - základný, insert a vizuálny. V **základnom** móde je konzola pripravená prijímať nové príkazy v podobe jednotlivých kláves alebo slovné príkazy v podobe reťazcov začínajúcich dvojbodkou. Každá klávesa môže mať svoj špecifický význam. Napríklad stlačením klávesy **''x''** sa odstráni písmeno na pozícii kurzora alebo stlačením **''u''** sa vrátime o krok späť (podobne ako <ctrl>+z v iných editoroch). Editor vi má tri používané módy - základný, insert a vizuálny. V **základnom** móde je konzola pripravená prijímať nové príkazy v podobe jednotlivých kláves alebo slovné príkazy v podobe reťazcov začínajúcich dvojbodkou. Každá klávesa môže mať svoj špecifický význam. Napríklad stlačením klávesy **''x''** sa odstráni písmeno na pozícii kurzora alebo stlačením **''u''** sa vrátime o krok späť (podobne ako <ctrl>+z v iných editoroch).
Řádek 760: Řádek 770:
 Tretí z používaných módov je **vizuálny** a spúšťa sa pomocou klávesy **''v''**. Tu je možné označiť časť textu a previezť na nej nejaký príkaz, napríklad skopírovanie do schránky. Návrat do základného módu opäť vykonáme pomocou **''<Esc>''**. Tretí z používaných módov je **vizuálny** a spúšťa sa pomocou klávesy **''v''**. Tu je možné označiť časť textu a previezť na nej nejaký príkaz, napríklad skopírovanie do schránky. Návrat do základného módu opäť vykonáme pomocou **''<Esc>''**.
  
-== Navigácia v súbore v základnom móde ==+==== Navigácia v súbore v základnom móde ====
  
-Napravo vidíme aktuálnu pozíciu kurzoru vo formáte riadok,(bajt-)stĺpec **''0,0-1''**. Túto pozíciu a teda kurzor, je možné meniť pomocou šípok alebo kláves **''h''**, **''j''**, **''k''**a **''l''**. Okrem toho existuje množstvo skratiek na zjednodušenie orientácie vo veľkých súboroch, napríklad:+Napravo vidíme aktuálnu pozíciu kurzoru vo formáte riadok,(bajt-)stĺpec **''0,0-1''**. Túto pozíciu a teda kurzor, je možné meniť pomocou šípok alebo kláves **''h''**, **''j''**, **''k''** a **''l''**. Okrem toho existuje množstvo skratiek na zjednodušenie orientácie vo veľkých súboroch, napríklad:
  
   * Presun kurzora na začiatok súboru - **''G''**   * Presun kurzora na začiatok súboru - **''G''**
Řádek 769: Řádek 779:
  
  
-== Príkazy začínajúce dvojbodkou ==+==== Príkazy začínajúce dvojbodkou ====
  
 Editor vi umožňuje vykonávanie zložitejších výkonov pomocou krátkych interpretácií príkazov. Toto je užitočné napríklad keď je potrebné: Editor vi umožňuje vykonávanie zložitejších výkonov pomocou krátkych interpretácií príkazov. Toto je užitočné napríklad keď je potrebné:
Řádek 778: Řádek 788:
   * a mnoho iných.   * a mnoho iných.
  
-== Návrat k príkazovému riadku (ukončenie vi) ==+==== Návrat k príkazovému riadku (ukončenie vi) ====
  
 A teraz to najdôležitejšie! Ako to všetko uložiť a vrátiť sa k príkazovému riadku. Na to nám slúžia príkazy začínajúce dvojbodkou v základnom móde: A teraz to najdôležitejšie! Ako to všetko uložiť a vrátiť sa k príkazovému riadku. Na to nám slúžia príkazy začínajúce dvojbodkou v základnom móde:
  
-  * uloženie a návrat do CLI- **'':wq''**+  * uloženie a návrat do CLI - **'':wq''**
   * návrat do CLI bez uloženia - **'':q!''**   * návrat do CLI bez uloženia - **'':q!''**
  
-== Ako sa stať kúzelníkom pri editovaní ==+==== Ako sa stať kúzelníkom pri editovaní ==== 
 + 
 +Obsah toho krátkeho tréningu bol len základ. Editor vi a jeho vylepšený brat **vim** poskytuje mnoho nástrojov a rozšírení, ktorých osvojením si človek ľahko zrýchli a spríjemní svoje pracovné úkony. Balíček //vim-enhanced//, ktorý by mal byť súčasťou väčšiny linuxových distribúcií, obsahuje mimo iného aj tutoriál v češtine (na dlhé zimné večery). Spúšťa sa na príkazovom riadku príkazom ''vimtutor''. Na základné, nevyhnutné použitie ale stačí pamätať si postupnosť **''i''**, <zmeny>, <Esc> a **'':wq''**. 
 + 
 +===== Dotazy a diskuse =====
  
-Obsah toho krátkeho tréningu bol len základ. Editor vi jeho vylepšený brat **vim** poskytuje mnoho nástrojov a rozšírení, ktorých osvojením si človek ľahko zrýchli a spríjemní svoje pracovné úkonyBalíček vim-enhanced, ktorý by mal byť súčasťou väčšiny linuxových distribúcií obsahuje mimo iného aj tutoriál v češtine (na dlhé zimné večery)Spúšťa sa na príkazovom riadku príkazom **''vimtutor''**Na základné, nevyhnutné použitie ale stačí pamätať si postupnosť **''i, <zmeny>, <Esc> a :wq''**.+Pokládat dotazy diskutovat o tomto školení můžete v [[https://forum.mojefedora.cz/t/skoleni-zaklady-prikazove-radky/7717| diskusním vlákně]] na forum.mojefedora.cz.
  
  • Poslední úprava: 2022/11/14 11:12
  • (upraveno mimo DokuWiki)