{"id":584,"date":"2020-04-08T18:18:16","date_gmt":"2020-04-08T16:18:16","guid":{"rendered":"http:\/\/tech.sosthe.sk\/?page_id=584"},"modified":"2020-04-08T18:36:15","modified_gmt":"2020-04-08T16:36:15","slug":"praca-s-prikazovym-riadkom","status":"publish","type":"page","link":"http:\/\/tech.sosthe.sk\/index.php\/odborne-predmety\/pocitacove-systemy\/praca-s-prikazovym-riadkom\/","title":{"rendered":"Pr\u00e1ca s pr\u00edkazov\u00fdm riadkom"},"content":{"rendered":"<header class=\"entry-header\">\n<p class=\"entry-title\"><span style=\"font-size: 16px;\">Pr\u00edkazov\u00e9 procesory (CLI &#8211; command line interface) s\u00fa aplik\u00e1cie, ktor\u00e9 komunikuj\u00fa priamo s opera\u010dn\u00fdm syst\u00e9mom. Ku svojej pr\u00e1ci obvykle nepotrebuj\u00fa \u017eiadne grafick\u00e9 rozhranie \u2013 in\u0161trukcie a pr\u00edkazy posielaj\u00fa priamo syst\u00e9mu. Vynechanie grafick\u00e9ho rozhrania v\u0161etko zr\u00fdch\u013euje.<\/span><\/p>\n<\/header>\n<div class=\"entry-content\">\n<p>Pr\u00edkazov\u00fd riadok m\u00f4\u017eete spusti\u0165 dvoma sp\u00f4sobmi (v skuto\u010dnosti ich je viac, ale tieto sa pou\u017e\u00edvaj\u00fa naj\u010dastej\u0161ie):<\/p>\n<ul>\n<li>kliknete na tla\u010d\u00edtko Start -&gt; Programs -&gt; Accessories -&gt; Command Prompt<\/li>\n<li>kliknete na tla\u010d\u00edtko Start -&gt; Run nap\u00ed\u0161ete cmd a stla\u010d\u00edte ENTER (tip: e\u0161te r\u00fdchlej\u0161ie je pou\u017eitie kl\u00e1vesov\u00fdch skratiek: <strong>\u201eWIN Key\u201c + R<\/strong>)<\/li>\n<\/ul>\n<p>Defaultne pr\u00edkazov\u00fd riadok je 80 znakov \u0161irok\u00fd a zobrazuje 25 riadkov textu. Toto spr\u00e1vanie (ako aj nastavenie \u010fal\u0161\u00edch parametrov) m\u00f4\u017ete zmeni\u0165 viacer\u00fdmi sp\u00f4sobmi, ako napr. \u010fal\u0161\u00edmi parametrami pri spusten\u00ed, pr\u00edpadne upraven\u00fdm \u0161tartovac\u00edm s\u00faborom, ktor\u00fd je umiestnen\u00fd v adres\u00e1ri <em>%SystemRoot%\\System32<\/em>.<\/p>\n<p>Zobraz\u00ed sa v\u00e1m pr\u00edkazov\u00fd riadok so zobrazen\u00fdm aktu\u00e1lnym pracovn\u00fdm adres\u00e1rom, o\u010dak\u00e1vaj\u00faci zadanie pr\u00edkazu. Tieto pr\u00edkazy sa delia na:<\/p>\n<ul>\n<li>intern\u00e9 pr\u00edkazy \u2013 zabudovan\u00e9 do pr\u00edkazov\u00e9ho procesora, t.j. nemaj\u00fa samostatn\u00e9 spustite\u013en\u00e9 s\u00fabory (cd ,dir, rd\u2026)<\/li>\n<li>extern\u00e9 pr\u00edkazy \u2013 maj\u00fa vlastn\u00e9 spustite\u013en\u00e9 s\u00fabory (xcopy, setx\u2026)<\/li>\n<\/ul>\n<p>Syntax pr\u00edkazu zist\u00edme obvykle zadan\u00edm parametra \/? na pr\u00edkazovom riadku. Napr.:<\/p>\n<p><span style=\"font-family: 'courier new', courier, monospace;\"><code>copy \/?<\/code><\/span><\/p>\n<p>Pr\u00edkazov\u00fd riadok podporuje tzv. d\u00e1vkov\u00fd (batch) m\u00f3d, ktor\u00fd umo\u017e\u0148uje vykonanie skupiny pr\u00edkazov. Zvy\u010dajne s\u00fa d\u00e1vkov\u00e9 pr\u00edkazy \u010d\u00edtan\u00e9 zo s\u00faboru, ale tie\u017e m\u00f4\u017eu by\u0165 zadan\u00e9 na pr\u00edkazovom riadku \u2013 napr\u00edklad FOR a vykonanie nejakej oper\u00e1cie nad viacer\u00fdmi s\u00fabormi.<\/p>\n<h3>Kl\u00e1vesov\u00e9 skratky<\/h3>\n<p>Kl\u00e1vesov\u00e9 skratky u\u013eah\u010duj\u00fa z\u00e1sadn\u00fdm sp\u00f4sobom pr\u00e1cu s pr\u00edkazov\u00fdm riadkom. Tu je zoznam najpou\u017e\u00edvanej\u0161\u00edch kl\u00e1vesov\u00fdch skratiek:<\/p>\n<table style=\"width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 22.4159%;\" width=\"130\"><strong>\u0161\u00edpka hore<\/strong><\/td>\n<td style=\"width: 76.8369%;\">predo\u0161l\u00fd pr\u00edkaz<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>\u0161\u00edpka dole<\/strong><\/td>\n<td style=\"width: 76.8369%;\">nasleduj\u00faci pr\u00edkaz<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>PAGEUP<\/strong><\/td>\n<td style=\"width: 76.8369%;\">najstar\u0161\u00ed pr\u00edkaz v session<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>PAGEDOWN<\/strong><\/td>\n<td style=\"width: 76.8369%;\">posledn\u00fd pr\u00edkaz<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>\u0161\u00edpka v\u013eavo<\/strong><\/td>\n<td style=\"width: 76.8369%;\">posun kurzoru do\u013eava o jeden znak<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>\u0161\u00edpka vpravo<\/strong><\/td>\n<td style=\"width: 76.8369%;\">posun kurzoru doprava o jeden znak<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>CTRL+\u0161\u00edpka v\u013eavo<\/strong><\/td>\n<td style=\"width: 76.8369%;\">posun kurzoru do\u013eava o jeden znak<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>CTRL+\u0161\u00edpka vpravo<\/strong><\/td>\n<td style=\"width: 76.8369%;\">posun kurzoru doprava o jedno slovo<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>HOME<\/strong><\/td>\n<td style=\"width: 76.8369%;\">posun kurzoru na za\u010diatok riadku<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>END<\/strong><\/td>\n<td style=\"width: 76.8369%;\">posun kurzoru na koniec riadku<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>ESC<\/strong><\/td>\n<td style=\"width: 76.8369%;\">vyma\u017ee pr\u00edkaz<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>F4<\/strong><\/td>\n<td style=\"width: 76.8369%;\">vyma\u017ee znaky od aktu\u00e1lnej poz\u00edcie kurzora a\u017e po \u0161pecifikovan\u00fd znak<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>F7<\/strong><\/td>\n<td style=\"width: 76.8369%;\">zobraz\u00ed v\u0161etky pr\u00edkazy pou\u017eit\u00e9 v session ako menu a umo\u017en\u00ed v\u00fdber<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>ALT-F7<\/strong><\/td>\n<td style=\"width: 76.8369%;\">vyma\u017ee v\u0161etky pr\u00edkazy z hist\u00f3rie<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>F8<\/strong><\/td>\n<td style=\"width: 76.8369%;\">zobraz\u00ed v\u0161etky pr\u00edkazy z hist\u00f3rie, ktor\u00e9 za\u010d\u00ednaj\u00fa znakom, ktor\u00fd ste zadali pred stla\u010den\u00edm F8<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 22.4159%;\"><strong>F9<\/strong><\/td>\n<td style=\"width: 76.8369%;\">umo\u017en\u00ed zada\u0165 pr\u00edkaz z hist\u00f3rie jeho poradov\u00fdm \u010d\u00edslom (vi\u010f F7)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Presmerovanie \u0161tandardn\u00e9ho vstupu, v\u00fdstupu a chyby<\/h3>\n<p>Sk\u00faste vykona\u0165 pr\u00edkaz, ktor\u00fd vyp\u00ed\u0161e obsah adres\u00e1ra c:\\windows\\system32\\. Tento adres\u00e1r obsahuje mno\u017estvo s\u00faborov a pri zobrazen\u00ed ich mien zostane na obrazovke len nieko\u013eko a ostatn\u00e9 \u201eute\u010d\u00fa\u201c. Ako tento probl\u00e9m rie\u0161i\u0165?<\/p>\n<p>Opera\u010dn\u00fd syst\u00e9m Windows pon\u00faka program\u00e1torom ve\u013emi jednoduch\u00fd sp\u00f4sob z\u00e1pisu na termin\u00e1l. Ak nejak\u00fd program nie\u010do vypisuje na va\u0161u obrazovku, pou\u017e\u00edva tzv. \u0161tandardn\u00fd v\u00fdstup [stdout \u00ad- standard output]. Na druhej strane existuje \u0161tandardn\u00fd vstup [stdin -\u00ad standard input], ktor\u00fd sl\u00fa\u017ei na vstup d\u00e1t od pou\u017e\u00edvate\u013ea. Samozrejme, je mo\u017en\u00e9 aby program komunikoval bez pou\u017eitia \u0161tandardn\u00e9ho vstupu a v\u00fdstupu, ale v\u00e4\u010d\u0161ina programov, ktor\u00fdmi sa tu zaober\u00e1me, pou\u017e\u00edva pr\u00e1ve \u0161tandardn\u00fd vstup a v\u00fdstup.<\/p>\n<p>Napr\u00edklad pr\u00edkaz dir vypisuje zoznam adres\u00e1rov a s\u00faborov na \u0161tandardn\u00fd v\u00fdstup, ktor\u00fd je norm\u00e1lne spojen\u00fd s termin\u00e1lom. Pr\u00edkazov\u00fd interpret \u010d\u00edta vami zadan\u00e9 d\u00e1ta zo \u0161tandardn\u00e9ho vstupu. Programy tie\u017e m\u00f4\u017eu zapisova\u0165 do tzv. \u0161tandardn\u00e9ho chybov\u00e9ho v\u00fdstupu [stderr \u00ad- standard error]. \u0160tandardn\u00fd chybov\u00fd v\u00fdstup je temer v\u00fdlu\u010dne spojen\u00fd so \u0161tandardn\u00fdm v\u00fdstupom, preto m\u00f4\u017eu pou\u017e\u00edvatelia sledova\u0165 chybov\u00e9 stavy. V nasleduj\u00facich kapitol\u00e1ch si uk\u00e1\u017eeme, ako m\u00f4\u017eeme vyu\u017e\u00edva\u0165 \u0161tandardn\u00fd vstup a v\u00fdstup v kon\u0161trukci\u00e1ch, ktor\u00fdm sa hovor\u00ed presmerovanie vstupu, presmerovanie v\u00fdstupu a r\u00fara vstupu a v\u00fdstupu.<\/p>\n<h3>Presmerovanie v\u00fdstupu:<\/h3>\n<p>Ve\u013emi d\u00f4le\u017eitou vlastnos\u0165ou opera\u010dn\u00e9ho syst\u00e9mu je mo\u017enos\u0165 presmerovania v\u00fdstupu. Toto umo\u017e\u0148uje pou\u017e\u00edvate\u013eovi presmerova\u0165 v\u00fdstup pr\u00edkazu na tla\u010diare\u0148 i do s\u00faboru. Ak chcete presmerova\u0165 v\u00fdstup pr\u00edkazu\u00a0<code>dir c:\\windows\\system32\\<\/code>\u00a0do s\u00faboru, nap\u00ed\u0161te za tento pr\u00edkaz znak &gt; a n\u00e1zov s\u00faboru do ktor\u00e9ho chcete v\u00fdstup presmerova\u0165.<\/p>\n<h3>Presmerovanie vstupu:<\/h3>\n<p>Tak ako je mo\u017en\u00e9 presmerova\u0165 \u0161tandardn\u00fd v\u00fdstup, je mo\u017en\u00e9 presmerova\u0165 aj \u0161tandardn\u00fd vstup. Miesto toho, aby program \u010d\u00edtal z kl\u00e1vesnice, bude \u010d\u00edta\u0165 zo s\u00faboru. Preto\u017ee sa presmerovanie vstupu logicky via\u017ee na presmerovanie v\u00fdstupu, je prirodzen\u00e9 vyhradi\u0165 pre\u0148 znak\u00a0<strong>&lt;<\/strong>. Tento znak sa rovnako uv\u00e1dza za pr\u00edkazom, ktor\u00fd chcete realizova\u0165. Presmerovanie m\u00e1 v\u00fdznam hlavne vtedy, ak m\u00e1te s\u00fabor obsahuj\u00faci d\u00e1ta a a program, ktor\u00fd d\u00e1ta \u010d\u00edta zo \u0161tandardn\u00e9ho vstupu. Plat\u00ed v\u0161ak, \u017ee v\u00e4\u010d\u0161ina programov vy\u017eaduje uvedenie n\u00e1zvu s\u00faboru, ktor\u00fd obsahuje d\u00e1ta a preto nie je presmerovanie vstupu tak\u00fdm \u010dast\u00fdm javom ako presmerovanie v\u00fdstupu.<\/p>\n<h3>R\u00fara:<\/h3>\n<p>Mno\u017estvo pr\u00edkazov produkuje ve\u013ek\u00e9 mno\u017estvo inform\u00e1ci\u00ed. Uv\u00e1dzan\u00fd pr\u00edkaz\u00a0<code>dir c:\\windows\\system32\\<\/code>\u00a0vypisuje to\u013eko inform\u00e1ci\u00ed, \u017ee nie je mo\u017en\u00e9 prezrie\u0165 si ich v\u0161etky naraz. Aby sme umo\u017enili pohodln\u00e9 prezeranie tak\u00fdchto v\u00fdstupov, mus\u00edme pou\u017ei\u0165 \u010fal\u0161\u00ed pr\u00edkaz, ktor\u00fd m\u00e1 n\u00e1zov\u00a0<code>more<\/code>. Tento pr\u00edkaz sp\u00f4sob\u00ed zastavenie v\u00fdspisu na obrazovku v momente ako sa obrazovka zapln\u00ed. Pr\u00edkaz\u00a0<code>more &lt; dir<\/code>\u00a0v\u0161ak nebude fungova\u0165, preto\u017ee presmerovanie funguje iba so s\u00fabormi, nie s pr\u00edkazmi. Na\u0161\u0165astie syst\u00e9m Unix pon\u00faka elegantnej\u0161\u00ed sp\u00f4sob. Sta\u010d\u00ed ke\u010f zad\u00e1te pr\u00edkaz\u00a0<code>dir c:\\windows\\system32\\ | more<\/code>. Znak\u00a0<strong>|<\/strong>\u00a0indikuje tzv. r\u00faru. R\u00faram sa hovor\u00ed tok d\u00e1t. U\u017eito\u010dnos\u0165 r\u00fary e\u0161te viac narast\u00e1 v spojen\u00ed s \u010fal\u0161\u00edmi n\u00e1strojmi, ktor\u00fdm sa hovor\u00ed filtre. Filter je program, ktor\u00fd \u010d\u00edta \u0161tandardn\u00fd vstup, definovan\u00fdm sp\u00f4sobom ho uprav\u00ed a po\u0161le na \u0161tandardn\u00fd v\u00fdstup. Pr\u00edkladom filtra je pr\u00e1ve pr\u00edkaz\u00a0<code>more<\/code>, ktor\u00fd \u010d\u00edta d\u00e1ta zo \u0161tandardn\u00e9ho vstupu, upravuje ich, vypisuje na obrazovku a umo\u017e\u0148uje pou\u017e\u00edvate\u013eovi prehliadnu\u0165 cel\u00fd s\u00fabor. more v\u0161ak nie je \u00faplne dokonal\u00fd filter, preto\u017ee jeho v\u00fdstup nie je vhodn\u00fd na to, aby bol ur\u010den\u00fd ako vstup \u010fal\u0161ieho programu. Pr\u00edkladom filtrov s\u00fa napr\u00edklad find alebo sort.<\/p>\n<h3>Presmerovanie \u0161tandardn\u00e9ho chybov\u00e9ho v\u00fdstupu:<\/h3>\n<p>Obvykle je \u0161tandardn\u00fd chybov\u00fd v\u00fdstup priamo spojen\u00fd so \u0161tandardn\u00fdm v\u00fdstupom. Ak v\u0161ak sp\u00fa\u0161\u0165ate napr\u00edklad d\u00e1vkov\u00e9 s\u00fabory m\u00f4\u017ete presmerova\u0165 \u0161tandardn\u00fd chybov\u00fd v\u00fdstup do s\u00faboru, ktor\u00fd potom m\u00f4\u017eete \u010falej spracova\u0165.<\/p>\n<p>Pr\u00edklad presmerovania do s\u00faboru:<\/p>\n<p><span style=\"font-family: 'courier new', courier, monospace;\"><code>chkdsk \/r 2&gt; diskerrors.txt<\/code><\/span><\/p>\n<p>Pr\u00edklad presmerovania na \u0161tandardn\u00fd v\u00fdstup:<\/p>\n<p><span style=\"font-family: 'courier new', courier, monospace;\"><code>chkdsk \/r &gt; diskerrors.txt 2&gt;&amp;1<\/code><\/span><\/p>\n<h3>Zoznam presmerovan\u00ed:<\/h3>\n<ul>\n<li><strong>command1 | command2<\/strong>\u00a0Sends the output of the first command to be the input of the second command.<\/li>\n<li><strong>command &lt; [path]filename<\/strong>\u00a0Takes command input from the specified file path.<\/li>\n<li><strong>command &gt; [path]filename<\/strong>\u00a0Sends output to the named file, creating the file if necessary or overwriting it if it already exists.<\/li>\n<li><strong>command &gt;&gt; [path]filename<\/strong>\u00a0Appends output to the named file if it exists or creates the file and then writes to it.<\/li>\n<li><strong>command &lt; [path]filename &gt; [path]filename<\/strong>\u00a0Gets command input from the specified file and then sends command output to the named file.<\/li>\n<li><strong>command &lt; [path]filename &gt;&gt; [path]filename<\/strong>\u00a0Gets command input from the specified file and then appends command output to the named file.<\/li>\n<li><strong>command 2&gt; [path]filename<\/strong>\u00a0Creates the named file and sends any error output to it. If the file exists, it is overwritten.<\/li>\n<li><strong>command 2&gt;&amp;1 filename<\/strong>\u00a0Sends error output to the same destination as standard output.<\/li>\n<\/ul>\n<h3>Re\u0165azenie a zoskupenie pr\u00edkazov:<\/h3>\n<table>\n<tbody>\n<tr>\n<td width=\"30\"><strong>&amp;<\/strong><\/td>\n<td width=\"200\">pr\u00edkaz1 &amp; pr\u00edkaz2<\/td>\n<td>Vykon\u00e1 pr\u00edkaz1 a potom vykon\u00e1 pr\u00edkaz2.<\/td>\n<\/tr>\n<tr>\n<td><strong>&amp;&amp;<\/strong><\/td>\n<td>pr\u00edkaz1 &amp;&amp; pr\u00edkaz2<\/td>\n<td>Vykon\u00e1 pr\u00edkaz2 ak pr\u00edkaz1 skon\u010dil \u00faspe\u0161ne.<\/td>\n<\/tr>\n<tr>\n<td><strong>||<\/strong><\/td>\n<td>pr\u00edkaz1 || pr\u00edkaz2<\/td>\n<td>Vykon\u00e1 pr\u00edkaz2 ak pr\u00edkaz1 neskon\u010d\u00ed \u00faspe\u0161ne.<\/td>\n<\/tr>\n<tr>\n<td><strong>( )<\/strong><\/td>\n<td>(pr\u00edkaz1 &amp; pr\u00edkaz2) &amp;&amp; (pr\u00edkaz3)<\/td>\n<td>Pomocou z\u00e1tvoriek zoskup\u00edte skupiny pr\u00edkazov pre podmienen\u00e9 vykonanie zalo\u017een\u00e9 na \u00faspechu.<\/td>\n<\/tr>\n<tr>\n<td><strong>( )<\/strong><\/td>\n<td>(pr\u00edkaz1 &amp; pr\u00edkaz2) || (pr\u00edkaz3)<\/td>\n<td>Pomocou z\u00e1tvoriek zoskup\u00edte skupiny pr\u00edkazov pre podmienen\u00e9 vykonanie zalo\u017een\u00e9 na zlyhan\u00ed.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Pr\u00edklady:<\/strong><\/p>\n<p><span style=\"font-family: 'courier new', courier, monospace;\"><code>dir c:\\working\\logs\\current.log &amp;&amp; move current.log d:\\history\\logs<\/code><\/span><\/p>\n<p><span style=\"font-family: 'courier new', courier, monospace;\"><code>(hostname &amp; ipconfig &amp; netstat -a) &gt; current_config.log<\/code><\/span><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Pr\u00edkazov\u00e9 procesory (CLI &#8211; command line interface) s\u00fa aplik\u00e1cie, ktor\u00e9 komunikuj\u00fa priamo s opera\u010dn\u00fdm syst\u00e9mom. Ku svojej pr\u00e1ci obvykle nepotrebuj\u00fa \u017eiadne grafick\u00e9 rozhranie \u2013 in\u0161trukcie&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":13,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/pages\/584"}],"collection":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/comments?post=584"}],"version-history":[{"count":2,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/pages\/584\/revisions"}],"predecessor-version":[{"id":586,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/pages\/584\/revisions\/586"}],"up":[{"embeddable":true,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/pages\/13"}],"wp:attachment":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/media?parent=584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}