IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

7. diel - Linuxový terminál (Bash) - Práca so súbormi

V minulom dieli nášho seriálu o Linuxe sme sa naučili základné príkazy pre pohyb na disku pomocou Bash (UNIXového shellu). Dnešným dielom budeme v Bashi pokračovať a venovať sa budeme prácu so súbormi.

Prezeranie súborov

Less a nano

Často sa nám bude stávať, že budeme chcieť zobraziť alebo zmeniť obsah nejakého textového súboru. Mnoho súborov v Linuxe je totiž ľudsky čitateľných a používajú sa na uloženie konfigurácie. K zobrazovanie textových súborov môžeme použiť program less. Spustíme ho jednoducho s parametrom súboru, ktorý chceme zobraziť. Ja mám na ploche nejaký XML dokument a práve ten v ňom otvorím:

Zobrazenie textového súboru pomocou less v Bashi - Základy Linuxu
Zobrazenie textového súboru pomocou less v Bashi - Základy Linuxu

V texte sa pohybujeme pomocou kurzorových šípok alebo PageUp / PageDown. Nápovedu k ďalším príkazom zobrazíme pomocou klávesu h. Program ukončíme pomocou klávesu q.

Pre editáciu alebo rozumnejšie zobrazovanie môžeme použiť program nano. Ten možno spustiť buď bez parametra, alebo opäť s parametrom súboru, ktorý má otvoriť. Na rozdiel od less zvýrazňuje syntax a umožní nám súbory vytvárať aj editovať. Otvoríme teda ten istý súbor v nano:

Zobrazenie textového súboru pomocou nano v Bashi - Základy Linuxu
Zobrazenie textového súboru pomocou nano v Bashi - Základy Linuxu

Ovládanie nano je popísané v jeho spodnej lište. Stačí stlačiť CTRL + jeden zo znakov, napr. X pre ukončenie.

File

Už vieme, že Linux si neláme hlavu s príponou súborov a typ súboru spoznáva podľa jeho obsahu, nie názvu. Ľubovoľný súbor si môžeme nechať analyzovať príkazom file. Skúsme si to na niekoľkých súboroch:

Analýza obsahu súboru pomocou príkazu file v Bashi - Základy Linuxu

Manipulácia so súbormi a priečinkami

Zástupné znaky

V názvoch súborov a priečinkov môžeme používať zástupné znaky. Tie sú nasledovné:

  • ***** - Označuje ľubovoľný počet ľubovoľných znakov
  • ? - Označuje 1 ľubovoľný znak
  • [znaky] - Označuje jeden znak z vybraných možných znakov. Znaky môžeme určiť aj pomocou nasledujúcich tried, ktoré píšeme vrátane zátvoriek znovu do hranatých zátvoriek: [: Alnum:] - Alfanumerické znaky

    [: Alpha:] - Abecedné znaky

    [: Digit:] - Čísla

    [: Upper:] - Veľké písmená

    [: Lower:] - Malé písmená

  • [: Alnum:] - Alfanumerické znaky
  • [: Alpha:] - Abecedné znaky
  • [: Digit:] - Čísla
  • [: Upper:] - Veľké písmená
  • [: Lower:] - Malé písmená
  • [! znaky] - To isté ako predchádzajúce prípad, iba s negáciou. Označuje teda jeden znak, ktorý nie je medzi spomínanými znakmi.

Môžeme si spomenúť niekoľko ukážok:

  • a * .txt - Všetky súbory s príponou .txt, ktoré začínajú na a.
  • súbor. ??? - Súbor s ľubovoľnou trojpísmenový príponou.
  • log [ABC] [[: digit:]] [[: digit:]] * - Označí napr. súbor logA21.log. Názov súboru musí začínať na log, ďalej obsahovať A, B alebo C, 2 čísla a potom môže obsahovať čokoľvek alebo môže jeho názov už skončiť.
  • [! [: Digit:]] * - Súbor, ktorý nezačína na číslo.

Cp **

cp (ako copy) skopíruje zadanej súbory alebo priečinky. Skúsime si skopírovať nejaký súbor a potom vypísať obsah zložky, aby sme videli, že tam naozaj je:

Príkaz cp pre kopírovanie súborov a priečinkov v Bashi - Základy Linuxu

Ako cestu môžete samozrejme zadať aj relatívne alebo sa zástupnými znakmi.

Ak zadáte súbor alebo niekoľko súborov a potom priečinok, skopírujú sa do tejto zložky (zatiaľ musí existovať):

Príkaz cp pre kopírovanie súborov a priečinkov v Bashi - Základy Linuxu

Prepínače

Aj príkazu cp môžeme zadať ako prvý parameter prepínače.

  • -i - Ak kopírujeme nejaký súbor (napr. 1. príklad: cp soubor.xml kopie.xml) a súbor s daným názvom už existuje, bude prepísaný, bez toho aby sme tomu mohli zabrániť alebo sa to dokonca dozvedeli! Tomuto správaniu možno zabrániť prepínačom -i (ako interactive), ktorý si pri existencii súboru od užívateľa vyžiada potvrdenie.
  • -r - Pokiaľ zadáme prepínač -r (rekurzia), môžeme kopírovať aj zložky. Napr. takto skopírujeme jednu zložku do druhej s tým, že sa cieľová zložka vytvorí, ak neexistuje. Keďže je reč o rekurziu, platí to isté pre podpriečinky a tak ďalej.

Mv **

