Najnovšie príspevky

Blogroll

System

Školenia


Main | »

Práca s príkazovým riadkom

By Erich Vinclav | január 1, 2008

Príkazové procesory sú aplikácie, ktoré komunikujú priamo s operačným systémom. Ku svojej práci obvykle nepotrebujú žiadne grafické rozhranie – inštrukcie a príkazy posielajú priamo systému. Vynechanie grafického rozhrania všetko zrýchľuje.
Napriek tomu, že príkazový riadok je mocný nástroj, mnoho administrátorov ho nepoužíva. Pokiaľ ale máte viac serverov, prípadne potrebujete vykonať trocha zložitejšie úlohy a to čo najrýchlejšie, jeho použitiu sa nevyhnete. Pomôže vám vyhnúť sa množstvu problémov.

Príkazový riadok môžete spustiť dvoma spôsobmi (v skutočnosti ich je viac, ale tieto sa používajú najčastejšie ;) ):

Defaultne príkazový riadok je 80 znakov široký a zobrazuje 25 riadkov textu. Toto správanie (ako aj nastavenie ďaších parametrov) môžte zmeniť viacerými spôsobmi, ako napr. ďalšími parametrami pri spustení, prípadne upraveným štartovacím súborom, ktorý je umiestnený v adresári %SystemRoot%\System32.

Zobrazí sa vám príkazový riadok so zobrazeným aktuálnym pracovným adresárom, očakávajúci zadanie príkazu. Tieto príkazy sa delia na:

Syntax príkazu obvykle zadaním parametra /? na príkazovom riadku. Napr.:

copy /?

Príkazový riadok podporuje tzv. dávkový (batch) mód, ktorý umožňuje vykonanie skupiny príkazov. Zvyčajne sú dávkové príkazy čítané zo súboru, ale tiež môžu byť zadané na príkazovom riadku – napríklad FOR a vykonanie nejakej operácie nad viacerými súbormi.

Klávesové skratky

Klávesové skratky uľahčujú zásadným spôsobom prácu s príkazovým riadkom. Tu je zoznam najpoužívanejších klávesových skratiek:

šípka hore predošlý príkaz
šípka dole nasledujúci príkaz
PAGEUP najstarší príkaz v session
PAGEDOWN posledný príkaz
šípka vľavo posun kurzoru doľava o jeden znak
šípka vpravo posun kurzoru doprava o jeden znak
CTRL+šípka vľavo posun kurzoru doľava o jeden znak
CTRL+šípka vpravo posun kurzoru doprava o jedno slovo
HOME posun kurzoru na začiatok riadku
END posun kurzoru na koniec riadku
ESC vymaže príkaz
F4 vymaže znaky od aktuálnej pozície kurzora až po špecifikovaný znak
F7 zobrazí všetky príkazy použité v session ako menu a umožní výber
ALT-F7 vymaže všetky príkazy z histórie
F8 zobrazí všetky príkazy z histórie, ktoré začínajú znakom, ktorý ste zadali pred stlačením F8
F9 umožní zadať príkaz z histórie jeho poradovým číslom (viď F7)

Presmerovanie štandardného vstupu, výstupu a chyby

Skúste vykonať príkaz, ktorý vypíše obsah adresára c:\windows\system32\. Tento adresár obsahuje množstvo súborov a pri zobrazení ich mien zostane na obrazovke len niekoľko a ostatné “utečú”. Ako tento problém riešiť?

Operačný systém Windows ponúka programátorom veľmi jednoduchý spôsob zápisu na terminál. Ak nejaký program niečo vypisuje na vašu obrazovku, používa tzv. štandardný výstup [stdout ­- standard output]. Na druhej strane existuje štandardný vstup [stdin -­ standard input], ktorý slúži na vstup dát od používateľa. Samozrejme, je možné aby program komunikoval bez použitia štandardného vstupu a výstupu, ale väčšina programov, ktorými sa tu zaoberáme, používa práve štandardný vstup a výstup.

Napríklad príkaz dir vypisuje zoznam adresárov a súborov na štandardný výstup, ktorý je normálne spojený s terminálom. Príkazový interpret číta vami zadané dáta zo štandardného vstupu. Programy tiež môžu zapisovať do tzv. štandardného chybového výstupu [stderr ­- standard error]. Štandardný chybový výstup je temer výlučne spojený so štandardným výstupom, preto môžu používatelia sledovať chybové stavy. V nasledujúcich kapitolách si ukážeme, ako môžeme využívať štandardný vstup a výstup v konštrukciách, ktorým sa hovorí presmerovanie vstupu, presmerovanie výstupu a rúra vstupu a výstupu.

