1. cvičení


Příkazový řádek, nápověda, systém souborů

Příkazový řádek


Zadání příkazu


    roman@virtual ~ $ date
    Sun Feb 10 21:33:45 CET 2019

    roman@virtual ~ $ echo "Hello World!"
    Hello World!


Přihlášení přes ssh a změna hesla


    roman@virtual ~ $ ssh vyjiro00@apollo.inf.upol.cz

    roman@virtual ~ $ passwd


Pohyb v terminálu

Kopírování a vkládání

Manuálové stránky



    // Zobrazí manuálovou stráku pro příkaz echo. Zavření manuálové stránky je pomocí klávesy q
    roman@virtual ~ $ man echo


Soubory a adresáře


Adresáře


    // Vytiskne na obrazovku aktuální adresář
    roman@virtual ~ $ pwd
    /home/roman

    // Zobrazení obsahu adresáře
    roman@virtual ~ $ ls
    Desktop  Documents  Downloads  fontconfig  Music  Pictures  Public  Templates  Videos

    // Obsah adrešáře s podrobnějšími informacemi (velikost, datum, jméno)
    roman@virtual ~ $ ls -l
    total 36
    drwxr-xr-x 2 roman roman 4096 Jan 29 19:08 Desktop
    drwxr-xr-x 2 roman roman 4096 Jan 29 18:46 Documents
    drwxr-xr-x 2 roman roman 4096 Jan 29 18:50 Downloads
    drwxrwxr-x 2 roman roman 4096 Feb 10 21:32 fontconfig
    drwxr-xr-x 2 roman roman 4096 Jan 29 18:46 Music
    drwxr-xr-x 2 roman roman 4096 Jan 29 18:46 Pictures
    drwxr-xr-x 2 roman roman 4096 Jan 29 18:46 Public
    drwxr-xr-x 2 roman roman 4096 Jan 29 18:46 Templates
    drwxr-xr-x 2 roman roman 4096 Jan 29 18:46 Videos

    // Zobrazení všech souborů a adresářů
    roman@virtual ~ $ ls -a
    .              .cache     Downloads    .kde        Pictures                   Templates
    ..             .config    fontconfig   .local      .profile                   Videos
    .bash_history  .dbus      .fontconfig  .mozilla    Public                     .Xauthority
    .bash_logout   Desktop    .gconf       Music       .ssh                       .xsession-errors
    .bashrc        Documents  .gtkrc-2.0   .parallels  .sudo_as_admin_successful

    // Kombinace přepinačů -l -a
    roman@virtual ~ $ ls -la
    total 200
    drwxr-xr-x 21 roman roman  4096 Feb 11 10:35 .
    drwxr-xr-x  3 root  root   4096 Jan 29 18:43 ..
    -rw-------  1 roman roman    89 Jan 29 19:16 .bash_history
    -rw-r--r--  1 roman roman   220 Jan 29 18:43 .bash_logout
    -rw-r--r--  1 roman roman  4000 Jan 29 18:43 .bashrc
    drwxrwxr-x 11 roman roman  4096 Feb 11 10:40 .cache
    drwxr-xr-x 14 roman roman  4096 Feb 10 21:37 .config
    drwx------  3 roman roman  4096 Jan 29 18:46 .dbus
    drwxr-xr-x  2 roman roman  4096 Jan 29 19:08 Desktop
    drwxr-xr-x  2 roman roman  4096 Jan 29 18:46 Documents
    drwxr-xr-x  2 roman roman  4096 Jan 29 18:50 Downloads
    drwxrwxr-x  2 roman roman  4096 Feb 10 21:32 fontconfig
    drwxrwxr-x  2 roman roman  4096 Jan 29 18:47 .fontconfig

    // Změna adresáře
    roman@virtual ~ $ cd public_html/

    roman@virtual ~/public_html $

    // Speciální adresáře

    // . Aktuální adresář
    roman@virtual ~/public_html $ ls .
    index.html

    // .. Nadřazený adresář
    roman@virtual ~/public_html $ ls ..
    Desktop  Documents  Downloads  fontconfig  Music  Pictures  Public  public_html  Templates  Videos

    // Vytvoření složky
    roman@virtual ~ $ mkdir pokusy

    roman@virtual ~ $ cd pokusy


Obsah souborů


    // Vytvoření souboru
    roman@virtual ~/pokusy $ touch text.txt

    roman@virtual ~/pokusy $ ls -l
    total 0
    -rw-rw-r-- 1 roman roman 0 Feb 11 11:53 text.txt // nulová velikost

    // Typ souboru
    roman@virtual ~/pokusy $ file text.txt
    text.txt: empty

    // Otevření souboru v programu gedit a vložení textu "Hello World"
    roman@virtual ~/pokusy $ gedit text.txt

    roman@virtual ~/pokusy $ ls -l
    total 4
    -rw-rw-r-- 1 roman roman 14 Feb 11 11:57 text.txt

    roman@virtual ~/pokusy $ file text.txt
    text.txt: ASCII text

    // Výpis obsahu souboru do konzole
    roman@virtual ~/pokusy $ cat text.txt
    Hello world!!

    less text.txt