Ako cp kopíroval, mv presúva (názov má od move). Ak súbor presunieme na rovnaké miesto, ale pod iným názvom, dôjde k jeho premenovanie. Podobne ako u cp môžeme zadať parameter -i, ktorý nechá užívateľa potvrdiť prepísanie existujúceho súboru. Príkaz si vyskúšajme:

Príkaz mv pre presun súborov a priečinkov v Bashi - Základy Linuxu

Okrem zložky môžeme zadať aj cestu k súboru s jeho názvom, súbor sa presunie a premenuje.

Príkaz mv pre presun súborov a priečinkov v Bashi - Základy Linuxu

Rm **

Rm vymaže súbory a priečinky (ako remove). Dávajte si veľký pozor, pretože v Linuxe neexistuje nič, ako undelete vo Windows. Akonáhle súbor odstránite, je preč. Hovorí sa, že Linux je pre tvrdé :) Osobitnú pozor si dajte pri mazanie súborov a priečinkov pomocou zástupných znakov. Radšej si otázku najprv zostavte a otestujte u príkazu ls.

Môžeme použiť opäť prepínač -i pre vyžiadanie potvrdenie od užívateľa a tiež -r ak chceme, aby sa mazali zložky vrátane ich obsahu. Skúsme si to:

Príkaz rm pre odstránenie súborov a priečinkov v Bashi - Základy Linuxu

Mkdir

Vytvorí novú zložku.

Vytvorenie novej zložky pomocou príkazu mkdir v Bash - Základy Linuxu

Získanie informácií o príkazoch

Príkazy, ktoré píšeme do Bash, môžu byť 4 druhov:

  1. Program - Príkaz jednoducho spustí rovnako pomenovaný program z priečinka / bin. Môžete sa na ne pozrieť a nájsť si napr. Ls alebo mkdir.
  2. Súčasť shellu (shell BUILTIN) - Príkazy, ktoré poskytuje priamo shell. Sú to napr. Cd, echo alebo help.
  3. Funkcia - Umožňuje zapouzdřit niekoľko príkazov do funkcie, ktorú môžeme jednoducho vyvolať ako by to bol príkaz.
  4. Alias - Alias nám umožňuje zaviesť nový názov pre existujúce príkazy.

Type

Akého typu je daný príkaz zistíme pomocou príkazu type. Pozrime sa na niekoľko základných príkazov:

Príkaz type pre zistenie typu príkazu v Bash - Základy Linuxu

Vidíme, že cd je súčasť shellu, cp je program v priečinku / bin a ls je alias na ls, ktorému dáva navyše parameter pre zmenu farby. Vďaka tomu príkaz ls v predvolenom volaní zobrazuje:

  • zložky modro
  • Spustiteľné alebo dátové súbory zelene
  • Symbolické odkazy tyrkysovo
  • zariadenie žlto
  • Grafické súbory ružovo
  • archívy červeno

Symbolické odkazy

Keď je reč o symbolických odkazoch, vysvetlíme si ako fungujú. V Linuxe je možné vytvoriť súbor, ktorý funguje ako odkaz na iný súbor. Môžeme tak docieliť niekoľkými názvov jedného súboru. Vo Windows sa tomuto princípu vzdialene blíži zástupcu, ktorý sa však nespráva ako súbor a všetky aplikácie s ním nevie pracovať.

Symbolické odkazy spoznáme pomocou znaku šípky a nájdeme je napr. V priečinku / bin, kde sú programy, ktoré v shellu používame. Ak si obsah priečinka / bin vypíšeme dlhým formátom, uvidíme tu napr. Symbolický odkaz rnano, ktorý odkazuje nano, ktoré spustí v restricted móde.

Symbolické odkazy v Linuxe - Základy Linuxu

Which

Na niektorých systémoch môže byť viac programov pre ten istý príkaz. Lokáciu programu, ktorý príkaz používa, vypíšeme pomocou which:

Príkaz which v Bash - Základy Linuxu

Nápoveda

K shell príkazom možné samozrejme získať i nápovedu. Bohužiaľ spôsob, akým si o ňu povieme, závisí od typu príkazu.

Man

Väčšina programov vystavuje manuál, ktorý si môžeme prezrieť pomocou príkazu man.

Manuál v Bashi - Základy Linuxu
Manuál v Bashi - Základy Linuxu

Mnoho programov / príkazov podporuje ako parameter --help, po ktorého zadaní sa vypíše nápoveda. Spracovanie v manuáli je však prehľadnejšie.

Parameter -help pri programoch v Linuxe - Základy Linuxu

Help

Help je príkaz shellu, ktorý vypíše informácie o nejakej jeho súčasti (o shell BUILTIN). Vypíšme si informácie o príkaze cd:

Shellový príkaz help v Linuxe - Základy Linuxu

Nabudúce si povieme viac o užívateľských oprávneniach, naučíme sa inštalovať aplikácie a spravovať procesy.

V nasledujúcej lekcii, Linuxový terminál (Bash) - Práca s procesmi , si vysvetlíme rozdiel medzi procesom, úlohou a úlohou. Následne sa pozrieme na usporiadanie procesov v Linuxe a tiež sa naučíme pracovať s príkazmi na ich obsluhu.


 

Predchádzajúci článok
Linuxový terminál (Bash) - Preskúmavanie zložiek
Všetky články v sekcii
Základy Linuxu
Preskočiť článok
(neodporúčame)
Linuxový terminál (Bash) - Práca s procesmi
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
6 hlasov
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 sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity