C2110 Operační systém UNIX a základy programování -1- C2110 Operační systém UNIX a základy programování 5. lekce Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta Masarykova univerzita, Kotlářská 2, CZ-61137 Brno C2110 Operační systém UNIX a základy programování -2- Obsah  Textové editory vi, grafické textové editory, kwrite, gedit, kate  Procesy II příkazy, spouštění úloh, ukončovaní úloh C2110 Operační systém UNIX a základy programování -3Zápočtový test I C2110 Operační systém UNIX a základy programování -4Zápočtový test I C2110 Operační systém UNIX a základy programování -5Textové editory C2110 Operační systém UNIX a základy programování -6- vi/vim Standardní textový editor v operačních systémech UNIXového typu. Pracuje pouze v textovém módu a jeho používání je netriviální. Je vhodné se naučit, jak otevřít soubor, přejít do editačního módu, upravovat text, uložit provedené změny a editor ukončit. Dokumentace: ● manuálové stránky (man vi) ● přiložený přehled příkazů C2110 Operační systém UNIX a základy programování -7vi – základy Pracovní módy editoru rozšířený příkazový mód příkazový mód vkládací mód EscEnter a, c, i, o, s, A, C, I, O, R, S: Změny souboru i text bude vkládán od pozice kurzoru a text bude vkládán za pozici kurzoru Spuštění editoru Ukončení editoru $ vi start editoru $ vi filename start editoru a otevření souboru filename :q ukončení editoru :q! ukončení editoru bez uložení změn :w uložení souboru :w filename uložení souboru po jménem filename :wq ukončení s uložením souboru C2110 Operační systém UNIX a základy programování -8- kwrite Rozšířená funkcionalita: kate C2110 Operační systém UNIX a základy programování -9- gedit C2110 Operační systém UNIX a základy programování -10- Cvičení 1. V editoru vi napište text, který bude obsahovat deset řádků. Na každém řádku budou dvě a více slov. Text uložte do souboru mojedata.txt 2. Příkazem wc ověřte, že soubor mojedata.txt má skutečně deset řádků. 3. Za použití rour(y) napište sekvenci příkazů, které na obrazovku vypíší pouze počet slov v souboru mojedata.txt 4. V grafickém textovém editoru (dle vašeho výběru) vytvořte soubor, který bude obsahovat deset slov, každé slovo na novém řádku. Text uložte do souboru druha_data.txt 5. Pomocí příkazu paste vytvořte soubor vsechna_data.txt , který bude obsahovat obsah souborů mojedata.txt a druha_data.txt vedle sebe. 6. Příkazem wc ověřte, že soubor vsechna_data.txt obsahuje právě deset řádků. 7. Soubor vsechna_data.txt otevřete v grafickém textovém editoru a jeho obsah ověřte vizuálně. C2110 Operační systém UNIX a základy programování -11Procesy II C2110 Operační systém UNIX a základy programování -12- Příkazy top průběžně zobrazuje procesy setříděné podle zátěže procesoru (ukončení klávesou q) ps vypíše procesy běžící v daném terminálu nebo podle zadaných specifikací (ps -u user_name) pstree vypíše procesy (stromový výpis) kill zašle signál procesu, lze použít k ukončení problematických programů nohup spustí proces bez interakce s terminálem sleep spustí proces , který čeká po zadanou dobu wait čeká na dokončení procesů na pozadí time vypíše délku běhu procesu ssh spustí příkaz na vzdáleném počítači jobs vypíše procesy na pozadí fg převede proces do popředí bg převede proces do pozadí disown odpojí proces od terminálu C2110 Operační systém UNIX a základy programování -13Spouštění příkazů a aplikací Příkazy a systémové aplikace Uživatelské programy a skripty $ ls -l $ cp soubor.txt soubor1.txt $ ./muj_script $ ~/bin/my_application Spouštění aplikací na pozadí Zrušení výpisu do terminálu $ kwrite &> /dev/null zadáváme pouze jméno příkazu nebo aplikace jméno programu nebo skriptu udáváme včetně cesty (absolutní nebo relativní) příkaz argumenty příkazu (mění chování příkazu nebo tvoří vstupní informace pro zpracování) přesměrování výstupu uvádíme na konec příkazu (za argumenty) $ gimp & na konec (za argumenty a přesměrování) příkazu uvedeme ampersand C2110 Operační systém UNIX a základy programování -14Spouštění příkazů a aplikací, II Terminál (užitečné klávesové zkratky): Ctrl+C běžícímu procesu zašle signál SIGINT (Interrupt), proces je ve většině případů násilně ukončen Ctrl+D zavře vstupní proud spuštěného procesu Ctrl+Z pozastaví běh procesu, další osud procesu lze kontrolovat pomoci příkazů bg, fg, disown Kde se nachází systémový příkaz: type vypíše cestu k systémovému příkazu nebo programu Příklady: $ type ls ls is /bin/ls $ type pwd pwd is a shell builtin příkaz pwd je implementován jako vnitřní příkaz shellu C2110 Operační systém UNIX a základy programování -15- Příklady $ ps -u kulhanek PID TTY TIME CMD ... 5440 pts/8 00:00:00 bash 5562 pts/8 00:00:00 kwrite 5566 pts/8 00:00:00 ps $ kill 5562 # ukončí aplikaci kwrite $ kwrite # spustí aplikace kwrite na popředí ^Z # pozastaví aplikaci [1]+ Stopped kwrite $ jobs # vypíše aplikace na pozadí nebo # pozastavené aplikace [1]+ Stopped kwrite $ bg 1 # pozastavenou aplikaci 1 spustí na pozadí [1]+ kwrite & $ jobs [1]+ Running kwrite &