Linuxový příkazový řádek (shell) WebSupport pro svůj hosting poskytuje jako SSH nebo webovou konzoli, ve které můžeme pracovat pomocí moderního webového prohlížeče jako je například Google Chrome, nebo Mozilla Firefox.
Tento návod můžete stejně použít pro používání linuxového operačního systému i na serverových a cloud službách.
Právě použitím webového prohlížeče získáte přístup k linuxovému příkazovému řádku (shellu) z prostředí, které funguje nezávisle na operačním systému. Přístup k datům, tedy souborům a adresářům pomocí příkazového řádku je velmi rychlý a efektivní.
Klávesové zkratky
Nejdřív se podíváme na klávesové zkratky, díky kterým dokážeme některé operace v linuxovém příkazovém řádku výrazně zrychlit. Ty se mohou v některých operačních systémech odlišovat.
Příkaz | Popis |
Ctrl + Shift + C Shift + Insert | Vloží zkopírovaný text (pozor, klávesová zkratka Ctrl + C slouží na ukončení programu) |
Tab | Při psaní příkazu doplní ostatní písmena příkazu nebo název souboru či složky |
Šipka nahoru Šipka dolů | Vypíše příkaz ze seznamu historie (příkaz history), ale nespustí ho |
Ctrl + R | Vyhledávání v historii příkazů (historii zobrazíme pomocí příkazu history) |
!! | Spustí předešlý příkaz (např. s právy administrátora/roota: sudo !!) |
!n | Spustí příkaz číslo n (za písmeno n dosadíme pořadové číslo zjištěné z příkazu history) |
Ctrl + A | Přesune kurzor na začátek řádku (většinou funguje i klávesa Home) |
Ctrl + E | Přesune kurzor na konec řádku (většinou funguje i klávesa End) |
Ctrl + Z | Spuštěný program přenese do pozadí (stejně jako znak & za příkazem) |
Alt + B | Přesune kurzor o jedno slovo dozadu (Back) |
Alt + F | Přesune kurzor o jedno slovo dopředu (Forward) |
Ctrl + U | Vymaže všechny znaky před kurzorem |
Ctrl + K | Vymaže všechny znaky za kurzorem |
Ctrl + W | Vymaže jedno slovo před kurzorem |
Alt + D | Vymaže jedno slovo za kurzorem |
Ctrl + L | Vymaže celou obrazovku (stejně jako příkaz clear) |
Ctrl + C | Ukončí spuštěný program (jako kdyby jsme klikli na křížek okna nahoře vpravo resp. vlevo) |
Ctrl + D | Ukončí aktívní relaci (stejně jako příkaz exit) |
Vytváříme soubory a složky
Všechny příkazy jsou zkratkou nebo krátkými slovy od stručného anglického popisu toho, co vlastně příkaz dělá. Například jeden z nejčastěji používaných příkazů je cd
, což je zkratka anglického popisu change directory (změň složku).
Nejdříve se přesuneme do domovské složky jednoduchým krátkým příkazem change directory (cd
) následovaným znakem vlnovka (~
). Znak vlnovka v linuxovém příkazovém řádku vždy reprezentuje domovskou složku.
cd ~
Abychom si ověřili, jestli se opravdu nacházíme v domovské složce, použijeme příkaz print working directory (pwd
):
pwd
Pokud jsme v domovské složce, vypíše se cesta /home/jmeno_uzivatele, přičemž namísto jmeno_uzivatele bude uvedené jméno aktuálně přihlášeného uživatele (např. Tibor). V této složce si pomocí příkazů make directory (mkdir
) a touch
vytvoříme 3 složky a 3 prázdné soubory, se kterými budeme pracovat.
mkdir test
touch test/soubor_1.txt
mkdir test/prazdna_slozka
mkdir test/neprazdna_slozka
touch test/neprazdna_slozka/soubor_2.txt
touch test/neprazdna_slozka/soubor_3.txt
Pomocí příkazu disk usage (du
) a přepínače -a
(jako all – čili zobraz všechno včetně souborů) vypíšeme strukturu složek ve složce test
, kterou jsme právě vytvořili:
du -a test
Doteď jsme použili 5 příkazů (cd, pwd, mkdir, touch a du). Často se stává, že stejné příkazy používáme víckrát. Proto vznikl příkaz history
, který nám vypíše všechny doteď spuštěné příkazy:
history
Každý použitý příkaz je v novém řádku, přičemž každý řádek je uvedený pořadovým číslem. Pokud si přejeme opět spustit poslední příkaz ze seznamu historie, stačí použít dva výkřičníky (první řádek). Když potřebujeme spustit příkaz s konkrétním pořadovým číslem, zadáme jeden vykřičník následovaný pořadovým číslem (druhý řádek – spustí první příkaz ze seznamu historie):
!!
!1
V seznamu historie můžeme díky klávesové zkratce Ctrl + R vyhledávat. Funguje to tak, že stlačíme klávesovou zkratku a následně píšeme text, který v seznamu historie chceme vyhledat.
Součástí příkazu někdy mohou být citlivé údaje jako například heslo. Spolu s citlivými údaji se však příkazy zapíšou do seznamu historie, a tak je odtud potřebujeme vymazat. Odstranit můžeme jednu položku (první řádek s přepínačem -d
jako delete, čili vymazat položku číslo 5) nebo celou historii (druhý řádek s přepínačem -c
jako clear, čili vymazat všechno). Po vymazaní je potřeba změny zapsat do souboru se seznamem historie (přepínač -w
jako write, čili zapsat).
history -d 5 -w
history -c -w
Teď se přesuneme do složky test
, ve které budeme pracovat se složkami a soubory. Stačí napsat cd t
a stlačit klávesu Tab. Pokud se v aktuální složce nachází pouze jeden soubor a/nebo složka, jejíž název začíná na písmeno t, název bude automaticky doplněný (v našem případě) na test. Automatické doplnění se hodí například když složky a soubory mají dlouhé názvy.
cd test
Pracujeme se soubory a složkami
Vytvořili jsme strukturu složek a souborů ve složce test
a teď s nimi můžeme pracovat. Pracovat se složkami a soubory znamená, že budeme jejich obsah zobrazovat, hledat a upravovat. Složky a soubory budeme kopírovat, přemisťovat, přejmenovávat a mazat. Archivování a komprimování složek a souborů jsme se věnovali v návodu Archivace a komprese souborů v Linuxu.
Ještě před prací se soubory a složkami však musíme získat přehled. Podíváme se tedy, které soubory a složky máme ve složce test
k dispozici. Toho docílíme už známým příkazem du nebo v aktuální složce (v našem případě jde o složku test
) příkazem ls
(jako list, čili vypsat seznam složek a souborů). Přepínače -lah
zabezpečí podrobný výpis (l
jako long) všech složek a souborů (i skrytých s tečkou v názvu na začátku; a
jako all) a velikost je uvedená v pro lidi snáze čitelné formě (h
jako human readable).
ls -lah
Složky jsou od souborů většinou barevně odlišené. Pokud to tak není, potom podle prvního znaku bezpečně rozeznáme, jestli jde o složku (první znak je d
) nebo o soubor (první znak je -
).
Výše jsme vytvořili prázdný soubor subor_1.txt, do kterého teď vložíme text pomocí příkazu echo
a lomených závorek (>
a >>
). Jedna závorka (první řádek) znamená, že se celý obsah souboru přepíše a dvě (druhý řádek) znamenají, že se text doplní na konec a původní obsah zůstane zachovaný:
echo "První řádek v souboru soubor_1.txt" > soubor_1.txt
echo "Druhý řádek v souboru soubor_1.txt" >> soubor_1.txt
Pomocí příkazu cat
(z anglického concatenate) si ověříme, jestli se oba řádky do souboru soubor_1.txt
doopravdy zapsaly:
cat soubor_1.txt
Kdybychom však potřebovali seřadit řádky abecedně, musíme nechat obsah souboru kromě zobrazení přes příkaz cat
ještě i seřadit pomocí příkazu sort
. Jinak řečeno, výstup příkazu cat pošleme jako vstup příkazu sort a získáme tak abecedně seřazený seznam řádků souboru soubor_1.txt
. Výstup pošleme do vstupu přes “potrubí” (anglicky pipe), což je reprezentované znakem svislé čáry (|
):
cat soubor_1.txt | sort
Jako vstup do třídícího příkazu sort
můžeme poslat aj samotný obsah souboru pomocí opačně lomené závorky <
a získáme tak stejný výstup jako v předešlém příkazu, ale s kratším zápisem (bez příkazu cat):
sort < soubor_1.txt
Často se stává, že soubor obsahuje velké množství řádků. Takový soubor stáhneme (první řádek) pomocí příkazu curl
(z anglického Client URL). Ze staženého souboru tabulka.csv
potřebujeme zobrazit pouze prvních 5 řádků (druhý řádek; head
jako hlavička) a posledních 5 řádků (třetí řádek; tail
jako chvost).
curl -o tabulka.csv https://file-examples-com.github.io/uploads/2017/02/file_example_CSV_5000.csv
head -n 5 tabulka.csv
tail -n 5 tabulka.csv
Celý obsah delšího dokumentu po částech zobrazíme pomocí příkazu less
(první řádek), díky kterému stláčením klávesy mezerník stránkujeme a postupně prohlédneme celý obsah dokumentu. Klávesou Q ukončíme zobrazení obsahu přes příkaz less. Když potřebujeme obsah souboru i upravit, musíme ho načíst v textovém editoru (druhý řádek) jako je například nano
. Co v textovém editoru nano upravíme, uložíme stlačením klávesové zkratky Ctrl + X
, potom klávesy Y
a nakonec klávesy Enter
.
less tabulka.csv
nano tabulka.csv
Stáhli jsme si poměrně mnoho obsahu (tisíce řádků) do souboru tabulka.csv, ve kterém je těžké vyhledávat ručně. Řekněme, že bychom v souboru tabulka.csv chtěli zobrazit pouze ty řádky, které obsahují jméno Felisa. Toho dosáhneme příkazem grep
(globally search for a regular expression and print matching lines, čili globálně hledej regulérní výraz a vypiš odpovídající řádky):
grep Felisa tabulka.csv
Je velmi důležité pravidelně vytvářet zálohy důležitých souborů (první řádek; cp
jako copy). Někdy je vhodné zálohu i přejmenovat (druhý řádek mv jako move). Příkaz mv
je speciální v tom, že slouží na přejmenování, ale též na přesunutí souboru (třetí řádek). No a případné nadbytečné soubory můžeme vymazat (čtvrtý řádek; rm
jako remove).
cp tabulka.csv ./neprazdna_slozka/
mv ./neprazdna_slozka/tabulka.csv ./neprazdna_slozka/tabulka-zaloha.csv
mv ./neprazdna_slozka/soubor_2.txt soubor_2.txt
rm tabulka.csv
Souborů s koncovkou .txt
už máme vícero a potřebujeme si vytvořit přehled, které jsou jak nazvané a v kterých složkách se nachází. Přesně na takové účely slouží příkaz find
v kombinaci so zástupnými znaky jako otazník (nahrazuje jeden libovolný znak) a hvězdička (nahrazuje libovolný počet libovolných znaků). Pokud tedy potřebujeme najít všechny soubory s koncovkou .txt v aktuální složce (vyjádřený tečkou), použijeme zástupný znak hvězdička (první řádek). Všechny soubory, jejichž název začíná stejně, mají stejnou koncovku a liší se pouze jediným znakem (zde pořadovým číslem) najdeme pomocí příkazu v druhém řádku.
find . -name "*.txt"
find . -name "soubor_?.txt"
Složky mažeme příkazem rm
s přepínačem -rf
. Pozor, tento příkaz použijeme pouze tehdy, pokud s úplnou jistotou víme, co mažeme. Po spuštění takového příkazu na složce test
v domovské složce (~
) se totiž bez upozornění vymaže celou složku test i se všemi dalšími složkami a soubory.
rm -rf ~/test
Kde najdeme další informace
Představené příkazy jsme si ukázali pouze v několika příkladech, ale možností využití existuje o mnoho více. V linuxovém příkazovém řádku je ještě jeden velmi často používaný příkaz man
(zkratka od manual). Pokud například potřebujeme více informací o příkazu rm, stačí napsat man rm
a zobrazí se podrobný manuál k příkazu rm, ve kterém se pohybujeme jako v příkazu less (mezerník a klávesa Q). Takto je možné do detailu studovat kterýkoliv příkaz linuxového příkazového řádku.
Shrnutí
Ukázali jsme, jak v linuxovém příkazovém řádku vytvořit soubory a složky. Zobrazili a upravili jsme obsah souborů. Přejmenovali, kopírovali, přemisťovali a mazali jsme soubory a složky. Též jsme si ukázali, jak se používají zástupné znaky, lomené závorky a svislá čára. No a abychom celé psaní urychlili, stláčeli jsme klávesové zkratky. Nakonec jsme si uvedli kvalitní zdroj dalšího podrobného studia o prezentovaných, ale i nezmíněných příkazech.