Skip to content

Commit 26c7416

Browse files
committed
Add fast-track lesson for command line basics
1 parent 7626adc commit 26c7416

File tree

5 files changed

+321
-1
lines changed

5 files changed

+321
-1
lines changed

courses/snake/info.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ plan:
3838
- title: Příprava
3939
slug: preparation
4040
materials:
41-
- lesson: beginners/cmdline
41+
- lesson: fast-track/cmdline
4242
- lesson: beginners/install
4343
- lesson: beginners/venv-setup
4444
- lesson: beginners/install-editor

lessons/fast-track/cmdline/index.md

Lines changed: 312 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,312 @@
1+
{%- macro sidebyside(titles=['Unix', 'Windows']) -%}
2+
<div class="row side-by-side-commands">
3+
{%- for title in titles -%}
4+
<div class="col">
5+
<h4>{{ title }}</h4>
6+
{%- filter markdown() -%}
7+
```{%- if title.lower().startswith('win') -%}dosvenv{%- else -%}console{%- endif -%}
8+
{{ caller() | extract_part(loop.index0, '---') | dedent }}
9+
```
10+
{%- endfilter -%}
11+
</div>
12+
{%- endfor -%}
13+
</div>
14+
{%- endmacro -%}
15+
16+
{%- if var('pyladies') -%}
17+
{% set purpose = 'PyLadies' %}
18+
{% set dirname = 'pyladies' %}
19+
{%- else -%}
20+
{% set purpose = 'Python' %}
21+
{% set dirname = 'naucse-python' %}
22+
{%- endif -%}
23+
24+
25+
# Příkazová řádka
26+
27+
Většina uživatelů ovládá počítač v *grafickém rozhraní* – myší nebo prstem
28+
kliká na ikonky, vybírá příkazy z menu a kouká na animace.
29+
Programátoři ale často ovládají počítač *textově*, v příkazové řádce:
30+
napíšou příkaz nebo otázku a přečtou si případnou odpověď.
31+
Někteří to nemají moc rádi (příkazy je potřeba si pamatovat), někteří si
32+
to užívají (textové příkazy lze jednoduše opakovat a automatizovat),
33+
ale fakt je, že bez základní znalosti příkazové řádky se programátor neobejde.
34+
35+
Seznamme se tedy se způsobem, který programátoři používají na zadávání příkazů.
36+
37+
Příkazová řádka (respektive program, kterému se říká i *konzole* či *terminál*;
38+
anglicky *command line*, *console*, *terminal*)
39+
se na různých systémech otevírá různě:
40+
41+
* Windows (české): Start → napsat na klávesnici „cmd“ → Příkazový řádek
42+
* Windows (anglické): Start → napsat na klávesnici „cmd“ → Command Prompt
43+
* macOS (anglický): Applications → Utilities → Terminal
44+
* Linux (GNOME): Menu Aktivity (levý horní roh) → hledat Terminál
45+
* Linux (KDE): Hlavní Menu → hledat Konsole
46+
47+
Nevíš-li si rady, zkus
48+
{% if var('coach-present') -%}
49+
se zeptat kouče.
50+
{%- else -%}
51+
buď googlit, nebo se zeptat e-mailem.
52+
{%- endif %}
53+
54+
Po otevření konzole tě uvítá okýnko s řádkem textu,
55+
kterým počítač vybízí k zadání příkazu.
56+
Podle systému bude tento řádek končit buď znakem `$` nebo `>`,
57+
před nímž můžou být ještě další informace:
58+
59+
{% call sidebyside(titles=['Unix (Linux, macOS)', 'Windows']) %}
60+
$
61+
---
62+
>
63+
{% endcall %}
64+
65+
Podle systému se potom liší i samotné příkazy, které budeš zadávat.
66+
67+
> [note] Velikost písma
68+
> Je-li ve Windows moc malé písmo, klikni na ikonku okna a vyber Možnosti.
69+
> V záložce Písmo si pak můžeš vybrat větší font.
70+
> <!-- XXX: are the Czech names correct? -->
71+
>
72+
> {{ figure(
73+
img=static('windows-cmd-properties.png'),
74+
alt='Screenshot menu příkazové řádky',
75+
) }}
76+
>
77+
> Na ostatních systémech hledej v nastavení, nebo zkus
78+
> <kbd>Ctrl</kbd>+<kbd>+</kbd> a
79+
> <kbd>Ctrl</kbd>+<kbd>-</kbd> (příp. se Shift).
80+
81+
82+
83+
## První příkaz
84+
85+
Začneme jednoduchým příkazem.
86+
Napiš `whoami` (z angl. *who am I?* – kdo jsem?)
87+
a stiskni <kbd>Enter</kbd>.
88+
Objeví se přihlašovací jméno. Třeba u Heleny to vypadalo takhle:
89+
90+
{% call sidebyside() %}
91+
$ whoami
92+
helena
93+
---
94+
> whoami
95+
pocitac\Helena
96+
{% endcall %}
97+
98+
99+
100+
> [note]
101+
> Znak `$` nebo `>` je v ukázce jen proto, aby bylo jasné, že zadáváme
102+
> příkaz do příkazové řádky.
103+
> Vypíše ho počítač, většinou ještě s něčím před ním,
104+
> takže ho nepiš sama! Zadej jen `whoami` a <kbd>Enter</kbd>.
105+
>
106+
> Stejně tak počítač sám vypíše přihlašovací jméno.
107+
108+
109+
## Aktuální adresář
110+
111+
Příkazová řádka pracuje vždy v nějakém *adresáři* (neboli *složce*,
112+
angl. *directory*, *folder*).
113+
114+
Je to podobné, jako když si na počítači otevřeš prohlížeč souborů.
115+
Na každém počítači takový program vypadá trochu jinak, ale většinou máš
116+
nahoře jméno aktuálního adresáře a v hlavním okýnku seznam souborů,
117+
které v tom adresáři jsou:
118+
119+
{{ figure(
120+
img=static('dirs.png'),
121+
alt='Screenshot prohlížeče souborů',
122+
) }}
123+
124+
Podobně příkazová řádka je vždy „v“ nějakém *aktuálním adresáři*.
125+
Který to je, to bývá napsáno před znakem `$` nebo `>` (občas ve zkrácené podobě).
126+
Vždycky se ale dá vypsat příkazem, který se podle systému
127+
jmenuje `pwd` nebo `cd` (z angl. *print working directory* – vypiš pracovní
128+
adresář, resp. *current directory* – aktuální adresář).
129+
130+
{% call sidebyside() %}
131+
$ pwd
132+
/home/helena/
133+
---
134+
> cd
135+
C:\Users\helena
136+
{% endcall %}
137+
138+
U tebe se bude aktuální adresář nejspíš jmenovat trochu jinak.
139+
140+
Tento adresář – ten, ve kterém příkazová řádka „začíná“ – je tvůj
141+
*domovský adresář*.
142+
Typicky obsahuje všechny tvoje soubory a nastavení.
143+
144+
145+
## Co v tom adresáři je?
146+
147+
V prohlížeči souborů se ukazují soubory v aktuálním adresáři neustále.
148+
V příkazové řádce si o ně ale musíš „říct“ příkazem `ls` nebo `dir`
149+
(z angl. *list* – vyjmenovat, resp. *directory* – adresář).
150+
Ten vypíše, co aktuální adresář obsahuje: všechny soubory,
151+
včetně podadresářů, které se v aktuálním adresáři nacházejí.
152+
Na některých systémech ukáže jen jména, jinde i další informace.
153+
Například:
154+
155+
{% call sidebyside() %}
156+
$ ls
157+
Applications
158+
Desktop
159+
Downloads
160+
Music
161+
162+
---
163+
> dir
164+
Directory of C:\Users\helena
165+
05/08/2014 07:28 PM <DIR> Applications
166+
05/08/2014 07:28 PM <DIR> Desktop
167+
05/08/2014 07:28 PM <DIR> Downloads
168+
05/08/2014 07:28 PM <DIR> Music
169+
170+
{% endcall %}
171+
172+
Na tvém počítači nejspíš budou jiné soubory, ale aspoň `Desktop` a `Music`
173+
(nebo `Plocha` a `Hudba`) na většině počítačů jsou.
174+
175+
176+
## Kopírování textu
177+
178+
Z příkazové řádky se dá kopírovat text.
179+
Háček je ale v tom, že to nejde přes <kbd>Ctrl</kbd>+<kbd>C</kbd> – tahle
180+
zkratka tu znamená něco jiného.
181+
182+
Zkus si zkopírovat jméno aktuálního adresáře.
183+
184+
* Na **Linuxu** všech systémech text vyber myší, pak klikni pravým tlačítkem
185+
myši a z menu vyber kopírování.
186+
Případně funguje zkratka <kbd>Ctrl</kbd>+<kbd>Insert</kbd>.
187+
188+
* Na **macOS** to je nejjednodušší: text vyber a zkopíruj pomocí
189+
<kbd>⌘</kbd>+<kbd>C</kbd>
190+
191+
* Na **Windows** napřed klikni na ikonku okýnka, rozbal *Edit* a vyber
192+
*Vybrat* (*Select*). Pak text vyber myší a zkopíruj klávesou
193+
<kbd>Enter</kbd>.
194+
195+
(Na některých verzích Windows jde vybírat přímo myší, nemusíš přes menu.)
196+
197+
Zkus zkopírované jméno adresáře vložit do grafického prohlížeče souborů.
198+
Měl{{a}} bys pak vidět obsah i tam.
199+
200+
V dalších sekcích budeme potřebovat adresáře `Desktop` a `Music` (nebo `Plocha`
201+
a `Hudba`).
202+
Jestli je ve svém domovském adresáři nemáš, v grafickém prohlížeči si je
203+
vytvoř a v příkazové řádce zkontroluj, že je máš.
204+
205+
{% call sidebyside() %}
206+
$ ls
207+
208+
Desktop
209+
Music
210+
211+
---
212+
> dir
213+
Directory of C:\Users\helena
214+
215+
05/08/2014 07:28 PM <DIR> Desktop
216+
05/08/2014 07:28 PM <DIR> Music
217+
218+
{% endcall %}
219+
220+
221+
## Změna aktuálního adresáře
222+
223+
Aktuální adresář se dá změnit pomocí příkazu `cd`
224+
(z angl. *change directory* – změnit adresář).
225+
Za `cd` se píše jméno adresáře, kam chceš přejít.
226+
227+
> [note] Déjà vu?
228+
> Jsi-li na Windows, příkaz `cd` už jsi používal{{a}}.
229+
> Chová se ale různě podle toho, jestli něco napíšeš za něj nebo ne!
230+
231+
Přejdi do adresáře `Desktop` (nebo `Plocha`).
232+
Pak si nový aktuální adresář vypiš, aby sis ověřil{{a}},
233+
že jsi na správném místě.
234+
235+
{% call sidebyside() %}
236+
$ cd Desktop
237+
$ pwd
238+
/home/helena/Desktop
239+
---
240+
> cd Desktop
241+
> cd
242+
C:\Users\helena\Desktop
243+
{% endcall %}
244+
245+
> [note] Velikost písmen
246+
> Jsi-li na Linuxu nebo macOS, dej si pozor na velikost písmen: na těchto
247+
> systémech jsou `Desktop` a `desktop` dvě různá jména.
248+
249+
> [note] Windows a disky
250+
> Pokud přecházíš do adresáře na jiném disku,
251+
> například `D:` místo `C:`, je potřeba kromě `cd`
252+
> zadat jméno disku s dvojtečkou jako zvláštní příkaz (např. `D:`).
253+
254+
255+
## Cesta zpět
256+
257+
Zkusíme teď místo do `Desktop` (nebo `Plocha`) přejít do `Music`
258+
(nebo `Hudba)`.
259+
260+
Když zadáš `cd Music`, pravděpodobně uvidíš *chybu*: v aktuálním
261+
adresáři (`Desktop`) žádné `Music` není.
262+
263+
Aby ses do něj dostal{{a}}, musíš nejdřív zpátky, do „nadřazeného“ adresáře.
264+
To dělá příkaz `cd ..``cd`, mezera, a dvě tečky.
265+
Zkus ho zadat a pak se podívat, jak se aktuální adresář změnil:
266+
267+
{% call sidebyside() %}
268+
$ cd ..
269+
$ pwd
270+
/home/helena
271+
---
272+
> cd ..
273+
> cd
274+
C:\Users\helena
275+
{% endcall %}
276+
277+
Z domovského adresáře už můžeš zadat `cd Music` (nebo `cd Hudba`) bez chyby.
278+
279+
280+
## Další příkazy
281+
282+
Textových příkazů existuje daleko víc než `whoami` a `cd`.
283+
Z příkazové řádky můžeš vytvářet adresáře, měnit soubory, nebo si třeba přečíst
284+
e-mail.
285+
286+
I „grafické“ programy, které máš na počítači nainstalované, jdou
287+
z příkazové řádky spustit – a to většinou jen zadáním jména.
288+
Zkus, jestli na tvém počítači bude fungovat `firefox`, `notepad`, `safari`
289+
nebo `gedit`.
290+
291+
Při učení Pythonu si ale vystačíme s málem: s `cd`/`pwd` a několika příkazy,
292+
které zanedlouho nainstalujeme – například `python`.
293+
294+
295+
## Konec
296+
297+
Nakonec vyzkoušej ještě jeden příkaz.
298+
Ten, který příkazovou řádku zavírá: `exit`.
299+
300+
Příkaz `exit` funguje stejně na všech systémech.
301+
Proto už nebudu používat ukázku rozdělenou pro Unix a Windows.
302+
303+
```console
304+
$ exit
305+
```
306+
307+
Ve zbytku těchto materiálů budeme pro kód, který je potřeba zadat do
308+
příkazové řádky, používat unixovské `$`.
309+
S touto konvencí se setkáš i ve většině návodů na internetu.
310+
Používáš-li Windows, je dobré si na `$` zvyknout, i když ve své
311+
řádce máš místo něj `>`.
312+

lessons/fast-track/cmdline/info.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
title: Úvod do příkazové řádky
2+
style: md
3+
attribution:
4+
- Pro PyLadies CZ napsal Petr Viktorin, 2014-2018.
5+
- |
6+
Založeno na tutoriálu [Django Girls].
7+
[Django Girls]: https://tutorial.djangogirls.org/en/intro_to_command_line/
8+
license: cc-by-sa-40
3.35 KB
Loading
23.3 KB
Loading

0 commit comments

Comments
 (0)