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:
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:
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:
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:
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ť):
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:
Okrem zložky môžeme zadať aj cestu k súboru s jeho názvom, súbor sa presunie a premenuje.
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:
Mkdir
Vytvorí novú zložku.
Získanie informácií o príkazoch
Príkazy, ktoré píšeme do Bash, môžu byť 4 druhov:
- 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.
- Súčasť shellu (shell BUILTIN) - Príkazy, ktoré poskytuje priamo shell. Sú to napr. Cd, echo alebo help.
- Funkcia - Umožňuje zapouzdřit niekoľko príkazov do funkcie, ktorú môžeme jednoducho vyvolať ako by to bol príkaz.
- 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:
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.
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:
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.
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.
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:
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.