Manipulace se soubory


    // Kopírování
    roman@virtual ~/pokusy $ cp text.txt kopie.txt

    // Přesun (přejmenování)
    roman@virtual ~/pokusy $ mv kopie.txt copy.txt

    // Smazání souboru
    roman@virtual ~/pokusy $ rm copy.txt

    roman@virtual ~/pokusy $ rm copy.txt
    rm: cannot remove 'copy.txt': No such file or directory

    // Potlačení chybových hlášek
    roman@virtual ~/pokusy $ rm -f copy.txt

    // Kopírování adresáře
    roman@virtual ~ $ cp pokusy pokusy2
    cp: omitting directory 'pokusy'

    roman@virtual ~ $ cp -r pokusy pokusy2

    roman@virtual ~ $ rm pokusy2
    rm: cannot remove 'pokusy2': Is a directory

    roman@virtual ~ $ rm -r pokusy2

    roman@virtual ~ $ rm -rf pokusy2


Symbolický odkaz


    roman@virtual ~/pokusy $ cp text.txt kopie.txt

    // Vytvoří symbolický odkaz mezi soubory
    roman@virtual ~/pokusy $ ln -s kopie.txt odkaz.txt
    roman@virtual ~/pokusy $ ls -l // Odkaz

    roman@virtual ~/pokusy $ rm kopie.txt
    roman@virtual ~/pokusy $ ls -l  // Rozbitý odkaz

    roman@virtual ~/pokusy $ cp text.txt kopie.txt
    roman@virtual ~/pokusy $ ls -l

    roman@virtual ~/pokusy $ rm odkaz.txt
    roman@virtual ~/pokusy $ ls -l


Přístupová práva



    // Zjístění práv
    roman@virtual ~/pokusy $ ls -l
    total 4
    -rw-rw-r-- 1 roman roman 14 Feb 11 11:57 text.txt // (práva, vlastník, skupina)

    // Odebrání práva zápisu
    roman@virtual ~/pokusy $ chmod u-w text.txt
    roman@virtual ~/pokusy $ gedit text.txt // Nelze uložit

    // Odebrání práva na čtení
    roman@virtual ~/pokusy $ chmod u-r text.txt

    roman@virtual ~/pokusy $ cat text.txt
    cat: text.txt: Permission denied

    // Vrácení práv zpět
    roman@virtual ~/pokusy $ chmod u+rw text.txt

    // Odebrání práva spouštění adresáři
    roman@virtual ~ $ chmod u-x pokusy

    roman@virtual ~ $ ls pokusy/
    ls: cannot access 'pokusy/text.txt': Permission denied
    text.txt

    roman@virtual ~ $ cd pokusy/
    bash: cd: pokusy/: Permission denied

    roman@virtual ~ $ touch pokusy/soubor.txt
    touch: cannot touch 'pokusy/soubor.txt': Permission denied

    roman@virtual ~ $ chmod u-r pokusy

    roman@virtual ~ $  ls pokusy
    ls: cannot open directory 'pokusy': Permission denied

    roman@virtual ~ $ chmod u+x pokusy

    roman@virtual ~ $ cd pokusy
    roman@virtual ~/pokusy $ ls
    ls: cannot open directory '.': Permission denied

    roman@virtual ~/pokusy $ cat text.txt
    Hello world!!

    roman@virtual ~/pokusy $ cd ..

    // Přiřazení práv pro čtení a spuštění
    roman@virtual ~ $ chmod u=rx pokusy/
    roman@virtual ~ $ touch pokusy/soubor.txt
    touch: cannot touch 'pokusy/soubor.txt': Permission denied

    // Přidání práva zápisu
    roman@virtual ~ $ chmod u+w pokusy/
    roman@virtual ~ $ touch pokusy/soubor.txt

    // hodnota	právo
    // 0	---
    // 1	--x
    // 2	-w-
    // 3	-wx
    // 4	r--
    // 5	r-x
    // 6	rw-
    // 7	rwx

    roman@virtual ~ $ chmod 721 soubor.txt
    roman@virtual ~ $ chmod 711 public_html


Úkoly

  1. Pomocí ssh se připojte na server phoenix.inf.upol.cz. Ve složce public_html upravte obsah souboru welcome.html. Vypište na obrazovku obsah souboru welcome.html.

  2. Ve své domovské složce vytvořte složku unix a v ní 5 souborů. Nasledně vytvořte kopii teto složky a původní smažte.

  3. Vypiště podrobný seznam souborů v domovském adresáři. Zkuste si vybraného souboru změnit práva.