Unixové systémy – cvičení

Cvičení 1


První cvičení probíhá ještě v MS Windows, na učebně nebo na vlastních počítačích, příp. v Apple macOS na vlastních počítačích.

MS Windows

Uživatelské jméno (login) a heslo do MS Windows na učebně jsou stejné jako do Portálu UP. Rozložení klávesnice je zde české (QWERTZ). Přihlásíme se.

Jsou zde předinstalované programy PuTTY a WinSCP. Na vlastních počítačích stáhneme jejich portabilní verze (bez potřeby instalace) z putty.software (Download, Alternative binary files, soubor putty.exe pro 64-bit x86), resp. winscp.net (Download, other downloads, Portable executables, Download, soubor WinSCP-x.y.z-Portable.zip). Použijeme je ke vzdálenému připojení k linuxovému serveru phoenix.inf.upol.cz pro zadávání textových příkazů (PuTTY) a přenosu souborů na/z něj (WinSCP).

Login a heslo do linuxu

Uživatelské jméno (login) a náhodně vygenerované heslo na phoenix.inf.upol.cz a do linuxu na učebnách byly uživatelům zaslány na UP mail (předmět: Heslo do linuxu na KI pro ucet login). Jméno je stejné jako do Portálu UP, heslo ale nikoliv! Heslo obsahuje i speciální znaky (mimo písmena a číslice), je doporučeno jej z mailu zkopírovat a vložit do místa zadávání.

PuTTY

PuTTY je svobodný SSH aj. klient a emulátor textového terminálu ("příkazový řádek", CLI = command line interface) nejen pro MS Windows. Spustíme jej a připojíme (přihlásíme) se k SSH serveru phoenix.inf.upol.cz tak, že toto jméno zadáme do pole Host Name (or IP address) a stiskneme tlačítko Open (nebo klávesu Enter, při prvním připojení je pak ještě potřeba potvrdit bezpečnostní upozornění tlačítkem Accept nebo Connect Once). Poté postupně zadáme v terminálu uživatelské jméno a heslo, za výzvy login as: a password:, s potvrzením obého klávesou Enter. POZOR: Při zadávání hesla není od terminálu žádná odezva (žádné hvězdičky, puntíky apod., z bezpečnostních důvodů)! Pro vložení zkopírovaného hesla ze schránky zde nefunguje klávesová zkratka Control-V, vložení se provede klávesovou zkratkou Shift-Insert nebo stisknutím pravého tlačítka myši (nad terminálem).

Po úspěšném připojení se v terminálu zobrazí úvodní "banner" a na posledním řádku výzva (prompt) k zadání příkazu. Zadáme příkaz logout nebo exit (s potvrzením klávesou Enter) a tím se od serveru odpojíme (odhlásíme).

– Úkol 1:
V MS Windows případně stáhněte a spusťte program PuTTY (Download, Alternative binary files, soubor putty.exe pro 64-bit x86), připojte (přihlašte) se pomocí něj pod svým uživatelským jménem na server phoenix.inf.upol.cz a odpojte (odhlašte) se z něj.

WinSCP

WinSCP je grafický SFTP (SCP) aj. klient pro MS Windows. Spustíme jej a opět se připojíme (přihlásíme) k SSH serveru phoenix.inf.upol.cz. Do pole Host name: zadáme toto jméno, volitelně můžeme do polí User name: a Password: zadat uživatelské jméno a heslo, a stiskneme tlačítko Login (nebo klávesu Enter, při prvním připojení je pak opět ještě potřeba potvrdit bezpečnostní upozornění tlačítkem Accept). Poté, pokud jsme je nezadali už v předchozím dialogu, postupně zadáme uživatelské jméno a heslo, do polí Username: a Password: (s potvrzením obého klávesou Enter nebo tlačítkem OK).

