Unixové systémy – úkoly

Cvičení 1


– V MS Windows případně stáhněte a spusťte program PuTTY (putty.exe, 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.

– V MS Windows případně stáhněte a spusťte program WinSCP (other downloads, Portable executables, 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.

– 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! – viz úkol níže)

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

– 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, a přepínejte mezi nimi.

– 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.

– 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.

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

Cvičení 2


– 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).

– 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).

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).

Pomocí příkazu echo zobrazte Unicode znak s hodnotou (šestnáctkově) 1F600.

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

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).

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.

– 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í 3


Zobrazte cestu k aktuálnímu adresáři.

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.

Zobrazte velikost aktuálního adresáře (program du).

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

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

– 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).

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).

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.

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.

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


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).

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ářů.

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.

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.

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).

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

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

Cvičení 5


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.

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.

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).

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.

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

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.

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

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

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

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


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ě.

– 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í).

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


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

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

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

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.

Zobrazte obsah adresáře s pouze informacemi o právech, velikosti a jménu (pomocí programů cut a paste).

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

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

Cvičení 8


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.

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

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

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

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

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

Cvičení 9


Odstraňte ze vstupu mezery na koncích řádků.

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

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

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


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

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

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

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).