2. cvičení


Systém procesů, úvod do shellu (Bash)

Výpis a ukončení procesů


Výpis procesů

    
    // UNIX přepínače, -e
    // BSD přepínače, aux

    // Vypíše procesz které ovládají terminál
    roman@virtual ~ $ ps

    // Vypíše procesy vlastněné uživatelem
    roman@virtual ~ $ ps x

    // Vypíše všechny procesy
    roman@virtual ~ $ ps ax/ps -e


    // Všechny procesy v užitelsky přívětivém formátu
    roman@virtual ~ $ ps aux/ps -ef/ps -eF ()


    // Vypíše všechny procesy ve stromové struktuře
    roman@virtual ~ $ ps auxf/ps -efH


    // Vypíše jen určité sloupce
    roman@virtual ~ $ ps axo pid
    roman@virtual ~ $ ps -eo pid


    // Vypíše proces na základě jména
    roman@virtual ~ $ ps -C bash


    // Vypíše procesy pro uživatele
    roman@virtual ~ $ ps U roman/ps -u roman

    // Vypíše strom procesu
    roman@virtual ~ $ pstree

    // Vypíše strom společně s argumenty
    roman@virtual ~ $ pstree -a

    // Vypíše strom společně s PID
    roman@virtual ~ $ pstree -p
    

Ukončení procesu

    
    // Spustíme libovolný program
    roman@virtual ~ $ gedit

    // Získáme PID
    roman@virtual ~ $ ps x

    // Ukončí aplikaci
    roman@virtual ~ $ kill pid (TERM)

    // Znovu spustíme aplikaci gedit
    roman@virtual ~ $ gedit

    // Zastaví aplikaci
    roman@virtual ~ $ kill -STOP pid

    // Probudí aplikaci
    roman@virtual ~ $ kill -CONT pid

    // Ukončí proces okamžitě
    roman@virtual ~ $ kill -KILL pid

    // Seznam všech signálů
    roman@virtual ~ $ kill -l

    // Znovu spustíme aplikaci gedit
    roman@virtual ~ $ gedit

    // Ukončí všechny instance programu gedit
    roman@virtual ~ $ killall gedit

    // Ukončí terminál i se všemi potomky
    roman@virtual ~ $ kill -KILL pid_terminalu
    

Řízení úloh

    
    // Spuštění úlohy na pozadí
    roman@virtual ~ $ gnome-calculator &
    [1] 4468

    // Vypíše bežící procesy
    roman@virtual ~ $ jobs
    [1]+  Running                 gnome-calculator &

    // Vypíše běžící procesy společně s PID
    roman@virtual ~ $ jobs -l
    [1]+  4468 Running                 gnome-calculator &

    // Spustíme program gucharmap
    roman@virtual ~ $ gucharmap

    // Pomocí Ctrl + z jej zastavíme
    ^Z
    [2]+  Stopped                 gucharmap

    // Přenesení na pozadí
    roman@virtual ~ $ bg
    [2]+ gucharmap &

    // Přenesení posledního programu na popředí
    roman@virtual ~ $ fg
    gucharmap

    // Přeneseme gucharmap na pozadí
    // Přeneseme gnome-calculator na popředí
    roman@virtual ~ $ fg 1
    gnome-calculator

    // Pomocí Ctrl + c ukončíme gnome-calculator
    // Pomocí Ctrl + d ukončíme terminál a gucharmap stále běží
    

Expanze jmen souborů a adresářů

    
    roman@virtual ~ $ echo ~
    /home/roman

    roman@virtual ~ $ echo *
    Desktop Documents Downloads fontconfig Music passwords
    Pictures pokusy Public public_html Templates Videos

    roman@virtual ~ $ echo p*
    passwords pokusy public_html

    roman@virtual ~ $ ls p*
    passwords

    pokusy:
    soubor.txt  text.txt

    public_html:
    index.html

    roman@virtual ~ $ echo pokus?
    pokusy

    roman@virtual ~ $ echo p[a-o]*
    passwords pokusy

    roman@virtual ~ $ echo \*
    *

    roman@virtual ~ $ echo '*'
    *

    roman@virtual ~ $ echo "*"
    *

    roman@virtual ~ $ echo \'
    '

    roman@virtual ~ $ echo \\
    \

    roman@virtual ~ $ echo &
    [1] 8389

    roman@virtual ~ $ echo \&
    &

    roman@virtual ~ $ echo    a
    a

    roman@virtual ~ $ echo '   a'
       a
    