Po úspěšném připojení je v levé části okna zobrazen seznam souborů a adresářů na místním počítači, v pravé části na serveru. Soubor nebo adresář zkopírujeme z místního počítače na server (upload) například tak, že v seznamu pro server otevřeme cílový adresář na serveru (klávesami ↑ a ↓ a Enter nebo myší, výchozí je domovský adresář uživatele), v seznamu pro místní počítač zvolíme soubor nebo adresář (focus) a stiskneme klávesu F5 (a potvrdíme klávesou Enter nebo tlačítkem OK). Kopírování ze serveru na místní počítač (download) provedeme stejně, jen zaměníme server a místní počítač. Pro přesun označení (focus) mezi seznamy pro místní počítač a server můžeme použít i klávesu Tab. Soubory a adresáře můžeme i přesouvat (klávesa F6), mazat (F8), přejmenovat (F2) nebo vytvářet nové (adresáře F7). Odpojení (odhlášení) se od serveru provedeme jednoduše ukončením programu (s potvrzením tlačítkem Yes).

– Úkol 2:
V MS Windows případně stáhněte a spusťte program WinSCP (Download, other downloads, Portable executables, Download, soubor WinSCP-x.y.z-Portable.zip), připojte (přihlašte) se pomocí něj pod svým uživatelským jménem na server phoenix.inf.upol.cz, zkopírujte nějaký soubor nebo adresář z MS Windows na server a zpět a odpojte (odhlašte) se ze serveru.

Apple macOS

Na vlastních počítačích s Apple macOS můžeme ke vzdálenému připojení k linuxovému serveru phoenix.inf.upol.cz použít programy Terminál pro zadávání textových příkazů a Cyberduck k přenosu souborů na/ze server/u.

Terminál a příkaz ssh

Terminál je předinstalovaný emulátor textového terminálu ("příkazový řádek"). Po jeho spuštění se v něm k SSH serveru phoenix.inf.upol.cz připojíme (přihlásíme) pomocí programu SSH klienta zadáním příkazu ssh login@phoenix.inf.upol.cz, kde login je uživatelské jméno, s potvrzením klávesou Enter. Zadáváme pouze heslo, za výzvu password: (pokud v příkazu nezadáme část login@, zadáváme před heslem i uživatelské jméno, za výzvu login:) a opět POZOR, při zadávání hesla není od terminálu žádná odezva! Zadání hesla potvrdíme taktéž klávesou Enter. Po úspěšném připojení je to stejné jako u PuTTY.

Cyberduck

Cyberduck je grafický SFTP (SCP) aj. klient a je potřeba jej doinstalovat z cyberduck.io (Download, Cyberduck for macOS, soubor Cyberduck-x.y.z.w.zip). Po jeho spuštění se k SSH serveru phoenix.inf.upol.cz připojíme (přihlásíme) a po úspěšném připojení postupujeme obdobně jako u WinSCP.

Cvičení 2


– Úkol 1:
Přihlašte se v grafické přihlašovací obrazovce (GDM) pod svým uživatelským jménem do unixového systému (Linux) a následující provádějte v něm. (V případě Linuxu na učebně je nutné se před prvním přihlášením zde nejdříve přihlásit pomocí SSH na server phoenix.inf.upol.cz! – pomocí PuTTY v MS Windows nebo programu ssh v Linuxu a macOS)

– Úkol 2:
V grafickém desktopu (Gnome) spusťte dostupný prohlížeč souborů (Soubory), webový prohlížeč (Firefox) a textový editor (Gnome Text Editor, Gedit), přepínejte mezi jejich okny, okny posunujte, přesuňte je na další plochu desktopu, přepínejte plochy.

– Úkol 3:
Zkontrolujte v grafickém desktopu (Gnome) dostupnost anglického i českého rozložení klávesnice, pokud některé z nich není, přidejte jej (Nastavení, Region a jazyk/Klávesnice), a přepínejte mezi nimi.

– Úkol 4:
Pomocí aplikace Prohlížeč vzdálené plochy (Vinagre) se připojte (přihlašte) pod svým uživatelským jménem na server 1. phoenix.inf.upol.cz (SSH), 2. ts.inf.upol.cz (RDP) a odpojte (odhlašte) se z něj.

