Lekce 7 - Linuxový terminál (Bash) - Práce se soubory
V minulé lekci, Linuxový terminál (Bash) - Prozkoumávání adresářů, jsme ukázali základní práci v shellu a uvedli si příkazy pro procházení a prozkoumávání adresářů.
V dnešním tutoriálu základů Linuxu budeme pokračovat v práci v Bashi a zaměříme se na práci se soubory.
Prohlížení souborů
Při práci v Linuxu často potřebujeme zobrazit nebo upravit obsah textových souborů. Mnoho z nich je běžně čitelných a slouží například k ukládání konfigurace systému.
Kromě grafických editorů, jako je gedit, existuje v
terminálu několik nástrojů, které nám s tím pomohou. Ukážeme si
základní způsoby, jak soubory zobrazit a upravit pomocí příkazů
cat, less, editoru nano a
vi/vim.
Program spustíme zadáním jeho názvu do terminálu. Pokud chceme otevřít konkrétní soubor, přidáme jeho cestu:
vi hello_world vi /home/user/hello_world
Editor vi a vim
Vi je tradiční textový editor z prostředí UNIX a je
dostupný téměř ve všech linuxových distribucích. V Ubuntu příkaz
vi obvykle spouští editor Vim, který je jeho
rozšířenou verzí.
Verzi editoru můžeme ověřit příkazem vi --version:

Editory vi a vim pracují ve dvou základních
režimech. Po spuštění se nacházíme v příkazovém režimu, který
slouží k ovládání editoru. Do režimu vkládání, ve kterém můžeme
psát text, přepneme klávesou i nebo Insert. Zpět se
vrátíme klávesou Esc.
V příkazovém režimu můžeme soubor uložit nebo ukončit například těmito příkazy:
:w– uložení souboru,:q– ukončení editoru,:q!– ukončení bez uložení změn.
Podrobnější práci s Vimem si ukážeme v samostatné lekci Základy editoru Vim.
Pager less a cat
Pro prohlížení textových souborů slouží příkaz
less. Na rozdíl od editorů neumožňuje soubor upravovat, ale
umožňuje pohodlné stránkování jeho obsahu:

V souboru se pohybujeme pomocí šipek ↑/↓ nebo kláves PageUp a PageDown. Nápovědu k dalším příkazům zobrazíme klávesou h a program ukončíme stisknutím q.
Příkaz cat vypíše obsah souboru přímo do terminálu
bez stránkování. Hodí se proto spíše pro menší
soubory.
Editor nano
Editor nano je jednoduchý textový editor vhodný pro
začátečníky. Lze spustit buď bez parametru, nebo s názvem souboru, který
chceme otevřít. Umožňuje soubory vytvářet i upravovat a zároveň nabízí
zvýraznění syntaxe.
Soubor otevřeme například takto:

Po spuštění editoru se zobrazí obsah souboru:

Základní ovládání je zobrazeno ve spodní části editoru. Nejčastěji použijeme klávesové zkratky Ctrl + O (uložení) a Ctrl + X (ukončení).
Vytváření souborů a adresářů
Soubor můžeme vytvořit příkazem touch. Více souborů
vytvoříme uvedením jejich názvů za sebou:
touch soubor1 soubor2 soubor3
Adresář vytvoříme příkazem mkdir. Stejně jako u
touch můžeme vytvořit více adresářů v jednom příkazu:

Typ souboru v Linuxu není určen pouze
příponou, ale především jeho obsahem. Informace o souboru
zjistíme pomocí příkazu file:

Manipulace se soubory a adresáři
Při práci se soubory si často vystačíme se základními příkazy pro kopírování, přesun a mazání. Předtím si ale ukážeme tzv. zástupné znaky, které nám umožní pracovat s více soubory najednou.
Zástupné znaky
V názvech souborů a adresářů můžeme používat zástupné znaky:
*– libovolný počet znaků,?– jeden libovolný znak,[znaky]– jeden znak z vybraných možností,[!znaky]– jeden znak, který není mezi uvedenými (negace).
Rozsahy znaků můžeme zapisovat takto:
[0-9]– číslice (také[[:digit:]]),[a-z]– malá písmena (také[[:lower:]]),[A-Z]– velká písmena (také[[:upper:]]),[A-Za-z]– všechna písmena (také[[:alpha:]]),[A-Za-z0-9]– všechny alfanumerické znaky (také[[:alnum:]]).
Ukázky použití:
a*.txt– všechny soubory.txtzačínající naa,soubor.???– soubor s tříznakovou příponou,log[ABC][0-9][0-9]*– název začínálog, následuje písmenoA,BneboC, poté dvě číslice a za nimi libovolný počet dalších znaků (např.logA21.log),[![:digit:]]*– soubory nezačínající číslem.
Kopírování souborů (cp)
Soubor nebo adresář zkopírujeme příkazem cp
(copy). Například zkopírujeme soubor a následně si vypíšeme
obsah adresáře, abychom ověřili, že se kopie vytvořila:

Jako cestu můžeme zadat relativní i absolutní cestu, případně použít zástupné znaky.
Pokud chceme soubor zkopírovat do určitého adresáře, uvedeme cílový adresář na konec příkazu:

