– Ú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 k serveru
phoenix.inf.upol.cz a odpojte (odhlašte) se z něj.
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í.
Vzdálené textové připojení k linuxovému serveru – 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).
Přenos souborů na/z linuxového serveru – 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 k serveru 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
V Apple macOS můžeme ke vzdálenému připojení k linuxovému serveru phoenix.inf.upol.cz použít aplikace Terminál pro zadávání textových příkazů, ve spojení s programem ssh, a Cyberduck k přenosu souborů na/ze server/u.
Vzdálené textové připojení k linuxovému serveru – 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.
Přenos souborů na/z linuxového serveru – Cyberduck
Cyberduck je grafický SFTP (SCP) aj. klient a je potřeba jej doinstalovat z App Store (v nabídce pod ikonou "jablka" v levém horním rohu obrazovky) nebo 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) tak, že v titulkovém pruhu okna klikneme na Nové spojení, v dialogu v roletkové nabídce nahoře zvolíme SFTP (SSH File Transfer Protocol), jméno serveru zadáme do pole Server: a uživatelské jméno do pole Jméno:. Heslo zde můžeme volitelně zadat také, do pole Heslo:, nebo ho zadáme až v následném dialogu, po jehož potvrzení a úspěšném připojení je v okně zobrazen seznam souborů a adresářů na serveru. Odpojení (odhlášení) se od serveru pak provedeme kliknutím na ikonu "eject" vpravo v titulkovém pruhu okna nebo jednoduše ukončením programu.
Cvičení 2
Ve druhém cvičení se již přesuneme do unixového systému, do linuxu na učebně nebo na vlastním počítači, příp. do Apple macOS na vlastním počítači.
linux
Na učebně je předinstalovaná distribuce Debian GNU/Linux, kterou zvolíme v nabídce při startu počítače. Na vlastní počítač případně nainstalujeme kteroukoliv zvolenou distribuci linuxu (přehled např. na Linux.cz). Výchozí uživatelské rozhraní na učebně je grafické, výchozím uživatelským prostředím po přihlášení uživatele je desktop Gnome.
Přihlašovací obrazovka (GDM)
Do linuxu na učebně se přihlásíme pomocí stejného uživatelského jména (login) a hesla jako na server phoenix.inf.upol.cz, ke kterému jsme se připojovali v předchozím cvičení. POZOR: Před prvním přihlášením se do linuxu na učebně je nutné se předtím přihlásit (skrze SSH) na server phoenix.inf.upol.cz! – pomocí PuTTY v MS Windows nebo programu ssh v linuxu a Apple macOS; toto máme hotovo z prvního cvičení.
Pokud jsme se na daném počítači již do linuxu někdy dříve přihlásili, můžeme vybrat (klinutím) své plné jméno v seznamu uprostřed přihlašovací obrazovky. V opačném případě klikneme na text Nejste na seznamu? pod seznamem a zadáme své uživatelské jméno (s potvrzením klávesou Enter). Následně, při zadávání hesla, se místo zadávaných znaků vypisují puntíky a zadané skutečné znaky je možné zobrazit a skrýt kliknutím na ikonku "oka". Zadané heslo opět potvrdíme klávesou Enter.
Na přihlašovací obrazovce je možné, pro zadání uživatelského jména a zejména hesla, zvolit rozložení klávesnice, anglické nebo české (QWERTY), a to kliknutím na indikátor aktuálního rozložení en, resp. cs, v pravém horním rohu obrazovky a volbou v nabídce nebo přímo klávesovou zkratkou Super-mezerník (či Windows-mezerník). Vedle indikátoru aktuálního rozložení klávesnice jsou také ikony pro nastavení záležitostí přístupnosti (accessibility, ikona "panáčka" nalevo) a pro vypnutí a restartování počítače (ikona "vypínače" napravo, zcela v rohu obrazovky; možnost uspání počítače je vypnutá).
– Ú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 předtím přihlásit (skrze SSH) na
server phoenix.inf.upol.cz! – pomocí PuTTY
v MS Windows nebo programu ssh v linuxu a Apple macOS.)
Uživatelské prostředí – desktop Gnome
Ihned po přihlášení uživatele (zahájení uživatelského sezení, session) může být zobrazen přehled Činností, viz další odstavec, v tom případě stačí kliknout na prázdnou plochu nebo na okno kterékoliv případně spuštěné aplikace. V případě prvního přihlášení uživatele může být spuštěna stručná úvodní prohlídka, kterou je možné přeskočit.
Téměř veškerá aktivita v desktopu, včetně spouštění aplikací, se děje skrze přehled Činností, který vyvoláme nejrychleji stiskem klávesy Super (Windows), ale také kliknutím na "pomlčku s tečkou" zcela vlevo v horní liště desktopu nebo pouhým najetím myši zcela do levého horního rohu obrazovky. Stejnými způsoby se vrátíme zpět do pracovní plochy, plus také klávesou Esc. Aplikace lze v přehledu spustit kliknutím na ikonu aplikace v nabídce (toolbar) dole na obrazovce nebo přímo psaním jména aplikace (nebo něčeho, co s aplikací souvisí) a následně kliknutím na ikonu nabídnuté vyhledané aplikace (ikonu lze vybrat i klávesami ← a → a následně aplikaci spustit pomocí klávesy Enter). Nabídku všech (grafických) aplikací lze zobrazit kliknutím na "mřížku teček" v toolbaru, nabídkou lze skrolovat kolečkem myši (nebo i klávesami PageUp a PageDown, výběr ikony aplikace i klávesami šipek). Tuto nabídku opustíme, bez spuštění aplikace, opět klávesou Esc.Uživatelské prostředí desktopu je běžné okenní, běžící aplikace se zobrazují v (možno i překrývajících se) oknech. Okno můžeme přesouvat tažením myší nejen za titulkový pruh, ale při stisknuté klávese Super také kdekoliv v okně, nebo po stisku Alt-F7 i klávesami šipek (a potvrzením klávesou Enter). Změna velikosti okna je možná klasicky tažením myší za hranu okna, ale také opět po stisku Alt-F8 i klávesami šipek. Vedle tlačítek v titulkovém pruhu okno maximalizujeme i pomocí Alt-F10 a zavřeme (aplikaci ukončíme) pomocí Alt-F4. Mezi okny různých aplikací se přepneme klasicky pomocí Alt-Tab (nebo i Super-Tab), mezi okny téže aplikace pak pomocí Alt-` (Super-`). Akce přesunu, zavření a přepnutí okna můžeme provádět, klinutím nebo tažením myší, i v přehledu Činností, kde se všechna okna zobrazují zmenšená a nepřekrývající se.
Desktop standardně podporuje více pracovních ploch. Kromě těch s přítomnými okny je (ve výchozím nastavení) vždy k dispozici další prázdná plocha navíc. Okna můžeme přesouvat i mezi plochami, pro přepnutí na jinou plochu máme několik možností: skrolování kolečkem myši nad indikátorem ploch zcela vlevo v horní liště (ona "pomlčka" pro aktivní plochu a "tečky" pro další), klávesami PageUp a PageDown v přehledu Činností, kde jsou miniatury ploch zobrazeny vpravo, nebo přímo klávesovými zkratkami Super-PageUp a Super-PageDown. Za povšimnutí stojí absence jakýchkoliv ikon (aplikací, souborů nebo adresářů) na plochách a nemožnost je tam nějak přidat. To je vlastnost desktopu Gnome, existuje ale způsob, jak ikony souborů a adresářů na plochu přidat: rozšíření (extension) Gnome, např. Desktop Icons NG.
Mezi základní aplikace grafického uživatelského prostředí dnes jistě patří prohlížeč souborů, webový prohlížeč a textový editor. V linuxu máme tradičně na výběr; aktuálně výchozí v desktopu Gnome jsou to aplikace Soubory, Firefox a Textový editor, ale dostupné (předinstalované na učebně nebo v distribuci) jsou i např. webový prohlížeč Chromium nebo textový editor Gedit. Počínaje třetím cvičením budeme používat ještě emulátor textového terminálu v podobě například výchozí aplikace Terminál.
– Úkol 2:
V grafickém uživatelském prostředí (Gnome) spusťte dostupný prohlížeč
souborů (Soubory), webový
prohlížeč (Firefox, Chromium) a textový editor (Textový
editor, Gedit), přepínejte mezi jejich okny, okny
posunujte, přesuňte je na jinou plochu desktopu, přepínejte plochy.
Pokud je nastavených více rozložení klávesnice, nalezneme opět indikátor aktuálního rozložení en, resp. cs, stejně jako na přihlašovací obrazovce, v pravém horním rohu obrazovky, v horní liště nalevo od indikátorů zařízení (zvuku, sítě aj.). Rozložení opět změníme kliknutím na indikátor a volbou v nabídce nebo přímo klávesovou zkratkou Super-mezerník (Windows-mezerník). Navíc jsou nyní v nabídce s rozloženími také možnosti zobrazení aktuálního rozložení (včetně variant při stisku modifikátorů Shift nebo RightAlt/AltGr!) a nastavení klávesnice včetně přidání/odebrání rozložení. Pokud je ovšem nastaveno pouze jedno rozložení klávesnice, indikátor aktuálního rozložení zobrazen není a k nastavení klávesnice se dostaneme v rámci nastavení celého desktopu, aplikace Nastavení. K tomu vede cesta i skrze systémovou nabídku. Tu otevřeme kliknutím na indikátory zařízení (spolu s ikonou "vypínače") zcela vpravo v horní liště a Nastavení jsou pod ikonou "ozubeného kolečka". V okně Nastavení pak v seznamu vlevo vybereme položku Klávesnice a rozložení klávesnice zde můžeme přidat nebo odebrat nastavením Vstupních zdrojů.
– Úkol 3:
Zkontrolujte v grafickém uživatelském prostředí (Gnome)
dostupnost volby anglického a
českého rozložení klávesnice, pokud některé z nich chybí,
přidejte jej (Nastavení, Klávesnice), mezi rozloženími
přepínejte a zobrazte si je.
Vzdálené připojení k MS Windows
V prvním cvičení jsme se vzdáleně textově připojovali k linuxovému serveru phoenix.inf.upol.cz z MS Windows pomocí SSH klienta PuTTY. Přestože PuTTY je dostupné i pro linux, z linuxu se k serveru připojíme až ve třetím cvičení pomocí programu ssh v textovém uživatelském prostředí ("příkazový řádek", podobně jako v prvním cvičení v případě Apple macOS).
Nyní se připojíme (přihlásíme) vzdáleně graficky k MS Windows serveru terminal.inf.upol.cz. V desktopu Gnome je tomu jednoduchá aplikace Připojení, klient vzdálené pracovní plochy (samozřejmě jsou k dispozici i další, např. Remmina). Po jejím spuštění klikneme na ikonu "plus" vlevo v titulkovém pruhu okna, zadáme síťové jméno terminal.inf.upol.cz, typ připojení ponecháme RDP a stiskneme tlačítko Připojit (při prvním připojení je ještě potřeba potvrdit bezpečnostní upozornění). POZOR: Server terminal.inf.upol.cz je dostupný pouze z univerzitní sítě (pro připojení odjinud je nutné vytvořit VPN připojení k univerzitní síti)! Do polí Uživatelské jméno... a Heslo... zadáme uživatelské jméno (login) a heslo do MS Windows (stejné jako do Portálu UP, do pole Doména... není třeba nic zadávat, ale můžeme zadat PRFAD) a stiskneme tlačítko Ověřit. Pro opětovné připojení k serveru, ke kterému jsme se již někdy dříve připojovali, pak stačí v okně aplikace kliknout na dlaždici se jménem serveru.
– Úkol 4:
Pomocí aplikace Připojení (nebo jiné pro vzdálené RDP
připojení) se připojte
(přihlašte) pod svým uživatelským jménem k MS Windows serveru terminal.inf.upol.cz a odpojte
(odhlašte) se z něj.
Připojení síťového disku
Pro přenos souborů na/z MS Windows můžeme využít připojení adresáře jako síťového disku, přímo v prohlížeči souborů (v desktopu Gnome aplikace Soubory). Připojíme si uživatelský domovský adresář v MS Windows na učebnách a serverech katedry. V okně aplikace Soubory vybereme v seznamu vlevo položku Síť, do pole dole zadáme adresu smb://dragon.inf.upol.cz/students-homes/login, kde login je uživatelské jméno do MS Windows (smb je označení síťové služby sdílení souborů a adresářů v MS Window, dragon.inf.upol.cz je síťové jméno serveru a students-homes je adresář s domovskými adresáři uživatelů) a stiskneme tlačítko Připojit. POZOR: I server dragon.inf.upol.cz je dostupný pouze z univerzitní sítě (a pro připojení odjinud je nutná VPN)! V následném dialogu zvolíme Registrovaný uživatel, zadáme uživatelské jméno (login) a heslo do MS Windows, do polí Uživatelské jméno a Heslo, do pole Doména zadáme PRFAD (zde je to nutné) a stiskneme tlačítko Připojit. Po ukončení práce s připojeným síťovým diskem jej odpojíme například kliknutím v okně aplikace Soubory na ikonu "eject" vedle pojmenování disku (adresáře) v seznamu vlevo. V okně, po výběru vlevo položky Síť, rovněž vidíme seznam připojení z dřívějška a pro opětovné připojení stačí vybrat položku seznamu (jako otevření adresáře). Užitečný může být na serveru dragon.inf.upol.cz také adresář vyuka, obsahující výukové materiály od vyučujících (adresa smb://dragon.inf.upol.cz/vyuka).
Podobně si můžeme připojit jako síťový disk i adresář z linuxového serveru, v našem případě uživatelský domovský adresář na serveru phoenix.inf.upol.cz. Adresa bude jen ssh://phoenix.inf.upol.cz (bez zadání adresáře, domovský adresář uživatele je výchozí; také je možné místo ssh zadat sftp). Uživatelské jméno (login) a heslo je na tento server. V linuxu na učebně je toto připojení ale nadbytečné, protože uživatelské domovské adresáře na serveru phoenix.inf.upol.cz jsou zde připojeny automaticky při startu systému a fungují jako domovské adresáře uživatelů přihlašovaných i na učebně.
– Úkol 5:
V prohlížeči souborů (Soubory) si připojte pod svým
uživatelským jménem jako síťový disk Váš domovský adresář
dragon.inf.upol.cz/students-homes/login (kde login je
Vaše uživatelské jméno) v MS Windows, zkopírujte nějaký soubor
nebo adresář z linuxu na disk (do adresáře v MS Windows) a zpět a disk odpojte.
Nápověda a odhlášení
Na závěr se ještě vrátíme k samotnému uživatelskému prostředí, desktopu Gnome. Má výborně zpracovanou a do češtiny přeloženou nápovědu v podobě aplikace Nápověda.
Nakonec, cesta k odhlášení se ze systému vede přes systémovou nabídku (ale i přímo přes klávesovou zkratku Control-Alt-Delete). K té se, pro zajímavost, vedle již zmíněného kliknutí na indikátory zařízení (spolu s ikonou "vypínače") zcela vpravo v horní liště, můžeme dostat i pomocí pouze klávesnice: zkratka Control-Alt-Tab, volba Horní lišta a poté klávesy šipek a Enter. Kromě nastavení celého desktopu ("ozubené kolečko") a různých tlačítek a jiných prvků pro nastavení zařízení (zvuku, sítě aj.) jsou zde i ikony pro uzamčení desktopu (uživatelského sezení, ikona "zámku", pro odemčení je nutné zadat heslo) a pro vypnutí a restartování počítače (ikona "vypínače"; možnost uspání počítače je na učebně vypnutá). A pod touto druhou ikonou je právě ukrytá i možnost odhlášení se ze systému (ukončení uživatelského sezení), případně také dočasného přepnutí na jiného uživatele (to znamená uzamčení sezení, přihlášení se jiného uživatele a po jeho odhlášení odemčení sezení).
– Úkol 6:
Prohlédněte si nápovědu grafického uživatelského prostředí (Gnome) a nakonec se ze
systému odhlašte.
Ještě poznámka: na přihlašovací obrazovce GDM na učebně je možné zvolit pro sezení (session) jiné předinstalované uživatelské prostředi než výchozí desktop Gnome – po výběru nebo zadání uživatelského jména, před potvrzením hesla, kliknutím na ikonu "ozubené kolečko" v pravém dolním rohu obrazovky a výběrem položky.
Apple macOS
Přihlašovací obrazovka
V Apple macOS je uživatelské rozhraní rovněž grafické, přihlašovací obrazovka je podobná jako v linuxu. Přihlášení zadáním hesla funguje stejně, možnost volby rozložení klávesnice v pravém horním rohu obrazovky zde může být také, stejně jako je zde ikona pro vypnutí a restartování počítače.
Uživatelské prostředí
Uživatelské prostředí je bežné okenní, není zde ovšem přehled Činností jako v desktopu Gnome. Nabídka (toolbar) dole na obrazovce s vybranými aplikacemi je přítomná vždy, všechny aplikace jsou dostupné pod ikonou "barevných čtverečků" (Launchpad), kde je pak i možnost vyhledání aplikace psaním jejího jména. Práce s okny je klasická, pro přepínání mezi okny (aplikacemi) slouží klávesová zkratka command-Tab. Atypické je umístění nabídky (menu) aplikace, která bývá obvykle v okně dané aplikace pod titulkovým pruhem, do horní lišty celého prostředí. Více pracovních ploch prostředí nepodporuje, na plochu je ale možné standardně umísťovat ikony souborů a adresářů.
Aplikacemi prohlížeče souborů, webového prohlížeče a textového editoru jsou Finder, Safari a TextEdit, emulátor textového terminálu je rovněž aplikace Terminál (již jsme ji použili v prvním cvičení).
Se změnou rozložení klávesnice kliknutím na indikátor aktuálního rozložení v horní liště vpravo, nalevo od indikátorů zařízení (zvuku, sítě aj.), je to stejné jako v desktopu Gnome. Pro změnu přímo je klávesová zkratka control-mezerník. V nabídce s rozloženími jsou také možnosti zobrazení aktuálního rozložení (Zobrazit prohlížeč klávesnic, včetně varianty při stisku modifikátoru option) a nastavení klávesnice, ke kterému se dostaneme i rámci nastavení celého systému, aplikace Nastavení systému. K tomu vede cesta i skrze systémovou nabídku, kterou otevřeme kliknutím na ikonu "jablka" zcela vlevo v horní liště. V okně Nastavení systému pak v seznamu vlevo vybereme položku Klávesnice, pod titulkem Zadáni textu klikneme na tlačítko Upravit... vedle Vstupní zdroje a v následném dialogu rozložení klávesnice přidáme nebo odebreme.
Vzdálené připojení k MS Windows
Pro toto je potřeba doinstalovat aplikaci pro vzdálené RDP připojení, například oficiální MS Remote Desktop (nově Windows App for Mac), z App Store nebo What's new in Windows App (tab macOS, odkaz na .pkg v tabulce, soubor Windows_App_x.y.z_installer.pkg). Po jejím spuštění se k MS Windows serveru terminal.inf.upol.cz graficky připojíme (přihlásíme) tak, že v nabídce (menu) aplikace vybereme položky Connections a PC Quick Connect..., do pole PC name: zadáme jméno serveru a po stisku tlačítka Connect pokračujeme obdobně jako u aplikace Připojení v desktopu Gnome.
Připojení síťového disku
Připojení adresáře z MS Windows jako síťového disku podporuje přímo prohlížeč souborů (aplikace Finder). Pro připojení uživatelského domovského adresáře v MS Windows na učebnách a serverech katedry vybereme v nabídce (menu) aplikace Finder položky Otevřít a Připojit k serveru... a dále postupujeme obdobně jako u prohlížeče souborů v linuxu (v desktopu Gnome aplikace Soubory).
Připojení adresáře z linuxového serveru, v našem případě uživatelského domovského adresáře na serveru phoenix.inf.upol.cz, jako síťového disku už aplikace Finder přímo nepodporuje. Podporu je potřeba doinstalovat, například Mountain Duck, z App Store nebo z mountainduck.io/ (Download for Mac, soubor Mountain Duck-x.y.z.w.zip). Po spuštění se v horní liště vpravo vedle indikátoru aktuálního rozložení klávesnice objeví ikona "kachničky". Po kliknutí na ni a výběru položky Nové spojení... postupujeme stejně jako u aplikace Cyberduck v prvním cvíčení a po úspěšném připojení je připojený adresář jako síťový disk otevřen v aplikaci Finder. Odpojení disku provedeme například v okně aplikace Fider kliknutím na ikonu "eject" vedle pojmenování disku (adresáře) v seznamu vlevo.
Nápověda a odhlášení
Česká nápověda je (online) dostupná v menu (výchozí) aplikace Finder, položky Nápověda a Nápověda pro macOS.
Odhlášení se ze systému je dostupné skrze systémovou nabídku (ikona "jablka" zcela vlevo v horní liště), položka Odhlásit uživatele jméno.... Navíc zde najdeme i položky pro uzamčení prostředí (Zamknout obrazovku) a pro vypnutí a restartování (a uspání) počítače.
Cvičení 3
Ve třetím cvičení "vyměníme" grafické uživatelské rozhraní za pro unixové systémy původní textové, poskytované emulátorem terminálu Terminál (který je výchozí v grafickém desktopu Gnome) nebo jinou aplikaci tohoto druhu (např. Konsole, xterm apod.). V Apple macOS jde rovněž o aplikaci Terminál. Jelikož jde o aplikaci v grafickém uživatelském prostředí, kde již jsme přihlášeni, v okně (emulátoru) terminálu se po jeho spuštění již znovu nepřihlašujeme. Můžeme ale použít i emulátor terminálu pro vzdálené připojení k unixovému systému, např. k linuxovému serveru phoenix.inf.upol.cz z MS Windows, třeba aplikaci PuTTY z prvního cvičení, kde se ke vzdálenému systému přihlásíme. V tomto textovém rozhraní už víceméně zůstaneme po všechna zbývající cvičení.
– Úkol 1:
V grafickém uživatelském prostředí (Gnome) spusťte aplikaci emulace terminálu
(Terminál, Konsole, xterm apod.) a
následující provádějte v této aplikaci (terminálu).
Příkazový řádek a interpret (shell)
Uživatelským pracovním prostředím v textovém emulátoru
terminálu (dále jen terminálu) je prostředí tzv. příkazového řádku (command
line interface, CLI). Ten je
poskytovaný programem příkazového interpretu (shell), který
je spuštěný v terminálu po případném (vzdáleném) přihlášení
uživatele (v rámci uživatelského sezení, session). Výchozím příkazovým interpretem v linuxu na učebně, ale
i v mnoha linuxových distribucích a jiných unixových
systémech, je shell Bash
(Bourne-Again Shell) z
projektu GNU. V Apple macOS
je výchozí Z shell, ale bývá předinstalovaný i GNU Bash
– spustíme jej zadáním v Z shellu příkazu bash
(potvrzeném klávesou Enter). Nadále budeme předpokládat
shell GNU Bash, ale mnohé je funkční i v Z shellu.
V jednořádkovém prostředí shellu v terminálu (text delší než šířka terminálu pokračuje na dalším řádku, ale je stále uvažovaný jako jeden řádek) mu zadáváme textové příkazy, za výzvu shellu (prompt). Ta je zobrazena na prvním řádku terminálu (shora) od začátku (zleva) a má typickou podobu login@hostname:adresar$ (plus ještě mezera za $), kde login je uživatelské jméno (login), hostname síťové jméno počítače, na kterém shell běží, a adresar je aktuální adresář shellu – shell se vždy "nachází" v nějakém adresáři, výchozí po spuštění shellu je domovský adresář uživatele. Podobně vypadá i prompt Z shellu v Apple macOS, prompt shellu Bash zde ale má strohou podobu bash-verze$. Dodejme, že prompt superuživatele root má na konci typicky # místo $ a že podobu promptu si uživatel může nastavit vlastní (toto ale dělat nebudeme).
Pro další text si zjednodušíme značení klávesových zkratek: C- znamená Control- (tj. za stisku klávesy Control stisknout klávesu uvedenou za -), podobně S- pro Shift-; S-C- znamená Shift-Control-. M- je pro původní klávesu Meta, kterou na současných klávesnicích reprezentuje klávesa (levý) Alt a na klávesnicích Apple ji zastupuje klávesa option, značená O-.
Znaky textu příkazu na příkazovém řádku shellu zadáváme na pozici textového kurzoru (vyplněný obdélník nebo podtržítko, případně blikající), který se s každým zadaným znakem posune o jednu pozici doprava. Po zadaném textu můžeme kurzorem pohybovat a text editovat. Pro pohyb kurzorem po znacích (předchozí a následující) jsou klávesy ← a →, po slovech textu (kde slovo je posloupnost znaků bez mezery nebo tabulátoru), po začátcích, resp. koncích slov, pohybujeme kurzorem pomocí C-← a C-→ (nebo i M-← a M-→), na začátek nebo konec textu kurzor přesuneme pomocí Home a End (nebo také C-a a C-e). Pro základní editaci zadaného textu obvykle fungují Del (pokud ne nebo klávesa není, pak C-d) pro výmaz znaku na kurzoru a Backspace pro výmaz znaku před kurzorem, dle očekávání. Část slova od kurzoru k začátku slova vymažeme pomocí M-Backspace, po konec slova pak pomocí M-d. Znak na kurzoru prohodíme s předchozím znakem pomocí C-t, slovo s kurzorem s předchozím slovem pak pomocí M-t. Část celého textu od kurzoru k začátku textu (po prompt) vymažeme pomocí C-u, po konec textu pak pomocí C-k. Velmi užitečné je to, že jakákoliv vymazaná část slova nebo celého textu je uložena do "schránky řádku" a lze ji opětovně vložit na pozici kurzoru pomocí C-y.
V okně terminálu v grafickém prostředí můžeme využít pro kopírování textu příkazového řádku i pouze myš, případně s klávesovými zkratkami, stejně jako pro kopírování textu v oknech jiných aplikací (přes "schránku", operace copy&paste). V grafickém rozhraní unixových systémů včetně linuxu obvykle stačí text označit myší a pro jeho vložení, například na místo kurzoru v terminálu, jen stisknout kolečko myši. Případně pro zkopírování myší označeného textu a jeho vložení mohou v terminálu fungovat klávesové zkratky S-C-c a S-C-v (v jiných aplikacích jen obvyklé C-c a C-v).
Potvrzení zadaného textu (i prázdného) na příkazovém řádku, tedy "odeslání" jej shellu jako příkazu k vykonání, provedeme klávesou Enter. V terminálu se může zobrazit nějaký výstup vykonání příkazu a poté je opět zobrazena výzva shellu (prompt).
Když je příkazy a jejich výstupy zaplněna celá obrazovka (okno) terminálu, typicky 24 nebo 25 řádků, začne při dalším zobrazovaném textu skrolovat nahoru, tj. nejstarší text (horní řádky) vyroluje "nad" obrazovku. K němu se můžeme vrátit a obrazovkou terminálu, jako náhledem (oknem) na část textu, standardně na poslední, můžeme po celém textu posouvat (skrolovat), klávesovými zkratkami S-PageUp a S-PageDown nebo i kolečkem myši nad terminálem (případně často i dvěma prsty nahoru a dolů po touchpadu). V Apple macOS fungují fn-↑ a fn-↓ (a dva prsty po touchpadu). Text na obrazovce můžeme také vyrolovat (obrazovku smazat) nahoru tak, že na obrazovce zůstane jen prompt na prvním řádku nahoře, klávesovou zkrakou C-l.
– Úkol 2:
Napište do příkazové řádky shellu v terminálu (za výzvu,
prompt) jakýkoliv text, pohybujte po něm kurzorem, editujte
jej (včetně kopírování) a potvrďte jej shellu jako příkaz (v tuto chvíli nezáleží
na tom, jestli platný). Zaplňte textem příkazů a jejich
výstupy celou obrazovku (okno) terminálu a poté obrazovkou skrolujte.
Historie příkazů
Shell udržuje historii všech zadaných příkazů, kterou je možné
listovat a prohledávat. Historie je, po ukončení shellu, ukládaná do souboru (s
omezením na počet příkazů v řádu obvykle stovek nebo tisíců) a
jiný shell v jiném terminálu (i v dalším uživatelském sezení)
historii ze souboru při svém spuštění načítá a svoji historii
příkazů po ukončení do souboru přidává; takže je možné
listovat a prohledávat i historii z předchozích shellů.
K předchozím příkazům do minulosti se v historii
vrátíme pomocí ↑, k následujícím blíže k
přítomnosti pomocí ↓. Příkaz z historie
se ihned objevuje na řádku za promptem a pro znovuspuštění ho stačí
potvrdit. Pro skok na první příkaz v historii obvykle funguje
M-<, za poslední příkaz pak
M->. Interaktivní vyhledávání v historii zahájíme
klávesovou zkratkou C-r (prompt shellu se změní) a
pak zadáváme text vyskytující se v hledaném příkazu (mazání
pomocí Backspace), který se ihned zobrazuje na řádku
a stačí jej potvrdit; nebo vyhledávání zrušíme pomocí
C-g. Opětovný stisk C-r během
vyhledávání vyhledá předchozí příkaz s výskytem zadaného textu
a stisk ↑ nebo ↓ při
vyhledaném příkazu zobrazí na řádku příkaz v histori hned před nebo za ním a
vyhledávání se ukončí. Doplňme ještě dopředu (viz dále), že
celou historii shellu si můžeme zobrazit pomocí příkazu history.
– Úkol 3:
Listujte v shellu historií zadaných příkazů, historii si zobrazte a nějaký předchozí
příkaz v historii vyhledejte a spusťte znovu.
Příkazy a programy
Jednoduchý příkaz shellu je seznam slov oddělených mezerami nebo tabulátory (tzv. bílými znaky). První slovo, běžně chápané jako jméno příkazu, se shell snaží vykonat, s dalšími volitelnými slovy jako jeho argumenty, a pokud to není interní příkaz shellu, představuje první slovo název programu, který shell zkusí spustit. Pokud program daného názvu není v systému dostupný, vykonání příkazu (spuštění programu) končí chybou, podobně jako například při chybném seznamu argumentů příkazu. Argumentům začínajícím znakem - (pomlčka) se říká přepínače (options). POZOR: Jména interních příkazů, názvy programů i argumenty jsou (u shellu Bash i jiných) citlivá na velikost písmen, tzv. case-sensitive! U Z a Bash shellu v Apple macOS se to ale týká jen argumentů.
Nyní si již nějaké platné příkazy (s v systému existujícími
programy) vyzkoušíme. Například příkaz date,
spouštějící program date,
zobrazí (vypíše) aktuální systémový datum a čas. Po vyzkoušení příkazů
DATE nebo Date se naopak objeví
chybová hláška shellu příkaz nenalezen. Příkaz
date -d tomorrow +%A s argumenty (-d
je přepínač), v Apple macOS date -v+1d
+%A, zobrazí jen jméno zítřejšího dne. Co argumenty
znamenají, se dozvíme později v nápovědě k programu
date. Příkazy who a w
zobrazují nějaké infomace k aktuálně přihlášeným uživatelům v
systému, druhý příkaz navíc na prvním řádku výpisu informace o
době běhu systému a jeho akuálním vytížení. Velmi užitečný, i
když se to na první pohled nezdá, je příkaz echo,
který "jen" zobrazí (vypíše) v terminálu své argumenty (vyjma
přepínačů, kterým "rozumí"), např. echo Ahoj svete!.
Příkazů můžeme na příkazový řádek zadat i více "naráz" a nechat je
vykonat postupně všechny po potvrzení jedním
Enter. V tom případě je oddělíme znakem
; (středník). Budou vykonány po sobě, další vždy
až skončí předchozí (existuje i možnost souběžného vykonávání
více příkazů, o tom ale až v šestém
cvičení). Například echo -n Pocitac:\ ;
hostname. Příkaz echo -n Pocitac:\
(všimněme si mezery za \)
zde nejprve zobrazí text Pocitac: (včetně
mezery za :) a příkaz hostname pak síťové jméno
počítače. Pro přepínač -n viz nápovědu
shellu k příkazu echo dále, konstrukce \ (\ a mezera)
představuje způsob, jak na příkazovém řádku zadat mezeru tak,
aby byla součástí příkazu a ne oddělovačem jména a argumentů
příkazu (více opět viz šesté cvičení).
Vzdálené textové připojení k linuxovému serveru – ssh
Program ssh (secure shell) je textový SSH klient a můžeme
jej použít ke vzdálenému připojení (přihlášení) k linuxovému
serveru phoenix.inf.upol.cz, podobně jako
grafický program PuTTY pro MS
Windows v prvním cvičení. Příkaz je ssh login@phoenix.inf.upol.cz, kde login je
uživatelské jméno na serveru. Po spuštění příkazu za výzvu
password: zadáme heslo na
tento server (pokud v příkazu nezadáme část login@, zadáváme
před heslem i uživatelské jméno, za výzvu
login:), které opět potvrdíme
klávesou Enter. POZOR: Při
zadávání hesla není od terminálu žádná odezva (z
bezpečnostních důvodů)! Po úspěšném připojení k serveru je to stejné jako u
PuTTY.
Úkol 4:
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.
Změna hesla a ukončení shellu
Pro změnu hesla uživatele v unixových systémech včetně linuxu bežně slouží program passwd. Za výzvy zadáme
postupně stávající a dvakrát nové heslo, potvrzené klávesou Enter. Opět platí, že při
zadávání hesel není od terminálu žádná odezva. V linuxu na
učebnách, ale i na serveru phoenix.inf.upol.cz,
jsou ovšem hesla síťově sdílená (pomocí systému NIS), takže
místo passwd je zde nutné pro změnu hesla použít příkaz yppasswd.
Shell ukončíme příkazem exit. Také funguje
klávesová zkratka C-d při prázdném zadávaném textu
na příkazovém
řádku (jen prompt). Pokud je shell tzv. přihlašovací, tzn. vznikl v
důsledku přihlášení uživatele, např. přes síťovou službu SSH,
lze jej ukončit také příkazem logout (viz první cvičení). Ve všech případech při
ukončení shellu v terminálu dojde obvykle automaticky i k ukončení
programu emulátoru terminálu (v grafickém prostředí tedy i k
uzavření jeho okna; ne ovšem v Apple macOS).
Nápověda shellu a manuálové stránky
Shell má pro každy svůj (interní) příkaz integrovanou nápovědu
s popisem příkazu i všech jeho argumentů,
dostupnou přes příkaz help. Jako argument zadáme
jméno příkazu, např. help echo, bez argumentu
zobrazí seznam všech interních příkazů s
jejich nejčastějšími argumenty. Pokud bychom chtěli vědět, zda
je jméno interní příkaz shellu nebo program, použijeme příkaz
type, např. type -a echo (a vidíme,
že echo je jak interní příkaz shellu tak i program).
Úkol 5:
Zobrazte nápovědu příkazového interpretu (shellu)
k příkazu echo.
Úkol 6:
Pomocí příkazu echo zobrazte Unicode znak s hodnotou
(šestnáctkově) 1F600.
Hlavní formou nápovědy v unixových systémech jsou však
manuálové stránky, pro (téměř) všechny programy pro
textový terminál a někdy i pro grafické programy (ale i pro
konfigurační a speciální soubory systému, programátorské funkce a další). Je to primární
textová dokumentace programu, kterou si můžeme interaktivně
prohlížet přes celou obrazovku terminálu programem man,
kterému jako argument zadáme jméno programu, např. man
echo. Stránky mají jednotnou strukturu: stručná
charakteristika programu, zápis a popis argumentů, podrobnější
popis včetně případných příkladů použití, (neinteraktivní) odkazy na jiné stránky a (konfigurační) soubory, informace o
autorech, hlášení chyb a další. Interakci prohlížení stránky
obvykle zajišťuje program less, ve kterém se můžeme po stránce
posouvat po řádcích pomocí ↑ a
↓ nebo
kolečkem myši (nebo prstem či prsty na touchpadu), po
obrazovkách pomocí
PagegUp a PageDown, přejít na začátek nebo konec stránky
pomocí Home (také <) a
End (>), ve stránce vyhledávat
pomocí / (ke konci) nebo ? (k začátku) a
zadáním textu spolu s Enter, opakovat poslední vyhledání
pomocí n (ve směru prvního vyhledání) a
N (proti směru), zobrazit vlastní nápovědu se
stejnými možnostmi pomocí h a konečně opustit
tuto nápovědu nebo i zobrazení manuálové stránky pomocí q.
Dodejme ještě, že manuálové stránky můžeme vyhledávat přes
(přesné) jméno programu pomocí whatis a přes klíčové slovo
v popisu programu v manuálové stránce pomocí
apropos, kde jméno nebo slovo je argumentem
těchto programů.
Úkol 7:
Prohlédněte si manuálovou stránku programu date. Co
zobrazí příkaz date +%A\ %e. a proč?
Úkol 8:
Pomocí programu date (a jeho manuálové stránky) zobrazte aktuální datum ve tvaru DD. MM. RRRR (včetně mezer
za tečkami).
GNU Info
V unixových systémech se základními programy z projektu GNU, tedy i v linuxových
distribucích, ne však v Apple macOS, bývá k dispozici i další
dokumentace, GNU Info, pro programy a programové
celky či balíky. Příkaz info bez argumentu zobrazí
"rozcestníkovou" stránku pro všechnu tuto dokumentaci, která
je organizovaná hierarchicky s hypertextovými odkazy (podobně
jako web). Ze
stránky můžeme interaktivně přejít na odkazovanou stránku následováním
odkazu, zobrazeného s podtrženým textem a *
(hvězdičkou) před ním, klávesou Enter po přesunu
kurzoru na text, na v
hierarchii nadřazenou stránku pomocí
u. Prohlížení samotné stránky je
podobné jako u manuálové stránky, akorát klávesy šipek
pohybují kurzorem a ne stránkou, navíc interaktivní vyhledávání je
zahájeno pomocí
C-s nebo C-r a ihned se vyhledává
následně zadaný
text se zrušením pomocí C-g, interní nápovědu
vyvoláme pomocí H (a zavřeme pomocí
l). Za prozkoumání stojí stránka pro balík programů
GNU Coreutils, info coreutils, neboť ten
tvoří základní programové vybavení unixových systémů, včetně
programů pro základní manipulaci se soubory a s textem, kterými
se v dalších cvičeních budeme zabývat.
Cvičení 4
Ve čtvrtém cvičení zůstaneme v unixovém textovém uživatelském rozhraní emulátoru terminálu z předchozího třetího cvičení a pracovním prostředí příkazového řádku (CLI) a interpretu, shellu (GNU Bash). Podíváme se na základní práci se soubory a adresáři. Většina následujících programů, i v dalších cvičeních, je z balíku GNU Coreutils.
Soubory a adresáře
Cestu k aktuálnímu adresáři shellu (shell se vždy
"nachází" v nějakém adresáři, výchozí po jeho spuštění je
domovský adresář uživatele) zjistíme pomocí příkazu
pwd. Pro zobrazení (výpis) obsahu adresáře,
tj. seznamu jmen souborů a podadresářů adresáře, slouží
program ls (nebo téměř stejný dir). Bez
argumentů, ls zobrazí pouze tento seznam,
formátovaný do vícesloupcové tabulky na obrazovku terminálu, pro aktuální
adresář. Jména mohou být obarvená, například jména (pod)adresářů
modře a jména souborů s vybranými příponami různými jinými
barvami, ale to záleží na nastavení shellu (a možnostech
emulátoru terminálu). Další užitečné údaje k souborům a adresářům
přidáme přepínačem -l: ls -l. Jména
jsou nyní v posledním sloupci zobrazené tabulky, první znak
prvního sloupce značí typ položky, například -
(pomlčka) pro soubor, d pro adresář (další znaky
prvního sloupce se týkají uživatelským práv, která si
vysvětlíme v příštím, pátem
cvíčení). Ve sloupci před jmény je datum a čas poslední
změny obsahu souboru nebo adresáře (u adresáře to znamená
změna seznamu souborů nebo podadresářů adresáře) a ve sloupci
před tímto je zobrazena velikost souboru v bytech. V případě
adresáře to ale není velikost adresáře ve smyslu součtu
velikostí všech souborů v něm (rekurzivně v celém adresářovém
podstromu), k tomu je program du níže, ale technický
údaj o alokované velikosti pro obsah adresáře
(tj. seznam). Pro zobrazení velikosti v nejbližším
1024-násobku bytů, tedy v kB, MB, GB atd. (tzv. "lidsky
čitelný formát", "human readable"), stačí přidat ještě
přepínač -h: ls -l -h, nebo i ls
-lh, protože jednopísmenné přepínače lze takto
"slučovat" za jednu pomlčku. Tzv. skryté soubory a adresáře přidáme do výpisu
přepínačem -a: ls -a; bez něj se
nezobrazují (to je celá "skrytost").
Úkol 1:
Zobrazte cestu k aktuálnímu adresáři.
Úkol 2:
Zobrazte seznam všech souborů a podadresářů, včetně
tzv. skrytých, v
aktuálním adresáři (= obsah adresáře) s podrobnějšími informacemi
(jméno, velikost, datum, práva aj.) o nich.
Můžeme zobrazit i obsah
jakéhokoliv jiného adresáře než aktuálního, když cestu k němu
(relativní nebo absolutní) přidáme
ls také jako argument, např. pro cestu pouze
jméno ls -l
public_html (předpokládáme existenci adresáře
public_html v aktuálním adresáři, což je v
případě domovského adresáře uživatelů
na učebnách a serveru phoenix.inf.upol.cz
předpřipravená situace a domovský adresář je po přihlášení
uživatele výchozí aktuální). Můžeme zadat i cestu k souboru,
ale to zobrazí jen výpis k samotnému souboru (což může být i
tak užitečné např. ve spojení s přepínačem -l). Cest můžeme zadat i více
současně, výpis je zobrazem pro každou z nich. Speciální
jména . (tečka) a .. (dvě tečky)
značí aktuální adresář (ten je ale bez zadání cesty u
ls výchozí) a
rodičovský adresář. POZOR: Jména souborů a adresářů,
uváděná v cestách ale i celkově, stejně jako jména interních příkazů shellu a
programů, jsou citlivá na velikost písmen (case-sensitive)!
Opět se to ale netýká Apple macOS.
Pro změnu aktuálního adresáře obsahuje shell příkaz
cd. Bez udání cesty jako argumentu "přepne" do
domovského adresáře uživatele, pro znak -
(pomlčka) jako cestu "přepne" do předchozího aktuálního adresáře (shell
si pamatuje celou posloupnost aktuálních adresářů). Pro
vytvoření nového (prázdného) podadresáře v aktuálním adresáři
použijeme program mkdir, kterému je nutné zadat
jméno nově vytvářeného adresáře, např. mkdir
pokusy.
Úkol 3:
Vytvořte adresář tmp, vejděte do něj a vyjděte z
něj do nadřazeného (rodičovského) adresáře.
Zmíněnou velikost adresáře ve smyslu součtu
velikostí všech souborů v něm (rekurzivně v celém adresářovém
podstromu) získáme programem du. Tento ale bez
přepínače vypisuje velikost (a cestu) pro všechny podadresáře aktuálního
adresáře, a to rekurzivně v celém podstromu adresáře (tj. pro všechny
podadresáře všech jeho poadresářů), což obvykle nechceme, takže
rovnou přidáme přepínač -s: du
-s. Pro velikost v násobcích bytů ("human readable")
opět podporuje přepínač -h: du -sh, pro jiný adresář než
aktuální stačí zadat cestu k němu jako argument (i více
cest).
Úkol 4:
Zobrazte velikost aktuálního adresáře (program du).
Doplňování jména v příkazovém řádku – Tab
Nesmírně užitečná je v příkazovém řádku funcionalita shellu (GNU Bash, ale i jiných) doplňování jména souboru nebo adresáře, ale také interního příkazu shellu i programu ke spuštění, a někdy (u GNU Bash) i argumentů, často přepínačů, všude tam, kde je toto jméno očekáváno, typicky jako součást cesty jako argumentu příkazu. Aktivuje se klávesou Tab (tabulátor). Volitelně zadáme začátek jména a stiskneme Tab. Pokud existuje pouze jediná možnost doplnění (jediný existující soubor, adresář, program apod. s takto začínajícím jménem), celý zbytek jména je doplněn! Pokud je možností doplnění víc, je případně doplněn nejdelší společný začátek jména a při dalším stisku Tab je zobrazen seznam všech doplnění jména (formou tabulky)! Dopíšeme další znak(y) a zkusíme Tab znovu pro doplnění celého zbytku jména. Pokud je seznam (tabulka) větší než co se vleze na obrazovku terminálu, může být jeho zobrazení pozastaveno po první obrazovce – další část (obrazovku) zobrazíme stiskem klávesy mezerník, nebo zobrazení ukončíme pomocí q. A pokud je seznam velký příliš, může se ještě před zobrazením jeho první části objevit dotaz na toto zobrazení, s možnými odpověďmi y pro ano a n pro ne. Pokud chceme do příkazového řádku zadat samotný znak tabulátoru, musíme použít kombinaci C-v TAB, tj. TAB po C-v.
– Úkol 5:
Při zadávání příkazů, jmen programů a souborů nebo adresářů stiskněte
(opakovaně) klávesu Tab!
Obsah souboru
V terminálu si můžeme zobrazit obsah jakéhokoliv souboru
(nejen obsah např. manuálové stránky), ale vzhledem k tomu, že
jde o textový terminál, je zde bezpečné zobrazovat pouze
textové soubory (tzv. plain text, více v osmém cvičení, soubory typicky s příponou
jména .txt, konfigurační, logovací
aj.). Případné speciální netextové znaky mohou terminál nepříjemně
ovlivnit (zobrazení znaků v terminálu, jeho chování
aj.). Nejjednodušší program pro zobrazení (výpis) obsahu
souboru v (do) terminálu je cat, kde cestu k souboru mu
zadáme jako argument, např. cat
public_html/welcome.html. Pokud je ale obsah souboru
větší než co se vleze na obrazovku terminálu, předchozí obsah
vyroluje a v terminálu zůstane jen konec obsahu velikosti
obrazovky. K němu se sice můžeme vrátit (skrolováním
terminálu), ale komfortnější je si obsah souboru na obrazovce
terminálu prohlížet interaktivně, stejně jako manuálové stránky,
programem less: less public_html/welcome.html. Jeho základní ovládání jsme si již
uvedli u popisu manuálových stránek a jejich prohlížeče
man, protože ten používá less. Pokud si (pouze
textovým) obsahem souboru nejsme jisti nebo jen chceme
napovědět, jakého typu obsah je ("co je soubor zač"), může se
hodit program file. Ten se snaží typ obsahu souboru
(zadaného mu jako argument)
identifikovat s využitím své "databáze" charakteristik a
typických částí obsahu (signatur).
– Úkol 6:
Pomocí (grafického) textového editoru (např. aplikace
Textový editor nebo Gedit) upravte obsah
souboru welcome.html v adresáři
public_html ve vašem domovském adresáři (na serveru
phoenix.inf.upol.cz je tento soubor interpretován
jako webová stránka dostupná
na adrese http://phoenix.inf.upol.cz/~login,
kde login je uživatelské jméno).
Úkol 7:
Zobrazte obsah souboru welcome.html z předchozího
úkolu (programy cat, less).
Kopírování, přesun a mazání souborů a adresářů
Pro kopírování a přesun (plus přejmenování, technicky je to
totéž co přesun) souborů a adresářů jsou v unixových systémech
standardní programy cp a mv. Akceptují minimálně
dvě cesty jako argumenty, všechny kromě poslední chápané jako
existující zdroje ("co") a
poslední jako případně neexistující cíl ("kam"). Pokud je
zdroj zadaný jeden, nemůže to (přirozeně) být cesta k adresáři a současně cíl cesta k
existujícímu souboru, a cíl nemusí existovat – tzn.
kopie nebo
přejmenování zdroje na cíl, jinak při existenci cíle kopie nebo přesun
zdroje do cíle. Pokud je
zdrojů zadaných víc než jeden, cíl pak musí být cesta k
existujícímu adresáři. V případě kopie zdroje jako cesty k adresáři je pak nutné,
pro kopii celého adresáře včetně jeho obsahu (i prázdného), doplnit přepínač
-r (recursive): cp -r adresář
cíl. Pro mazání je standardní program rm,
kterému se jako argumenty rovněž předávají cesty a pokud je to
cesta k adresáři, pak je opět pro výmaz celého adresáře včetně
jeho obsahu (i prázdného – pouze takový lze smazat i
programem rmdir) nutné přidat přepínač -r:
rm -r adresář.
Programy cp, mv a rm mají společné "klasické" přepínače -i, -f a -v. Přepínač -i (interactive) zapíná tzv. interaktivní režim, což znamená, že před každou operací, při které by mohlo dojít ke ztrátě dat (přepsáním nebo vymazáním souboru nebo adresáře) se program nejdříve dotáže na svolení operaci provést (s možnými odpověďmi y pro ano a n pro ne). To podporuje bezpečné provádění operací (v unixových systémech standardně neexistuje možnost obnovení přepsaných nebo smazaných souborů a adresářů!) a v linuxových distribucích bývá tento přepínač při vykonávání těchto programů často automaticky doplňovaný. Na druhou stranu například ve spojení s přepínačem -r takových dotazů nemusí být málo (navíc zde jsou ještě dotazy pro vstup do každého (pod)adresáře). Proto přepínač -f (force) naopak veškeré dotazy potlačuje, což ovšem může být nebezpečné. Přepínač -v (verbose) pak zapíná tzv. "ukecaný" režim, kdy je uživatel o každé jednotlivé operaci informován výpisem do terminálu.
Úkol 8:
Zkopírujte soubor welcome.html z předchozího
úkolu na soubor index.html, ten přejmenujte
na main.html a poté tento smažte (s volbami
postupně -i s odpovědí ne na výmaz a -f). Zkopírujte
adresář public_html na adresář web a poté tento smažte.
Přenos souborů na/z linuxového serveru – scp
Spolu s programem ssh pro vzdálené připojení k
linuxovému serveru v textovém terminálu bývá typicky distribuován i program
scp (secure copy) pro kopírování souborů a adresářů
na/ze vzdáleného unixového serveru. Jeho základní použití je
stejné jako u cp, včetně přepínače -r, jen
pro zadání cesty na vzdáleném serveru před ni přidáme
síťové jméno serveru, případně i s uživatelským jménem (login)
stejně jako u SSH klienta ssh,
oddělené od cesty : (dvojtečkou), tedy ve
tvaru login@server:cesta. Aktuálním adresářem (pro
relativní cestu) na serveru po připojení na něj je domovský
adresář uživatele na serveru a tento je také výchozí,
pokud není za : uvedena žádná cesta. Se samotným připojením na
server (přihlášením, zadáním hesla) je to stejné jako u
ssh, akorát pokud není u cesty na
vzdálený server
zadaná část login@, výchozí
je jméno (login) uživatele, který program spouští, a jméno se nezadává. Například tedy pro linuxový server
phoenix.inf.upol.cz příkaz scp
login@phoenix.inf.upol.cz:public_html/welcome.html .
zkopíruje (stáhne, download) soubor welcome.html
v podadresáři public_html domovského adresáře
uživatele jménem login ze serveru do aktuálního
adresáře na místním systému. Naopak pro kopii z místního
systému na server (nahrání, upload) bude cesta na serveru (se
jménem serveru) zadaná jako poslední argument.
Úkol 9:
Pomocí programu scp zkopírujte soubor
welcome.html z předchozího
úkolu 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 místním systému.
Vyhledávání souborů a adresářů
Různé možnosti vyhledávání souborů a adresárů poskytuje v
unixových systémech program find. Jako první argument
(až na některé přepínače) mu zadáváme cestu k adresáři, ve
kterém má vyhledávat (tj. v jeho obsahu, adresářovém
podstromu), jako další argumenty potom testy (kritéria), podle kterých
má vyhledávat. Jeho výchozím výstupem do terminálu jsou cesty
(relativní k zadanému adresáři) k
nalezeným souborům nebo adresářům vyhovujícím zadaným
testům. Pro možné testy viz manuálovou stránku
programu, man find, testy se zadávají ve tvaru přepínačů (název testu za
-) s hodnotou:
-test hodnota. Například pomocí find . -name
vzor můžeme v aktuálním adresáři vyhledat soubory nebo adresáře, jejichž
jméno odpovídá vzoru (o vzorech shellu pro jména si řekneme v
šestém cvičení), kde jednoduchý vzor
je obyčejný textový řetězec (bez speciálních znaků
*?[] pro vzor). Varianta -iname vzor
nerozlišuje u vzoru/jmen velikost písmen. Test
-size velikost je pro velikost souboru, číselná
hodnota velikost
může mít příponu k, M, G pro 1024-násobky bytů a c pro byty
(pozor, ne b, to je pro 512 bytů a je výchozí bez
přípony). Velikost souboru musí odpovídat přesně zadané
hodnotě, což obvykle nechceme,
proto před ni můžeme zadat i znaky - (mínus) pro
hodnotu/velikost i menší a + (plus) pro i větší. Podobně je to
například i s testem -mtime dní pro čas poslední
změny obsahu souboru (nebo adresáře), jehož hodnotou je počet
dní do minulosti od aktuálního času (tedy větší hodnota znamená
více do minulosti). Existují i testy -mmin minut pro
hodnotu v minutách nebo -atime/-amin pro čas
posledního přístupu k souboru. Nebo můžeme testovat (obyčejný)
soubor, testem -type f, nebo adresář, -type
d. Další testy jsou třeba pro
uživatelská práva souboru/adresáře nebo uživatele jako
jeho vlastníka, ale tyto záležitosti si představíme až v
příštím pátém
cvičení. Více zadaných testů musí být splněných
současně (konjunktivně), ale mezi testy je možné úvést i
přepínač -o
(nebo -or) pro disjunktivní splnění testů nebo
před testem uvést \! (-not) pro jeho
negaci.
Úkol 10:
Vyhledejte všechny soubory ve vašem domovském adresáři větší než
1 kB a současně nezměněné dříve než jeden den zpět.
Dodejme ještě, že kromě testů můžeme programu find zadat jako argumenty i akce, které má s nalezenými soubory nebo adresáři rovnou provést. Například formátovaný výpis mnoha různých informací o nich (nejen cesty k nim, -printf formát), smazání (-delete) nebo rovnou vykonání libovolného příkazu nad nimi (-exec příkaz \;), ale zde už odkážeme na manuálovou stránku programu.
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).