NOVINKA: Kurz kybernetické bezpečnosti s akreditací MŠMT, nyní již od 0 Kč. Staň se žádaným profesionálem. Zjisti více:
NOVINKA: Staň se datovým analytikem a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

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:

Zjištění verze vi - Základy Linuxu

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:

Zobrazení textového souboru pomocí less v Bashi - Základy Linuxu

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:

Zobrazení textového souboru pomocí nano v Bashi - Základy Linuxu

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

Zobrazení textového souboru pomocí nano v Bashi - Základy Linuxu

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:

Vytvoření nové složky pomocí příkazu mkdir v Bash - Základy Linuxu

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:

Analýza obsahu souboru pomocí příkazu file v Bashi - Základy Linuxu

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 .txt začínající na a,
  • soubor.??? – soubor s tříznakovou příponou,
  • log[ABC][0-9][0-9]* – název začíná log, následuje písmeno A, B nebo C, 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:

Příkaz cp pro kopírování souborů a složek v Bashi - Základy Linuxu

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 pro kopírování souborů a složek v Bashi - Základy Linuxu

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í:

Příkaz mv pro přesun souborů a složek v Bashi - Základy Linuxu

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

Příkaz mv pro přesun souborů a složek v Bashi - Základy Linuxu

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říkaz rm pro odstranění souborů a složek v Bashi - Základy Linuxu

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:

Příkaz df -h pro výpis dostupné kapacity na disku - Základy Linuxu

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 mkdir nebo cp).
  • 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:

Příkaz type pro zjištění typu příkazu v Bashi - Základy Linuxu

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:

Symbolické odkazy v Linuxu - Základy Linuxu

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

Příkaz which v Bashi - Základy Linuxu

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:

Manuál v Bashi - Základy Linuxu

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

Manuál v Bashi - Základy Linuxu

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

Parametr –help u programů v Linuxu - Základy Linuxu

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

Shellový příkaz help v Linuxu - Základy Linuxu

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.


 

Předchozí článek
Linuxový terminál (Bash) - Prozkoumávání adresářů
Všechny články v sekci
Základy Linuxu
Přeskočit článek
(nedoporučujeme)
Linuxový terminál (Bash) - Oprávnění a instalace balíčků
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
250 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity