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