Presmerovanie výstupu:

Veľmi dôležitou vlastnosťou operačného systému je možnosť presmerovania výstupu. Toto umožňuje používateľovi presmerovať výstup príkazu na tlačiareň i do súboru. Ak chcete presmerovať výstup príkazu dir c:\windows\system32\ do súboru, napíšte za tento príkaz znak > a názov súboru do ktorého chcete výstup presmerovať.

Presmerovanie vstupu:

Tak ako je možné presmerovať štandardný výstup, je možné presmerovať aj štandardný vstup. Miesto toho, aby program čítal z klávesnice, bude čítať zo súboru. Pretože sa presmerovanie vstupu logicky viaže na presmerovanie výstupu, je prirodzené vyhradiť preň znak <. Tento znak sa rovnako uvádza za príkazom, ktorý chcete realizovať. Presmerovanie má význam hlavne vtedy, ak máte súbor obsahujúci dáta a a program, ktorý dáta číta zo štandardného vstupu. Platí však, že väčšina programov vyžaduje uvedenie názvu súboru, ktorý obsahuje dáta a preto nie je presmerovanie vstupu takým častým javom ako presmerovanie výstupu.

Rúra:

Množstvo príkazov produkuje veľké množstvo informácií. Uvádzaný príkaz dir c:\windows\system32\ vypisuje toľko informácií, že nie je možné prezrieť si ich všetky naraz. Aby sme umožnili pohodlné prezeranie takýchto výstupov, musíme použiť ďalší príkaz, ktorý má názov more. Tento príkaz spôsobí zastavenie výspisu na obrazovku v momente ako sa obrazovka zaplní. Príkaz more < dir však nebude fungovať, pretože presmerovanie funguje iba so súbormi, nie s príkazmi. Našťastie systém Unix ponúka elegantnejší spôsob. Stačí keď zadáte príkaz dir c:\windows\system32\ | more. Znak | indikuje tzv. rúru. Rúram sa hovorí tok dát. Užitočnosť rúry ešte viac narastá v spojení s ďalšími nástrojmi, ktorým sa hovorí filtre. Filter je program, ktorý číta štandardný vstup, definovaným spôsobom ho upraví a pošle na štandardný výstup. Príkladom filtra je práve príkaz more, ktorý číta dáta zo štandardného vstupu, upravuje ich, vypisuje na obrazovku a umožňuje používateľovi prehliadnuť celý súbor. more však nie je úplne dokonalý filter, pretože jeho výstup nie je vhodný na to, aby bol určený ako vstup ďalšieho programu. Príkladom filtrov sú napríklad find alebo sort.

Presmerovanie štandardného chybového výstupu:

Obvykle je štandardný chybový výstup priamo spojený so štandardným výstupom. Ak však spúšťate napríklad dávkové súbory môžte presmerovať štandardný chybový výstup do súboru, ktorý potom môžete ďalej spracovať.

Príklad presmerovania do súboru:

chkdsk /r 2> diskerrors.txt

Príklad presmerovania na štandardný výstup:

chkdsk /r > diskerrors.txt 2>&1

Zoznam presmerovaní:

Reťazenie a zoskupenie príkazov:

& príkaz1 & príkaz2 Vykoná príkaz1 a potom vykoná príkaz2.
&& príkaz1 && príkaz2 Vykoná príkaz2 ak príkaz1 skončil úspešne.
|| príkaz1 || príkaz2 Vykoná príkaz2 ak príkaz1 neskončí úspešne.
( ) (príkaz1 & príkaz2) && (príkaz3) Pomocou zátvoriek zoskupíte skupiny príkazov pre podmienené vykonanie založené na úspechu.
( ) (príkaz1 & príkaz2) || (príkaz3) Pomocou zátvoriek zoskupíte skupiny príkazov pre podmienené vykonanie založené na zlyhaní.

Príklady:

dir c:\working\logs\current.log && move current.log d:\history\logs

(hostname & ipconfig & netstat -a) > current_config.log

Brand Amoxil is used to treat infections due to organisms that are susceptible to the effects of amoxicillin. Common infections that amoxicillin is used for include buy amoxil online This is a search tool to assist in finding state attorney general opinions when you want to find opinions by keywords across.
Let TFC Recycling set up a roll-off recycling container at your construction site. zithromax online Zithromax belongs to a class of macrolide antibiotics. This medication is used to treat various bacterial infections. The principle of its action is to halt the growth of
In adults (≥18 years of age), ACIPHEX ® 20 mg is indicated for: treatment of daytime and nighttime heartburn and other symptoms associated aciphex generic Online pharmacy drugstore: Gastrointestinal generic prescription drugs and medications. Buy Aciphex (Rabeprazole) online without prescription on discount

