Appearance
Základní příkazy
V předchozí lekci jsme si vysvětlili jak otevřít terminál a základy jak se v něm pohybovat, v této lekci se naučíme pár příkazů, které v terminálu můžeme používat.
Co je to příkaz
Příkaz je nástroj, ať už předinstalovaný tak i dodatečne nainstalovaný, který se používá v terminálu / terminálovém emulátoru. Příkazu můžeme předávat argumenty - jednotlivé údaje rozdělené mezerou, většinou jde o důležité informace, které příkaz potřebuje pro splnění svého účelu
Podobně jako argumenty mu můžeme předávat i přepínače (flagy) ve většině případů je jedno pořadí přepínačů, zda jsou zadány před, po nebo mezi argumenty. Přepínače od argumentů poznáme tak, že začínají -. Přepínači zapínáme, nebo vypínáme funkce, které příkaz nemusí používat pokaždé, co ho spustíme.
Většina příkazů podporuje jak krátké, tak dlouhé zapsání přepínačů, příkladem může být --help (zkráceně -h).
V případě že nevíte jaké argumenty nebo přepínače příkaz vyžaduje, většinou je možné použít přepínač --help pro zobrazení nápovědy. Také může pomoct příkaz man (man [příkaz])
List příkazů
cd
Jak už víte z předchozí lekce, cd používáme pro přecházení mezi složkami (zkratka pro change directory), jako argument dáváme cestu ke složce, do které chceme přejít. Tato cesta může být absolutní i relativní.
Pokud příkazu nedáme žádný argument, přejde se do domácí složky.
Příklady použití
cd Downloadscd ../directorycd /etc/nginx
ls
O ls jsme si také něco málo řekli v minulé lekci, neřekli jsme si však všechno. ls (neboli list) je velmi jednoduchý příkaz, podívá se do složky, která byla předána jako argument (v případě že žádný argument nebyl předán se podívá do aktuální složky) a vypíše list všech souborů a podsložek, které v ní jsou.
Speciální argumenty
Pokud jste tento příkaz zkusili, možná jste si všimli, že se nevypsaly všechny soubory, které ve složce jsou, přesněji ty, které začínají ., tedy například .config, .gitignore, .env, .flag.txt.
V linuxu se soubory, ktré začínají . berou jako skryté soubory a aby je některé příkazy vypsaly, je potřeba příkazům říct, aby tyto soubory neignorovali. Toto u ls můžeme udělat pomocí přepínačů (flagů)
Pro zobrazení skrytých souborů to je přepínač -a (all).
Další přepínač pro ls je -l (list), který soubory vypíše ve více čitelném listu, kde v jednotlivých sloupcích můžeme najít oprávnění k souboru, vlastníka, velikost a datum poslední úpravy.
Příklady použití
lsls -alls /etc/nginxls Downloads
pwd
Nyní se dostáváme k příkazům, které jsme zatím nezmínili, první z nich ačkoliv ne částo používaný, ale užitečný je příkaz pwd. Když ho spustíme, vypíše absolutní cestu ke složce, ve které aktuálné jsme.
Příklady použití
pwd
touch
Dalším příkazem, který se naučíme je touch. touch vytváří prázdný soubor zadaný jako argument. Stejně jako jindy můžeme příkazu dát relativmní i absolutní cestu.
Příklady použití
touch hello.txttouch /tmp/flag.txttouch ../Document/important.txt
rm
Jak už je ze jména příkazu jasné, rm maže soubory - zkrácené remove. Pokud však použijeme rm na složku, dostaneme chybovou hlášku Cannot remove 'Documents': Is a directory. Toto se neděje protože by rm neuměl mazat složku, ale protože rm má za úkol smazat pouze soubor zadaný v argumentu, a smazání složky vyžaduje i smazání všech souborů uvnitř, které rm nekontroluje, takže složku nesmaže ani když je prázdná, na to můžeme využít příkaz rmdir.
Speciální argumenty
Příkaz rmdir však není nejlepším řešením, rmdir smaže složku pouze když je prázdná, co když chceme smazat složku a vše v ní? K tomu nám slouží přepínač -r (recursive), který smaže všechny soubory ve složce, všechny podsložky (a soubory v nich) i složku zadanou jako argument.
Druhým přepínačem který zde zmíním je -f (force). Tímto přepínačem vypneme kontrolu majitele souboru. (rm kontroluje a varuje pokud mažete soubor, který není váš) Přepínač se často používá v kombinaci s přepínačem -r, jelikož varování o vlastnictví může vyskočit při použití recursive módu vícekrát.
Příklady použití
rm flag.txtrm /etc/nginx -rrm -rf /home/hackeruser
cp
Příkaz cp (zkratka pro copy) je opět velmi jednoduchým příkazem, jehož jediným úkolem je zkopírovat soubor z jednoho místa na druhé. Stejně jako rm však kopíruje pouze soubory, takže mu musíme říct, kdy má kopírovat celou složku - kopírovat všechny soubory uvnitř.
Příklady použití
cp /tmp/flag.txt hello.txtcp ./a.out /usr/bin/my-bin.outcp Documents Downloads -r
mv
mv neboli move je ještě jednoduší než rm nebo cp, stačí příkazu předat dva argumenty, tedy staré jméno (cesta) k souboru a nové jméno (cesta) k souboru. Při používání tohoto příkazu by vám mělo dojít že jméno souboru není žádnou speciální informací, je to pouze poslední část cesty k souboru.
Příklady použití
mv Downloads/NeverGonnaGiveYouUp.mp4 /home/otheruser/Desktop/mv test.txt password.txtmv /etc/nginx/nginx.conf /etc/nginx/sites-enabled/nginx.conf
cat
Vysvětlili jsme si spoustu příkazů na práci se soubory, umíme je vytvářet, mazat i přesouvat, ale neumíme je číst. Na čtení textových souborů můžeme použít příkaz cat s cestou k souboru, který chceme použít jako argument. Cat se velmi hodí na čtení jednoduchých textových souborů, kódu, nebo konfiguračních souborů, ale soubory jako .odt s ním nepřečtete, protože nejde o textové soubory, ale o soubory ve speciálním formátu. (open document text)
Příklady použití
cat amongus.txtcat /etc/passwdcat ~/.gitignore
Shrnutí
- Příkazy jsou nástroje používané přes terminál / terminálový emulátor
- Některé příkazy vyžadují argumenty, většinou povinné informace o tom co, nebo s čím má dělat
- Dále příkazy mohou mít přepínače, které přepínají některé možnosti příkazu, které nejsou vždy potřebné