Většina uživatelů ovládá počítač v grafickém rozhraní – myší nebo prstem kliká na ikonky, vybírá příkazy z menu a kouká na animace. Programátoři ale často ovládají počítač textově, v příkazové řádce: napíšou příkaz nebo otázku a přečtou si případnou odpověď. Někteří to nemají moc rádi (příkazy je potřeba si pamatovat), někteří si to užívají (textové příkazy lze jednoduše opakovat a automatizovat), ale fakt je, že bez základní znalosti příkazové řádky se programátor neobejde.
Seznamme se tedy se způsobem, který programátoři používají na zadávání příkazů.
Příkazová řádka (respektive program, kterému se říká i konzole či terminál; anglicky command line, console, terminal) se na různých systémech otevírá různě:
Nevíš-li si rady, zkus se zeptat kouče.
Po otevření konzole tě uvítá okýnko s řádkem textu,
kterým počítač vybízí k zadání příkazu.
Podle systému bude tento řádek končit buď znakem $
nebo >
,
před nímž můžou být ještě další informace:
$
>
Podle systému se potom liší i samotné příkazy, které budeš zadávat.
Velikost písma
Je-li ve Windows moc malé písmo, klikni na ikonku okna a vyber Možnosti. V záložce Písmo si pak můžeš vybrat větší font.
Na ostatních systémech hledej v nastavení, nebo zkus Ctrl++ a Ctrl+- (příp. se Shift).
Začneme jednoduchým příkazem.
Napiš whoami
(z angl. who am I? – kdo jsem?)
a stiskni Enter.
Objeví se přihlašovací jméno. Třeba u Heleny to vypadalo takhle:
$ whoami
helena
> whoami
pocitac\Helena
Znak $
nebo >
je v ukázce jen proto, aby bylo jasné, že zadáváme
příkaz do příkazové řádky.
Vypíše ho počítač, většinou ještě s něčím před ním,
takže ho nepiš sama! Zadej jen whoami
a Enter.
Stejně tak počítač sám vypíše přihlašovací jméno.
Příkazová řádka pracuje vždy v nějakém adresáři (neboli složce, angl. directory, folder).
Je to podobné, jako když si na počítači otevřeš prohlížeč souborů. Na každém počítači takový program vypadá trochu jinak, ale většinou máš nahoře jméno aktuálního adresáře a v hlavním okýnku seznam souborů, které v tom adresáři jsou:
Podobně příkazová řádka je vždy „v“ nějakém aktuálním adresáři.
Který to je, to bývá napsáno před znakem $
nebo >
(občas ve zkrácené podobě).
Vždycky se ale dá vypsat příkazem, který se podle systému
jmenuje pwd
nebo cd
(z angl. print working directory – vypiš pracovní
adresář, resp. current directory – aktuální adresář).
$ pwd
/home/helena/
> cd
C:\Users\helena
U tebe se bude aktuální adresář nejspíš jmenovat trochu jinak.
Tento adresář – ten, ve kterém příkazová řádka „začíná“ – je tvůj domovský adresář. Typicky obsahuje všechny tvoje soubory a nastavení.
V prohlížeči souborů se ukazují soubory v aktuálním adresáři neustále.
V příkazové řádce si o ně ale musíš „říct“ příkazem ls
nebo dir
(z angl. list – vyjmenovat, resp. directory – adresář).
Ten vypíše, co aktuální adresář obsahuje: všechny soubory,
včetně podadresářů, které se v aktuálním adresáři nacházejí.
Na některých systémech ukáže jen jména, jinde i další informace.
Například:
$ ls
Applications
Desktop
Downloads
Music
…
> dir
Directory of C:\Users\helena
05/08/2014 07:28 PM <DIR> Applications
05/08/2014 07:28 PM <DIR> Desktop
05/08/2014 07:28 PM <DIR> Downloads
05/08/2014 07:28 PM <DIR> Music
…
Na tvém počítači nejspíš budou jiné soubory, ale aspoň Desktop
a Music
(nebo Plocha
a Hudba
) na většině počítačů jsou.
Z příkazové řádky se dá kopírovat text. Háček je ale v tom, že to nejde přes Ctrl+C – tahle zkratka tu znamená něco jiného.
Zkus si zkopírovat jméno aktuálního adresáře.
Na Linuxu všech systémech text vyber myší, pak klikni pravým tlačítkem myši a z menu vyber kopírování. Případně funguje zkratka Ctrl+Insert.
Na macOS to je nejjednodušší: text vyber a zkopíruj pomocí ⌘+C
Na Windows napřed klikni na ikonku okýnka, rozbal Edit a vyber Vybrat (Select). Pak text vyber myší a zkopíruj klávesou Enter.
(Na některých verzích Windows jde vybírat přímo myší, nemusíš přes menu.)
Zkus zkopírované jméno adresáře vložit do grafického prohlížeče souborů. Měl/a bys pak vidět obsah i tam.
V dalších sekcích budeme potřebovat adresáře Desktop
a Music
(nebo Plocha
a Hudba
).
Jestli je ve svém domovském adresáři nemáš, v grafickém prohlížeči si je
vytvoř a v příkazové řádce zkontroluj, že je máš.
$ ls
…
Desktop
Music
…
> dir
Directory of C:\Users\helena
…
05/08/2014 07:28 PM <DIR> Desktop
05/08/2014 07:28 PM <DIR> Music
…
Aktuální adresář se dá změnit pomocí příkazu cd
(z angl. change directory – změnit adresář).
Za cd
se píše jméno adresáře, kam chceš přejít.
Déjà vu?
Jsi-li na Windows, příkaz cd
už jsi používal/a.
Chová se ale různě podle toho, jestli něco napíšeš za něj nebo ne!
Přejdi do adresáře Desktop
(nebo Plocha
).
Pak si nový aktuální adresář vypiš, aby sis ověřil/a,
že jsi na správném místě.
$ cd Desktop
$ pwd
/home/helena/Desktop
> cd Desktop
> cd
C:\Users\helena\Desktop
Velikost písmen
Jsi-li na Linuxu nebo macOS, dej si pozor na velikost písmen: na těchto
systémech jsou Desktop
a desktop
dvě různá jména.
Windows a disky
Pokud přecházíš do adresáře na jiném disku,
například D:
místo C:
, je potřeba kromě cd
zadat jméno disku s dvojtečkou jako zvláštní příkaz (např. D:
).
Zkusíme teď místo do Desktop
(nebo Plocha
) přejít do Music
(nebo Hudba)
.
Když zadáš cd Music
, pravděpodobně uvidíš chybu: v aktuálním
adresáři (Desktop
) žádné Music
není.
Aby ses do něj dostal/a, musíš nejdřív zpátky, do „nadřazeného“ adresáře.
To dělá příkaz cd ..
– cd
, mezera, a dvě tečky.
Zkus ho zadat a pak se podívat, jak se aktuální adresář změnil:
$ cd ..
$ pwd
/home/helena
> cd ..
> cd
C:\Users\helena
Z domovského adresáře už můžeš zadat cd Music
(nebo cd Hudba
) bez chyby.
Textových příkazů existuje daleko víc než whoami
a cd
.
Z příkazové řádky můžeš vytvářet adresáře, měnit soubory, nebo si třeba přečíst
e-mail.
I „grafické“ programy, které máš na počítači nainstalované, jdou
z příkazové řádky spustit – a to většinou jen zadáním jména.
Zkus, jestli na tvém počítači bude fungovat firefox
, notepad
, safari
nebo gedit
.
Při učení Pythonu si ale vystačíme s málem: s cd
/pwd
a několika příkazy,
které zanedlouho nainstalujeme – například python
.
Nakonec vyzkoušej ještě jeden příkaz.
Ten, který příkazovou řádku zavírá: exit
.
Příkaz exit
funguje stejně na všech systémech.
Proto už nebudu používat ukázku rozdělenou pro Unix a Windows.
$ exit
Ve zbytku těchto materiálů budeme pro kód, který je potřeba zadat do
příkazové řádky, používat unixovské $
.
S touto konvencí se setkáš i ve většině návodů na internetu.
Používáš-li Windows, je dobré si na $
zvyknout, i když ve své
řádce máš místo něj >
.
{ "data": { "sessionMaterial": { "id": "session-material:2018/snake-brno-codeweek:preparation:0", "title": "Příkazová řádka", "html": "\n \n \n\n <h1>Příkazová řádka</h1>\n<p>Většina uživatelů ovládá počítač v <em>grafickém rozhraní</em> – myší nebo prstem\nkliká na ikonky, vybírá příkazy z menu a kouká na animace.\nProgramátoři ale často ovládají počítač <em>textově</em>, v příkazové řádce:\nnapíšou příkaz nebo otázku a přečtou si případnou odpověď.\nNěkteří to nemají moc rádi (příkazy je potřeba si pamatovat), někteří si\nto užívají (textové příkazy lze jednoduše opakovat a automatizovat),\nale fakt je, že bez základní znalosti příkazové řádky se programátor neobejde.</p>\n<p>Seznamme se tedy se způsobem, který programátoři používají na zadávání příkazů.</p>\n<p>Příkazová řádka (respektive program, kterému se říká i <em>konzole</em> či <em>terminál</em>;\nanglicky <em>command line</em>, <em>console</em>, <em>terminal</em>)\nse na různých systémech otevírá různě:</p>\n<ul>\n<li>Windows (české): Start → napsat na klávesnici „cmd“ → Příkazový řádek</li>\n<li>Windows (anglické): Start → napsat na klávesnici „cmd“ → Command Prompt</li>\n<li>macOS (anglický): Applications → Utilities → Terminal</li>\n<li>Linux (GNOME): Menu Aktivity (levý horní roh) → hledat Terminál</li>\n<li>Linux (KDE): Hlavní Menu → hledat Konsole</li>\n</ul>\n<p>Nevíš-li si rady, zkus\nse zeptat kouče.</p>\n<p>Po otevření konzole tě uvítá okýnko s řádkem textu,\nkterým počítač vybízí k zadání příkazu.\nPodle systému bude tento řádek končit buď znakem <code>$</code> nebo <code>></code>,\npřed nímž můžou být ještě další informace:</p>\n<div class=\"row side-by-side-commands\"><div class=\"col\">\n <h4>Unix (Linux, macOS)</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">$\n</span></pre></div></div><div class=\"col\">\n <h4>Windows</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">>\n</span></pre></div></div></div><p>Podle systému se potom liší i samotné příkazy, které budeš zadávat.</p>\n<div class=\"admonition note\"><p class=\"admonition-title\">Velikost písma</p>\n<p>Je-li ve Windows moc malé písmo, klikni na ikonku okna a vyber Možnosti.\nV záložce Písmo si pak můžeš vybrat větší font.\n<!-- XXX: are the Czech names correct? --></p>\n<p><span class=\"figure\"><a href=\"/2018/snake-brno-codeweek/fast-track/cmdline/static/windows-cmd-properties.png\"><img src=\"/2018/snake-brno-codeweek/fast-track/cmdline/static/windows-cmd-properties.png\" alt=\"Screenshot menu příkazové řádky\"></a></span></p>\n<p>Na ostatních systémech hledej v nastavení, nebo zkus\n<kbd>Ctrl</kbd>+<kbd>+</kbd> a\n<kbd>Ctrl</kbd>+<kbd>-</kbd> (příp. se Shift).</p>\n</div><h2>První příkaz</h2>\n<p>Začneme jednoduchým příkazem.\nNapiš <code>whoami</code> (z angl. <em>who am I?</em> – kdo jsem?)\na stiskni <kbd>Enter</kbd>.\nObjeví se přihlašovací jméno. Třeba u Heleny to vypadalo takhle:</p>\n<div class=\"row side-by-side-commands\"><div class=\"col\">\n <h4>Unix</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">$ </span>whoami\n<span class=\"go\">helena</span>\n</pre></div></div><div class=\"col\">\n <h4>Windows</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">> </span>whoami\n<span class=\"go\">pocitac\\Helena</span>\n</pre></div></div></div><div class=\"admonition note\"><p>Znak <code>$</code> nebo <code>></code> je v ukázce jen proto, aby bylo jasné, že zadáváme\npříkaz do příkazové řádky.\nVypíše ho počítač, většinou ještě s něčím před ním,\ntakže ho nepiš sama! Zadej jen <code>whoami</code> a <kbd>Enter</kbd>.</p>\n<p>Stejně tak počítač sám vypíše přihlašovací jméno.</p>\n</div><h2>Aktuální adresář</h2>\n<p>Příkazová řádka pracuje vždy v nějakém <em>adresáři</em> (neboli <em>složce</em>,\nangl. <em>directory</em>, <em>folder</em>).</p>\n<p>Je to podobné, jako když si na počítači otevřeš prohlížeč souborů.\nNa každém počítači takový program vypadá trochu jinak, ale většinou máš\nnahoře jméno aktuálního adresáře a v hlavním okýnku seznam souborů,\nkteré v tom adresáři jsou:</p>\n<p><span class=\"figure\"><a href=\"/2018/snake-brno-codeweek/fast-track/cmdline/static/dirs.png\"><img src=\"/2018/snake-brno-codeweek/fast-track/cmdline/static/dirs.png\" alt=\"Screenshot prohlížeče souborů\"></a></span></p>\n<p>Podobně příkazová řádka je vždy „v“ nějakém <em>aktuálním adresáři</em>.\nKterý to je, to bývá napsáno před znakem <code>$</code> nebo <code>></code> (občas ve zkrácené podobě).\nVždycky se ale dá vypsat příkazem, který se podle systému\njmenuje <code>pwd</code> nebo <code>cd</code> (z angl. <em>print working directory</em> – vypiš pracovní\nadresář, resp. <em>current directory</em> – aktuální adresář).</p>\n<div class=\"row side-by-side-commands\"><div class=\"col\">\n <h4>Unix</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">$ </span><span class=\"nb\">pwd</span>\n<span class=\"go\">/home/helena/</span>\n</pre></div></div><div class=\"col\">\n <h4>Windows</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">> </span>cd\n<span class=\"go\">C:\\Users\\helena</span>\n</pre></div></div></div><p>U tebe se bude aktuální adresář nejspíš jmenovat trochu jinak.</p>\n<p>Tento adresář – ten, ve kterém příkazová řádka „začíná“ – je tvůj\n<em>domovský adresář</em>.\nTypicky obsahuje všechny tvoje soubory a nastavení.</p>\n<h2>Co v tom adresáři je?</h2>\n<p>V prohlížeči souborů se ukazují soubory v aktuálním adresáři neustále.\nV příkazové řádce si o ně ale musíš „říct“ příkazem <code>ls</code> nebo <code>dir</code>\n(z angl. <em>list</em> – vyjmenovat, resp. <em>directory</em> – adresář).\nTen vypíše, co aktuální adresář obsahuje: všechny soubory,\nvčetně podadresářů, které se v aktuálním adresáři nacházejí.\nNa některých systémech ukáže jen jména, jinde i další informace.\nNapříklad:</p>\n<div class=\"row side-by-side-commands\"><div class=\"col\">\n <h4>Unix</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">$ </span>ls\n<span class=\"go\">Applications</span>\n<span class=\"go\">Desktop</span>\n<span class=\"go\">Downloads</span>\n<span class=\"go\">Music</span>\n<span class=\"go\">…</span>\n</pre></div></div><div class=\"col\">\n <h4>Windows</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">> </span>dir\n<span class=\"go\"> Directory of C:\\Users\\helena</span>\n<span class=\"go\">05/08/2014 07:28 PM <DIR> Applications</span>\n<span class=\"go\">05/08/2014 07:28 PM <DIR> Desktop</span>\n<span class=\"go\">05/08/2014 07:28 PM <DIR> Downloads</span>\n<span class=\"go\">05/08/2014 07:28 PM <DIR> Music</span>\n<span class=\"go\">…</span>\n</pre></div></div></div><p>Na tvém počítači nejspíš budou jiné soubory, ale aspoň <code>Desktop</code> a <code>Music</code>\n(nebo <code>Plocha</code> a <code>Hudba</code>) na většině počítačů jsou.</p>\n<h2>Kopírování textu</h2>\n<p>Z příkazové řádky se dá kopírovat text.\nHáček je ale v tom, že to nejde přes <kbd>Ctrl</kbd>+<kbd>C</kbd> – tahle\nzkratka tu znamená něco jiného.</p>\n<p>Zkus si zkopírovat jméno aktuálního adresáře.</p>\n<ul>\n<li><p>Na <strong>Linuxu</strong> všech systémech text vyber myší, pak klikni pravým tlačítkem\nmyši a z menu vyber kopírování.\nPřípadně funguje zkratka <kbd>Ctrl</kbd>+<kbd>Insert</kbd>.</p>\n</li>\n<li><p>Na <strong>macOS</strong> to je nejjednodušší: text vyber a zkopíruj pomocí\n<kbd>⌘</kbd>+<kbd>C</kbd></p>\n</li>\n<li><p>Na <strong>Windows</strong> napřed klikni na ikonku okýnka, rozbal <em>Edit</em> a vyber\n<em>Vybrat</em> (<em>Select</em>). Pak text vyber myší a zkopíruj klávesou\n<kbd>Enter</kbd>.</p>\n<p>(Na některých verzích Windows jde vybírat přímo myší, nemusíš přes menu.)</p>\n</li>\n</ul>\n<p>Zkus zkopírované jméno adresáře vložit do grafického prohlížeče souborů.\nMěl/a bys pak vidět obsah i tam.</p>\n<p>V dalších sekcích budeme potřebovat adresáře <code>Desktop</code> a <code>Music</code> (nebo <code>Plocha</code>\na <code>Hudba</code>).\nJestli je ve svém domovském adresáři nemáš, v grafickém prohlížeči si je\nvytvoř a v příkazové řádce zkontroluj, že je máš.</p>\n<div class=\"row side-by-side-commands\"><div class=\"col\">\n <h4>Unix</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">$ </span>ls\n<span class=\"go\">…</span>\n<span class=\"go\">Desktop</span>\n<span class=\"go\">Music</span>\n<span class=\"go\">…</span>\n</pre></div></div><div class=\"col\">\n <h4>Windows</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">> </span>dir\n<span class=\"go\"> Directory of C:\\Users\\helena</span>\n<span class=\"go\">…</span>\n<span class=\"go\">05/08/2014 07:28 PM <DIR> Desktop</span>\n<span class=\"go\">05/08/2014 07:28 PM <DIR> Music</span>\n<span class=\"go\">…</span>\n</pre></div></div></div><h2>Změna aktuálního adresáře</h2>\n<p>Aktuální adresář se dá změnit pomocí příkazu <code>cd</code>\n(z angl. <em>change directory</em> – změnit adresář).\nZa <code>cd</code> se píše jméno adresáře, kam chceš přejít.</p>\n<div class=\"admonition note\"><p class=\"admonition-title\">Déjà vu?</p>\n<p>Jsi-li na Windows, příkaz <code>cd</code> už jsi používal/a.\nChová se ale různě podle toho, jestli něco napíšeš za něj nebo ne!</p>\n</div><p>Přejdi do adresáře <code>Desktop</code> (nebo <code>Plocha</code>).\nPak si nový aktuální adresář vypiš, aby sis ověřil/a,\nže jsi na správném místě.</p>\n<div class=\"row side-by-side-commands\"><div class=\"col\">\n <h4>Unix</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">$ </span><span class=\"nb\">cd</span> Desktop\n<span class=\"gp\">$ </span><span class=\"nb\">pwd</span>\n<span class=\"go\">/home/helena/Desktop</span>\n</pre></div></div><div class=\"col\">\n <h4>Windows</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">> </span>cd Desktop<span class=\"gp\"></span>\n<span class=\"gp\">> </span>cd\n<span class=\"go\">C:\\Users\\helena\\Desktop</span>\n</pre></div></div></div><div class=\"admonition note\"><p class=\"admonition-title\">Velikost písmen</p>\n<p>Jsi-li na Linuxu nebo macOS, dej si pozor na velikost písmen: na těchto\nsystémech jsou <code>Desktop</code> a <code>desktop</code> dvě různá jména.</p>\n</div><div class=\"admonition note\"><p class=\"admonition-title\">Windows a disky</p>\n<p>Pokud přecházíš do adresáře na jiném disku,\nnapříklad <code>D:</code> místo <code>C:</code>, je potřeba kromě <code>cd</code>\nzadat jméno disku s dvojtečkou jako zvláštní příkaz (např. <code>D:</code>).</p>\n</div><h2>Cesta zpět</h2>\n<p>Zkusíme teď místo do <code>Desktop</code> (nebo <code>Plocha</code>) přejít do <code>Music</code>\n(nebo <code>Hudba)</code>.</p>\n<p>Když zadáš <code>cd Music</code>, pravděpodobně uvidíš <em>chybu</em>: v aktuálním\nadresáři (<code>Desktop</code>) žádné <code>Music</code> není.</p>\n<p>Aby ses do něj dostal/a, musíš nejdřív zpátky, do „nadřazeného“ adresáře.\nTo dělá příkaz <code>cd ..</code> – <code>cd</code>, mezera, a dvě tečky.\nZkus ho zadat a pak se podívat, jak se aktuální adresář změnil:</p>\n<div class=\"row side-by-side-commands\"><div class=\"col\">\n <h4>Unix</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">$ </span><span class=\"nb\">cd</span> ..\n<span class=\"gp\">$ </span><span class=\"nb\">pwd</span>\n<span class=\"go\">/home/helena</span>\n</pre></div></div><div class=\"col\">\n <h4>Windows</h4><div class=\"highlight\"><pre><span></span><span class=\"gp\">> </span>cd ..<span class=\"gp\"></span>\n<span class=\"gp\">> </span>cd\n<span class=\"go\">C:\\Users\\helena</span>\n</pre></div></div></div><p>Z domovského adresáře už můžeš zadat <code>cd Music</code> (nebo <code>cd Hudba</code>) bez chyby.</p>\n<h2>Další příkazy</h2>\n<p>Textových příkazů existuje daleko víc než <code>whoami</code> a <code>cd</code>.\nZ příkazové řádky můžeš vytvářet adresáře, měnit soubory, nebo si třeba přečíst\ne-mail.</p>\n<p>I „grafické“ programy, které máš na počítači nainstalované, jdou\nz příkazové řádky spustit – a to většinou jen zadáním jména.\nZkus, jestli na tvém počítači bude fungovat <code>firefox</code>, <code>notepad</code>, <code>safari</code>\nnebo <code>gedit</code>.</p>\n<p>Při učení Pythonu si ale vystačíme s málem: s <code>cd</code>/<code>pwd</code> a několika příkazy,\nkteré zanedlouho nainstalujeme – například <code>python</code>.</p>\n<h2>Konec</h2>\n<p>Nakonec vyzkoušej ještě jeden příkaz.\nTen, který příkazovou řádku zavírá: <code>exit</code>.</p>\n<p>Příkaz <code>exit</code> funguje stejně na všech systémech.\nProto už nebudu používat ukázku rozdělenou pro Unix a Windows.</p>\n<div class=\"highlight\"><pre><span></span><span class=\"gp\">$ </span><span class=\"nb\">exit</span>\n</pre></div><p>Ve zbytku těchto materiálů budeme pro kód, který je potřeba zadat do\npříkazové řádky, používat unixovské <code>$</code>.\nS touto konvencí se setkáš i ve většině návodů na internetu.\nPoužíváš-li Windows, je dobré si na <code>$</code> zvyknout, i když ve své\nřádce máš místo něj <code>></code>.</p>\n\n\n " } } }