Přesměrování vstupu a výstupu

    
    // > - vystup, < - vstup

    roman@virtual ~ $ cd pokusy/

    // Získání obsahu souboru způsobem který už známe
    roman@virtual ~/pokusy $  cat text.txt
    Hello world!!

    // Obsah souboru za pomoci přesměrování vstupu
    roman@virtual ~/pokusy $ cat < text.txt
    Hello world!!

    // Přesměrování výstupu
    roman@virtual ~/pokusy $ echo Ahoj > text.txt
    roman@virtual ~/pokusy $ cat text.txt
    Ahoj

    // Přesměrování výstupu na konec souboru
    roman@virtual ~/pokusy $ echo Nazdar >> text.txt
    roman@virtual ~/pokusy $ cat text.txt
    Ahoj
    Nazdar

    // Presměrování vstupu i výstupu
    roman@virtual ~/pokusy $ cat < text.txt > kopie.txt
    roman@virtual ~/pokusy $ cat kopie.txt
    Ahoj
    Nazdar

    // Přesměrování vstupu i výstupu do stejného souboru
    roman@virtual ~/pokusy $ cat < text.txt > text.txt // text.txt bude prázdný

    // Uložení výstupu programu ps do souboru
    roman@virtual ~/pokusy $ ps aux > procesy.txt
    roman@virtual ~/pokusy $ cat procesy.txt
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.2 119824  5984 ?        Ss   14:16   0:00 /sbin/init splash
    root         2  0.0  0.0      0     0 ?        S    14:16   0:00 [kthreadd]
    root         4  0.0  0.0      0     0 ?        S<   14:16   0:00 [kworker/0:0H]
    root         6  0.0  0.0      0     0 ?        S    14:16   0:00 [ksoftirqd/0]
    root         7  0.0  0.0      0     0 ?        S    14:16   0:00 [rcu_sched]

    // Roura
    roman@virtual ~/pokusy $ ps aux | less

    

Úkoly

  1. Vytvořte soubor datum.txt obsahujicí řádek “datum”.

  2. Vytvořte soubor datum2.txt obsahuji dva řádky. Na prvním je text “Datum:” a na druhém bude aktuální datum.

  3. Vytvořte soubor s názvem me.txt který bude vypadat nasledovně:

        Domovsky adresar:
        /home/parallels
    
        Obsah domovskeho adresare:
        total 60
        drwxr-xr-x 2 parallels parallels 4096 Jan 24 13:39 Desktop
        drwxr-xr-x 2 parallels parallels 4096 Jan 11  2017 Documents
        drwxr-xr-x 2 parallels parallels 4096 Jan 11  2017 Downloads
        -rw-r--r-- 1 parallels parallels 8980 Jan 11  2017 examples.desktop
        -rw-rw-r-- 1 parallels parallels    0 Feb 26 10:42 gucharmap
        drwxr-xr-x 2 parallels parallels 4096 Jan 11  2017 Music
        drwxr-xr-x 2 parallels parallels 4096 Jan 11  2017 Pictures
        drwxrwxr-x 2 parallels parallels 4096 Feb 26 11:05 pokus
        drwxrwxr-x 2 parallels parallels 4096 Feb 26 10:47 pokus2
        drwxr-xr-x 2 parallels parallels 4096 Jan 11  2017 Public
        -rw-r--r-- 1 parallels parallels 5357 Feb 26 10:14 q
        drwxr-xr-x 2 parallels parallels 4096 Jan 11  2017 Templates
        drwxr-xr-x 2 parallels parallels 4096 Jan 11  2017 Videos
    
        Aktualne bezici procesy
        USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
        paralle+  2733  0.0  0.4  22368  4876 pts/17   Ss   11:17   0:00 bash
        
  4. Spusťte si v terminálu libovolný proces (například gedit) přesunte jej na pozadí. Pak spusťte další program gucharmap a také jej přeneste do pozadí. Následně do souboru jobs.txt vypiště bežící úlohy a ukončete program gedit. Dále přeneste gucharmap do popředí a ukončete terminál ve kterém tento program běží.