Příkaz cp lze rozšířit pomocí přepínačů, které
ovlivňují jeho chování:
-i– před přepsáním existujícího souboru vyžádá potvrzení od uživatele. Bez tohoto přepínače by byl soubor přepsán automaticky.-r– umožní kopírovat adresáře včetně jejich obsahu (rekurzivně), tedy i všechny podadresáře a soubory uvnitř.-v– zobrazí podrobnosti o aktuálním kopírování.
Přesun a přejmenování
(mv)
Příkaz mv (move) slouží k přesunu souborů a
adresářů. Pokud soubor přesuneme na stejné místo pod jiným názvem, dojde
k jeho přejmenování:

Soubor můžeme přesunout i do jiného adresáře nebo zároveň přejmenovat:

U příkazu mv můžeme také použít přepínač
-i pro potvrzení přepsání existujícího souboru.
Mazání souborů (rm)
Soubor nebo adresář odstraníme příkazem rm
(remove). Můžeme použít přepínač -i pro
vyžádání potvrzení od uživatele a také -r, pokud chceme, aby
se mazaly adresáře včetně jejich obsahu. Zkusme si to:

Při mazání je potřeba být opatrný – soubory
se neukládají do koše a jejich obnovení je obtížné.
Zástupné znaky navíc mohou ovlivnit větší
množství souborů, proto si příkaz vždy nejprve ověříme
například pomocí ls.
Systémové oddíly
Při práci se systémem se často hodí znát informace o discích a jejich oddílech.
Zařízení v Linuxu najdeme v adresáři /dev. Můžeme zde
narazit například na označení sda, sda1,
sda2 apod., kde sda označuje disk a číslo za
názvem jednotlivé oddíly. Další disky bývají označeny jako
sdb, sdc a podobně. U novějších disků (např.
NVMe) se můžeme setkat také s označením jako nvme0n1.
Informace o dostupném místě na disku zjistíme příkazem df
(disk free). Pro přehlednější výpis použijeme přepínač
-h:
df -h
Výpis příkazu může vypadat například takto:

Jednotlivé sloupce mají následující význam:
| Filesystem | Souborový systém |
|---|---|
| Size | Celková velikost |
| Used | Využité místo |
| Avail | Dostupné místo |
| Use% | Využití v procentech |
| Mounted on | Připojovací bod |
Kromě diskových oddílů se ve výpisu mohou objevit i
dočasné souborové systémy, například tmpfs.
Získání informací o příkazech
Příkazy v Bashi mohou mít různé podoby. Nejčastěji se setkáme s těmito typy:
- Program – spustí externí program dostupný v
systémových cestách (např. příkazy jako
mkdirnebocp). - Součást shellu (builtin) – příkaz zabudovaný přímo
v shellu (např.
cd,echo,help). - Alias – zkrácený nebo upravený zápis jiného příkazu.
- Funkce – vlastní příkaz složený z více příkazů. Umožňuje vytvářet jednoduché "zkratky" pro opakující se činnosti.
Typ příkazu zjistíme pomocí příkazu type:

Ve výpisu vidíme například, že cd je součást shellu,
cp je externí program a ls je alias.
Alias ls obvykle přidává barevné zvýraznění
výpisu. Barvy se mohou lišit podle nastavení systému, ale typicky odlišují
například adresáře, spustitelné soubory nebo odkazy.
Symbolické odkazy
V Linuxu můžeme vytvořit symbolický odkaz, který odkazuje na jiný soubor nebo adresář. Díky tomu může jeden soubor existovat pod více názvy a různé programy na něj mohou odkazovat.
Ve Windows se podobnému principu blíží zástupce, symbolický odkaz se však chová jako běžný soubor a většina programů s ním pracuje transparentně.
Symbolické odkazy poznáme například ve výpisu příkazu
ls -l podle šipky (->). Často se nacházejí v
systémových adresářích, například /bin nebo
/usr/bin. Ve výpisu můžeme vidět například odkaz
rnano, který odkazuje na program nano:

Umístění programu, který se spustí při zadání příkazu, zjistíme
pomocí příkazu which:

Nápověda
K příkazům v Bashi můžeme zobrazit nápovědu několika způsoby. Záleží na tom, o jaký typ příkazu se jedná.
Většina programů poskytuje manuál, který zobrazíme pomocí příkazu
man:

Po spuštění se zobrazí manuálová stránka s podrobnou nápovědou k příkazu:

Mnoho programů podporuje také přepínač --help, který
vypíše stručnou nápovědu přímo do terminálu:

Pro příkazy zabudované v shellu (tzv. builtiny) slouží příkaz
help. Vypišme si například informace o příkazu
cd:

Závěr
V této lekci jsme se seznámili se základními nástroji pro práci se soubory v Linuxu. Naučili jsme se soubory prohlížet a upravovat, vytvářet adresáře, kopírovat a mazat soubory a získávat informace o systému i příkazech. Tyto dovednosti nám umožní efektivně pracovat se souborovým systémem a orientovat se v prostředí Linuxu.
V příští lekci, Linuxový terminál (Bash) - Oprávnění a instalace balíčků, se naučíme pracovat s uživatelskými oprávněními v Linuxu, používat oprávnění superuživatele a instalovat i spravovat balíčky v terminálu.


David se informační technologie naučil na