– Úkol 5:
V dostupném prohlížeči souborů (Soubory) si připojte pod svým uživatelským jménem síťový disk 1. phoenix.inf.upol.cz (ssh/sftp), 2. dragon.inf.upol.cz/students-homes/PortalID (smb, kde PortalID je vaše uživatelské jméno), zkopírujte nějaký soubor nebo adresář z Linuxu na disk a zpět a disk odpojte.

– Úkol 6:
Prohlédněte si nápovědu grafického desktopu (Gnome) a nakonec se ze systému odhlašte.

Cvičení 3


– Úkol 1:
V grafickém desktopu spusťte aplikaci emulace terminálu (Terminál, Konsole apod.) a následující provádějte v této aplikaci (terminálu).

– Úkol 2:
Napište do příkazové řádky terminálu (za výzvu, prompt) jakýkoliv text, pohybujte po něm kurzorem (klávesy ← a →, C-← a C-→, M-← a M-→, Home, End, C-a, C-e), editujte jej (klávesy Del, C-d, M-d, Backspace, C-t, M-t, C-u, C-k, C-y, označení textu myší a stisk kolečka, S-C-c, S-C-v) a potvrďte (klávesa Enter).

Úkol 3:
Zobrazte nápovědu příkazového interpretu (shellu) k příkazu echo. Obrazovku terminálu si případně posuňte zpět (klávesy S-PgUp, S-PgDn, kolečko myši).

Úkol 4:
Pomocí příkazu echo zobrazte Unisamp znak s hodnotou (šestnáctkově) 1F600.

Úkol 5:
Prohlédněte si manuálovou stránku programu date (po zobrazení klávesy ↑ a ↓, kolečko myši, PgUp, PgDn, h, q).

Úkol 6:
Pomocí programu date (a jeho manuálové stránky) zobrazte (do terminálu) aktuální datum ve tvaru DD. MM. RRRR (včetně mezer za tečkami).

Úkol 7:
Pomocí programu ssh se připojte (přihlašte) pod svým uživatelským jménem na server phoenix.inf.upol.cz a odhlašte se z něj.

– Úkol 8:
Listujte historií zadaných příkazů (klávesy ↑ a ↓, M-<, M->), vyhledejte příkaz z historie (klávesa C-r a zadávání textu, zrušení zadávání C-g).

Cvičení 4


Úkol 1:
Zobrazte cestu k aktuálnímu adresáři.

Úkol 2:
Zobrazte seznam všech souborů a podadresářů, včetně tzv. skrytých (neviditelných), v aktuálním adresáři (= obsah adresáře) s podrobnějšími informacemi (jméno, velikost, datum, práva aj.) o nich.

Úkol 3:
Zobrazte velikost aktuálního adresáře (program du).

Úkol 4:
Vytvořte adresář tmp, vejděte do něj a vyjděte z něj do nadřazeného (rodičovského) adresáře.

– Úkol 5:
Při zadávání příkazů, jmen programů a souborů nebo adresářů stiskněte (opakovaně) klávesu Tab!