Topics: Príkazový riadok, Windows Server 2003 | 44 Comments »

44 Responses to “Práca s príkazovým riadkom”

  1. roberto Says:
    apríl 22nd, 2008 at 15:00

    zdravim chcem sa spytat, v byvalej praci som casto pouzival na komunikaciu medzi kolegami prikaz “net send meno text” a na ploche prijemcu sa objavila flash message, ale v tejto praci mi to nefunguje, kompy mame zosietovane ale stale neviem prist na problem, viete mi poradit prosim? dakujem

  2. admin Says:
    apríl 23rd, 2008 at 9:20

    Mate spustenu sluzbu Messenger na pocitacoch?

  3. tomas Says:
    august 9th, 2008 at 14:23

    dobrý den.chcel by som sa spytat či sa da prepnut pc cez prikazovy riadok do nudzoveho rezimu??
    Dakujem

  4. admin Says:
    august 10th, 2008 at 22:38

    Da sa restartovat – prikaz “shutdown /r”. Pre nudzovy rezim treba pri starte stlacit F8 a vybrat Safe Mode. Pravdu povediac, neviem o situacii, kedy by bolo potrebne spustat nudzovy rezim prikazom.

  5. tomas Says:
    august 12th, 2008 at 9:18

    no ked stlačim f8 mi to vypíše len hdd a cd rom…
    TO chcem viac menej iba preto,že dvd mi načíta medium iba v nudzovom režime…

    Dakujem

  6. admin Says:
    august 12th, 2008 at 17:40

    Nebude to nahodou preto, lebo klavesa F8 pri stlaceni v BIOS-e voli bootovacie medium? Takze este raz. F8 treba stlacit pri starte OPERACNEHO SYSTEMU a nie pocitaca.

  7. Jaro Says:
    september 30th, 2008 at 15:24

    zdravim,
    Chcel by som sa spýtať ,či sa nedá cez príkazový riadok ukončiť nejaký program?
    ďakujem

  8. admin Says:
    október 4th, 2008 at 13:47

    Samozrejme ze ano. Existuje prikaz taskkill. Ako parameter je mozne pouzit nazov programu, napriklad:

    taskkill /IM notepad.exe

    pripadne PID programu:

    taskkill /PID 1234

  9. Jaro Says:
    október 4th, 2008 at 19:57

    vyskusal som to “taskkill” a vobec mi to nejde, nevies co s tym??

  10. Jaro Says:
    október 4th, 2008 at 20:14

    pokracovanie:
    a este ja mam XP
    neni to kvoli tomu?

  11. admin Says:
    október 4th, 2008 at 22:48

    Samozrejme… :) Tu sa venujem vyhradne serverovym systemom :) Ale ked uz sme zacali, tak pre XP je to prikaz tskill.

  12. Jaro Says:
    október 5th, 2008 at 12:28

    skusal som to a vobec mi to nejde
    dal som “tskill notepad.exe” a mi to neviplo,
    neviete com??

  13. admin Says:
    október 5th, 2008 at 22:18

    Vieme com. Pretoze ty ukoncujes tymto postupom nieco co neexistuje. notepad.exe nie je nazov procesu. A teraz ako by si mal postupovat. V prvom rade spustit prikaz z prikazoveho riadku a nie cez Start->Run, snad by ti toho vypisal viac. Ak to nepomoze, pouzi google, napis “xp tskil”l a urcite hned na prvom odkaze bude vsetko jasne… :)

  14. admin Says:
    október 6th, 2008 at 9:42

    Do google samozrejme zadat “xp tskill” (bez uvodzoviek). Samozrejme, prikaz taskkill ma trocha inu syntax ako tskill. T.j. pokial sa v jednom pouziva ako parameter “notepad.exe” nemusi to nutne znamenat, ze to funguje presne tak isto aj v druhom programe. Preto si na prikazovom riadku napis “tskill /?” a uvidis mozne parametre. Samozrejme, mohol by som ti rovno povedat, kde je problem, ale to by nebola taka zabava… :)

  15. Jaro Says:
    október 7th, 2008 at 16:08

    tskill /? som uz dával ale bud som to tam dobre nepochopil alebo staci dat za parameter iba nazov procesu , skusal som tam dat aj napr. “explorer.exe” ale aj PID procesu a nic sa nestalo, ja som si pozeral procesi v “Spravca uloh” aj tie PID

  16. ervin Says:
    október 8th, 2008 at 9:14

    Tak dobre, nebudem ta trapit dalej… ;)
    tskill notepad

  17. Jaro Says:
    október 8th, 2008 at 13:11

    diki, ale mi to nejde, mal som zapnuty notepad, skusal som to dat a nic, neviplo ho

  18. ervin Says:
    október 9th, 2008 at 7:10

    V tom pripade musis hladat problem medzi klavesnicou a stolickou… ;) Takto je to urcite funkcne:
    – spustis notepad
    – spustis Command prompt
    – v Command promt-e napises:
    tskill notepad
    – notepad je ukonceny
    Pokial ti to nefunguje, kde mas hladat chybu som ti napisal… :)

  19. Jaro Says:
    október 11th, 2008 at 17:29

    mne to aj tak nejde.

  20. Abe Says:
    október 23rd, 2008 at 12:54

    tak potom nieco robis zle, pretoze to funguje presne tak ako ti to popisuju :)

  21. Palko Says:
    november 26th, 2008 at 14:51

    Ahoj, nevies ako vo windows xp v command promt switchnut usera napriklad chcem ked si spustim u usera cmd pracovat ako admin bez potreby ho odhlasit dakujem

  22. admin Says:
    november 29th, 2008 at 21:54

    Tak XP sa na tomto serveri urcite venovat nebudem, kedze uz niekolko rokov som ich nejak ani nevidel. Na Windows Server 2003 to je ale prikaz “runas”.

  23. Jozo Says:
    marec 6th, 2009 at 18:28

    Zdravim,
    chcem sa spytat, ci sa da ta rúra ( | ) pouzit aj na uz spusteny proces. Lebo ked dam Prikaz1 | Prikaz2, tak sa spusti novy Proces1 a novy Proces2. A ja by som potreboval, aby vystup z Prikazu1 isiel na std. vstup pre uz spusteny Proces2.

  24. admin Says:
    marec 14th, 2009 at 18:57

    Nie.

  25. Igor Says:
    máj 5th, 2009 at 0:02

    Srdečné pozdravenie.
    Viete mi niekto pomôcť s problémom? Nefungujú mi internetové prehliadače, no skype ide. Pri hľadaní problému som zistil, že sa mi na notebooku nedá spustiť príkazový riadok a tak neviem diagnostikovať podľa návodu čo ďalej. Po zadaní cez Štart atď. sa akosi tvári že sa čosi deje no vráti sa späť bez akejkoľvek zmeny a riadok sa nezobrazí. :(
    Ď.

  26. snehuliak Says:
    jún 29th, 2009 at 18:52

    Igor, nenapísal si, aký používaš OS(XP, alebo 2k3), pod akým účtom si prihlásený. A poznámka “sa akosi tvári že sa čosi deje” nie je presná, prosím bližšie špecifikuj…

  27. lolec Says:
    október 7th, 2009 at 10:36

    prosim vas da sa cez prikazovy riadok vypnut brana firewall ked nemam admin prava? a ak hej tak napiste plz hned aj akym prikazom

  28. admin Says:
    október 19th, 2009 at 20:05

    Prikaz je:
    netsh firewall set opmode disable

    Nemusi to byt admin, ale musi mat dostatocne prava… ;)

  29. danno1771 Says:
    november 15th, 2009 at 19:54

    dobry den
    najskor by som sa chcel podakovat tvorcom tohto webu ktory my uz mnoho krat svojimi radami pomohol dakujem velmi pekne. mal by som jednu otazku. mam win server 2003 enterprise na nom gene6 ftp a mam jednoduchy .bat subor ktory spustenim prekopiruje zlozku ftp na iny disk /mam to ako zalohu/ a potreboval by som vediet aky prikaz je treba doplnit aby sa mi to spustalo v urcitu hodinu. este na srednej som to skusal podarilo sa to ale uz si na to nespomynam a na internete som tento prikaz nenasiel za pomoc vopred dakujem.

  30. admin Says:
    november 24th, 2009 at 13:15

    Nie je to co hladas nahodou Task Scheduler? http://www.ervin.sk/?p=11

  31. palo Says:
    december 1st, 2009 at 20:35

    mam trivialny problem ale neviem ho vyriešiť. ked spustim *.exe v prikazovom riadku tak mi hned zmizne okno a nevidim co tam bolo. Ako to možem zastaviť a spätne si ho prezrieť?

  32. admin Says:
    december 13th, 2009 at 19:50

    Pretoze ho nespustas v realnom prikazovom riadku. Zrejme si mylis riadok “Spustit program” s cmd.exe :)

  33. oDgo Says:
    december 14th, 2009 at 8:47

    Taka drobnost ale mozno potesi.. hodi zoznam beziacich procesov do txt s riadkom “na kopirovanie” Vhodne pre vytvorenie batchu na zabitie procesov.. teda mozno sa vam zda byt kontraproduktivne .. ale ja niekedy vytvorim zoznam procesov ktore mi sice normalne bezia ale nie vzdy sa mi hodia.. ked potrebujem co najviac vykonu hodi sa mi zabit aj celeho explorera^^ [co samozrejme zabije aj vsetky child procesy cize vsetko.. ( taskkill /f /im “explorer.exe” ) CTRL+SHIFT+ESC nahodi taskmanager~a kde cez novy proces mozte nahodit s5 explorera alebo spustit len proces ktory vas zaujima .. napr totalcmd, winamp, hru .. whatever
    __ten tasklist>>

    @echo taskkill /f /pid >!.txt && tasklist /svc >> !.txt && start !.txt

    _~ have a gr8 day

  34. oDgo Says:
    december 14th, 2009 at 8:49

    2palo .. win+r cmd enter

  35. Mato Says:
    marec 23rd, 2010 at 9:13

    mam otazocku, existuje vo win serv 2003 nejaky monitor loginov + ip z ktorych sa pristupovalo? ide o to ze na server pristupuje viacero ludi ako admin a mam podozrenie ze jeden z ludi pristupuje neopravnene.

  36. Erich Vinclav Says:
    apríl 19th, 2010 at 14:45

    Samozrejme, treba pozriet event viewer, tam je poznacene, kedy, kto a z akej IP

  37. Etwin Says:
    apríl 30th, 2010 at 18:45

    Existujú v cmd aj premenné?

  38. Erich Vinclav Says:
    jún 8th, 2010 at 14:47

    Samozrejme. Zobrazite si ich prikazom SET.

  39. Dudko Says:
    marec 12th, 2012 at 18:23

    mam otazku…..poradite mi ? nejde mi spustit správca uloh
    :((( Stlačím CTRL + ALT + DEL a nič.Ani v ovladacom paneli neni.Dakujem.

  40. Dominik Says:
    jún 20th, 2012 at 11:23

    Zdravím,
    Nefungujú pri mi príkazy v príkazovam riadku, ak napíšem napr ipconfig napíše mi “není názvem vnitrniho ani vnejsiho prikazu”, ani help mi nejde. funguju iba zkladne typu cd

  41. Jakub Says:
    január 21st, 2013 at 20:11

    Zdravim chcel som sa spytat ako preinstalujem Windows cez Bios ked tam nie je operacny system… a ako preinstalujem Windows ked tam je operacny system. Diky

  42. Patrik Says:
    máj 2nd, 2013 at 13:09

    Potrebujem pomoc nejde mi prikazovy riadok no teda ide mi ale nejde mi zapisovat cez echo do suborov co mi predtym islo . Ani mi nenajde prikazy ping net atd

  43. Ján Novák Says:
    august 4th, 2014 at 8:20

    Zdravím!

    Prihlásený ako administrátor som vytvoril ešte jedno konto s heslom /s právami administrátora/ a pomocou klávesy Windows + R a príkazu redegit som ho ukryl, takže na uvítacej obrazovke ho nevidno. Ako sa mám k nemu prihlásiť pri zapínaní PC, teda bez použitia iného konta? Skúsil som klávesu F8 a voľbu šípkami na núdzový režim s príkazovým riadkom. nabehla mi kopa riadkov, každý začínal slovom Loading a na konci asi po 25. riadku bol nápis čakajte. Ten potom zhasol a objavila sa klasická prihlasovacia obrazovka /len trochu roztiahnutá/ a bez toho ukrytého konta.

    Po stlačení F8 by som sa mal dáko dostať k možnosti pomocou klávesnice vyťukať meno používateľa a hesla a takto teda zadať meno a heslo ukrytého užívateľa. Viete mi s tým, prosím, poradiť?

  44. Erich Vinclav Says:
    august 19th, 2014 at 13:44

    Prihlásiť sa pomocou iného účtu -> zadať login a heslo

Comments