– Úkol 6:
Pomocí (grafického) programu gedit (Textový editor) upravte obsah souboru welcome.html v adresáři ~/public_html (v domovském adresáři, na serveru phoenix.inf.upol.cz je tento soubor interpretován jako webová stránka na adrese
http://phoenix.inf.upol.cz/~login, kde login je vaše uživatelské jméno).

Úkol 7:
Zobrazte obsah souboru welcome.html (programy cat, less, klávesy ↑ a ↓, kolečko myši, PgUp, PgDn, / text a Enter, ? text a Enter, n, N, h, q).

Úkol 8:
Zkopírujte soubor welcome.html do souboru index.html, ten přejmenujte na main.html a poté tento smažte (s volbami postupně -i a -f). Zkopírujte adresář public_html na adresář web a poté tento smažte.

Úkol 9:
Pomocí programu scp zkopírujte soubor welcome.html pod svým uživatelským jménem na server phoenix.inf.upol.cz do souboru /tmp/login.html (kde login je vaše uživatelské jméno) a poté tento soubor zkopírujte zpět ze serveru do adresáže /tmp na Linuxu.

Úkol 10:
Vyhledejte (všechny) soubory v domovském adresáři větší než 1 kB a (současně) nemodifikované dříve než jeden den zpět.

Cvičení 5


Úkol 1:
Vytvořte symbolický odkaz index.html na kopii souboru welcome.html, kopii smažte, opět vytvořte a pak smažte odkaz. Mezi kroky si zobrazte obsah adresáře s odkazem a soubory s podrobnějšími informacemi (o odkazu).

Úkol 2:
Zobrazte skupiny, do kterých (váš) uživatel patří, a obsah adresáře s informacemi o vlastnících, skupinách a právech souborů a podadresářů.

Úkol 3:
Odeberte souboru welcome.html právo zápisu (vlastníkovi) a zkuste do něj zapsat (např. programem gedit), právo čtení a zobrazit jeho obsah, poté práva souboru vraťte.

Úkol 4:
Odeberte adresáři public_html právo vstupu (všem uživatelům) a zkuste zobrazit jeho obsah a vstoupit do něj, poté právo vraťte a odeberte právo čtení a opět zkuste zobrazit jeho obsah a vstoupit do něj, pak opět právo vraťte.

Úkol 5:
Nastavte všechna práva vlastníkovi a pouze právo vstupu skupině a ostatním uživatelům adresáři ~/public_html (v domovském adresáři).

– Úkol 6:
Zkuste v adresáři /tmp vytvořit soubor a smazat cizí soubor.

Úkol 7:
Připojte USB flash disk, zobrazte informaci o obsazeném a volném místě na něm (program df).

Cvičení 6


Úkol 1:
Zobrazte výpis všech procesů vašeho a jiného uživatele, všechny procesy v systému, dále ve stromové struktuře a nakonec pouze s informací o PID a příkazu procesu.

Úkol 2:
Spusťte (grafický) program gnome-calculator, získejte PID jeho procesu a programem kill jej pozastavte (a zkuste jej ovládat), pak rozběhněte a ukončete. Spusťte jej poté znovu, z terminálu, a zavřete okno terminálu.

Úkol 3:
Spusťte (grafické) programy gnome-calculator a gnome-mines (v terminálu), první tzv. na pozadí a druhý tzv. na popředí. Druhý přesuňte na pozadí a první na popředí. Pak první ukončete (zavřete okno) a ukončete shell v terminálu (korektně, např. příkazem exit).

Úkol 4:
Zobrazte seznam všech souborů a podadresářů v adresáři /dev se jménem začínajícím ttycifracokoliv, kde cifra je 0 až 9, a ttynecifracokoliv, kde necifra není 0 až 9, a cokoliv je jakýkoliv řetězec.

Úkol 5:
Vytvořte soubory (např. pomocí programu touch) se jmény * * * (včetně obou dvojic mezer mezi *) a "1 & 2" (včetně obou ").

Cvičení 7


Úkol 1:
Zapište do souboru, (pouze) pomocí programu cat, text zadaný na vstupu terminálu a poté ještě přidejte text zapsaný přímo v příkazovém řádku.

Úkol 2:
Uložte výstup programu date do souboru a pak do něj přidejte výpis všech procesů v systému.

Úkol 3:
Zobrazte výstup programu date a výpis všech procesů v systému současně v programu less.

Úkol 4:
Přidejte do seznamu cest v proměnné shellu PATH aktuální adresář (.) a proměnnou exportujte.

Úkol 5:
Zobrazte, s využitím programu date (a jeho manuálové stránky, konkrétně pak i přepínače -d 12/24), počet dní zbývajících do Štědrého dne (24. 12.) aktuálního roku.

Cvičení 8


Úkol 1:
Změňte kódování textu na vstupu z UTF-8 na cp1250, používaném na MS Windows, včetně správných konců řádků (na unixových systémech a MS Windows), a opačně.

– Úkol 2:
Vytvořte v textových editorech vim (vi), emacs (jed) a nano (pico) tabulku s několika řádky a sloupci (oddělenými např. tabulátorem) a vyzkoušejte si operace mazání znaků, slov, částí řádku, více řádků, kopírování a vložení částí řádku a několika řádků, undo a redo, vyhledání a náhrady řetězce za jiný a práci s více soubory a okny (otevření, zavření/uložení, přepínání).

– Úkol 3:
Vyzkoušejte (v příkazové řádce) klávesu C-x C-e a příkaz fc (včetně vyvolání příkazu začínajícího nějakým řetězcem).

Cvičení 9


Úkol 1:
Zobrazte očíslované řádky vstupu od 10. do 20. řádku včetně v opačném pořadí řádků.

Úkol 2:
Setřiďte (tabulkový) výstup programu df podle volného místa (čtvrtý sloupec) číselně sestupně.

Úkol 3:
Setřiďte výstup programu history podle příkazu, s odstraněním duplicitních příkazů (čísla příkazů ponechat).

Úkol 4:
Pomocí programů cut a paste prohoďte v tabulkovém vstupu (více než dva sloupce oddělené např. tabulátorem) první a druhý sloupec.

Úkol 5:
Zobrazte počet skupin, do kterých (váš) uživatel patří.

Úkol 6:
Zobrazte na jednom řádku seznam všech uživatelů, pod kterými běží v systému alespoň jeden proces.

Cvičení 10


Úkol 1:
V textových editorech vim (vi), emacs (jed) a nano (pico) vyhledejte na základě regulárního výrazu čísla, i necelá s případně desetinnou čárkou a necelou částí, následovaná mezerami a jednotkou B, kB, MB, GB nebo TB.

Úkol 2:
Změňte velikosti všech písmen na vstupu z malých na velká.

Úkol 3:
Zobrazte pouze řádky souboru, které nejsou v jiném souboru, tj. rozdíl souborů (jako rozdíl množin).

Úkol 4:
Zobrazte pouze řádky vstupu obsahující číslo zapsané v šestnáctkové soustavě začínající 0x (s malými i velkými písmeny).

Úkol 5:
Zobrazte seznam pouze souborů a adresářů s letošním datem modifikace.

Úkol 6:
Zobrazte pouze řádky vstupu, které neobsahují dvě stejná čísla.

Cvičení 11


Úkol 1:
Odstraňte ze vstupu mezery na koncích řádků.

Úkol 2:
Zobrazte ze vstupu pouze všechna čísla, i necelá s případně desetinnou čárkou a necelou částí, každé na samostatný řádek.

Úkol 3:
Pomocí programu sed prohoďte v tabulkovém vstupu (více než dva sloupce oddělené např. tabulátorem) první a druhý sloupec.

Úkol 4:
Zobrazte ze vstupu, ve kterém některé řádky představují nadpisy uvozené číslováním 1., 1.1, 1.1.1 atd., pouze tyto nadpisy, bez číslování a ve stromové struktuře -- odsazením levého okraje podnadpisů od levého okraje nadřazeného nadpisu mezerou.

Cvičení 12


Úkol 1:
Pomocí programu awk zobrazte z tabulkového vstupu (sloupce oddělené např. tabulátorem) pouze dva sloupce specifikované v proměnných předaných awk při jeho spuštění.

Úkol 2:
Zobrazte, ze souboru /etc/passwd, seznam uživatelů ve tvaru login tabulátor plné jméno uživatele.

Úkol 3:
Z čísel ve sloupci v tabulkovém vstupu (sloupce oddělené např. tabulátorem) spočítejte jejich průměr.

Úkol 4:
Zobrazte ze vstupu obsahujícího (i vnořené) bloky textu začínající řádkem obsahujícím pouze slovo START a končící řádkem obsahujícím pouze slovo END pouze text bloků první úrovně (tj. není mimo bloky ani ve vnořených blocích).