Druhé cvičenie - 28. februára 2017

Po kliknutí na zadanie cvičenia sa vám zobrazí riešenie

Prostredie terminálu

Esenciálne skratky

CTRL+C ukončenie programu
CTRL+D ukončenie štandardného vstupu
CTRL+Z zapauzovanie programu (presunutie do pozadia)

Nie až tak esenciálne skratky

CTRL+L vyčistenie obrazovky, to isté ako príkaz clear
CTRL+A prejde na začiatok riadku
CTRL+E prejde na koniec (end) riadku
CTRL+K zmaže všetko od kurzora až na koniec

História

Aby sme nemuseli stále zadávať dokola to isté, môžeme vyvolať posledný príkaz šípkou hore.
CTRL+R reverzné vyhľadávanie v histórii

Absolútna a relatívna cesta

~ domovský adresár
. aktuálny adresár
.. rodičovský adresár
/ koreňový adresár

Presmerovanie

prikaz > X presmerovanie výstupu prikaz-u do súboru X, spôsobí prepísanie súboru
prikaz >> X pripojenie výstupu prikaz-u na koniec súboru X

Opakovanie

  1. Vytvorte si adresár s názvom Lev Tolstoj
    mkdir "Lev Tolstoj"
    alebo
    mkdir 'Lev Tolstoj'
    alebo
    mkdir Lev\ Tolstoj
  2. V ňom vytvorte súbor anna_karenina.txt, ktorý bude obsahovať text Miluj tých, ktorí ťa nenávidia
    echo Miluj tých, ktorí ťa nenávidia > anna_karenina.txt
  3. Zistite kde sa nachádzate, ak nie ste v domovskom adresári tak sa do neho presuňte a vypíšte (podrobný) obsah adresára Lev Tolstoj
    pwd
    cd alebo aj cd ~
  4. Skopírujte si súbor /etc/passwd do svojho domovského adresára, potom ho presuňte do adresára Lev Tolstoj pod krycím názvom bratia_karamazovci.txt
    cp /etc/passwd
    mv passwd Lev\ Tolstoj/bratia_karamazovci.txt
  5. Zálohujte si ruskú literatúru do adresára /tmp (to znamená tie dva súbory, nie že stiahnete ruský národný korpus).
    cp Lev\ Tolstoj/*.txt /tmp/
    lomítko na konci je zbytočné
    cp Lev\ Tolstoj/*.txt /tmp
  6. Ako by ste zmazali adresár Lev Tolstoj a súbor anna_karenina.txt
    • pomocou 2 príkazov (ako to spraviť len jedným odentrovaním?)
    • pomocou 1 príkazu
    rm Lev\ Tolstoj/*
    rmdir Lev\ Tolstoj
    prípadne to môžete spojiť na jeden raidok pomocou ;
    rm Lev\ Tolstoj/*; rmdir Lev\ Tolstoj
    jedným príkazom to spravíme ako rm -rf Lev\ Tolstoj

Nové šmaky

Expanzia v Shelli

* čokoľvek, teda aj nič
[zoznam] zoznam znakov, ktoré chceme
[!všetko len nie toto]
? nejaký znak

Cvičeníčka

  1. Vytvorte si adresár zbytocnosti a skopírujte do neho všetky súbory z /usr/include, ktoré začínajú písmenom t
    mkdir zbytocnosti
    cp /usr/include/t* zbytocnosti/
  2. Zmažte všetky súbory v adresári zbytocnosti, ktoré obsahujú znak _
    rm zbytocnosti/*_*
  3. Vypíšte prvých 10 riadkov zo súboru /etc/passwd
    head /etc/passwd
  4. Vypíšte posledných 10 riadkov zo súboru /etc/passwd
    tail /etc/passwd
  5. Preskúmajte manuálovú stránku príkazu wc
    man wc

Cvičenia

  1. Uložte do súboru datum text datum.
    echo datum > datum
    exituje viac možných riešení
  2. Uložte do souboru datum na prvý riadok slovo Datum: a na druhý dnešný dátum. Zkúste si formátovanie.
    echo Datum > datum
    date +"%d. %m. %Y" >> datum
  3. Spočítejte počet riadkov v súboru /etc/passwd
    wc -l /etc/passwd
  4. Vypíšte prvých 15 riadkov zo súboru /etc/passwd
    head -n 15 /etc/passwd
  5. Vypíšte prvých 15 riadkov zo súboru /etc/passwd a uložte ich do súboru vo svojom domovskom adresári
    head -n 15 /etc/passwd > first15rows.txt
  6. Vypíšte riadky 3-7 (to znamená riadky 3, 4, 5, 6, 7) súboru /etc/passwd. Použite pomocný súbor, ktorý po dokončení cvičenia zmažte.
    head -n 7 /etc/passwd > tmp 1
    tail -n 5 /etc/passwd
    alebo
    head -n 7 /etc/passwd | tail -n 5
    s pomoccou pipe
    head -n 7 /etc/passwd | tail -n 5
  7. Vypíšte posledný riadok súboru /etc/passwd
    tail -n 1 /etc/passwd
  8. Vypíšte všetky riadky okrem /etc/passwd okrem posledného
    head -n -1 /etc/passwd
  9. Skontrolujte, či máte ešte stále v /tmp uložené skvosty ruskej literatúry.
    Ak nie, tak ich tam vytvorte, prípadne do nich pripísťe nejaké tajomstvo, ktoré by ste chceli povedať susedovi (a potom si samozrejme hneď zmažte obrazovku)
    ls /tmp
    echo Máš pekný sveter >> /tmp/anna_karenina.txt
    clear alebo CTRL+L
  10. Zistite na akom počítači sa nachádzate.
    hostname
  11. Zistite aké je vaše uživateľské meno.
    whoami
  12. Nastavte uživateľské práva pre vaše súbory s ruskou literatúrou an čítanie pre všetkých.
    Buď vymenujeme súbory po jednom, alebo použijeme
    chmod a+x /tmp/*.txt
    , čo nám vypíše nejaké chybové hlásenia, ak v /tmp bude mať niekto iný nejaké súbory, ktorým nemáme právo meniť práva.
    Výpis chýb potlačíme pomocou -f
    chmod -f a+x /tmp/*.txt
  13. Pripojte sa na susedov počítač, zistite kto všetko je prihlásený na susedovom počítači a počkajte kým sused dokončí predchádajúce cvičenie.
    ssh [nazov_susedovho_pocitaca]
  14. Skopírujte si susedove súbory s ruskou literatúrou do svojho domovského adresára.
    cp /tmp/*.txt ~

Cvičenia pre pokročilých

Nápoveda, preskúmajte príkazy last, uniq, sort, wget.
  1. Vypíšte posledných (podľa času) 10 uživateľov prihlásených na vašom počítači.
  2. Pre dané dva súbory získajte množinový prienik a zjednotenie riadkov. Ak viete vytvárať shell skripty, spravte to ako skript s dvoma parametrami.
  3. Stiahnite si nejaký veľký súbor, ktorý obsahuje text. Vytvorte štatistiku slov (resp. tokenov, nemusíte z textu nič mazať).
    Jednoduchšia verzia, stianite si súbor, ktorý obsahuje práve jeden token (slovo) na riadok.

Domáca úloha

Napíšte mi na vgloncak (at) gmail (dot) com hodnotenie cvičenia (čo sa vám páčilo, nepáčilo, čo by trebalo vysvetliť podrobnejšie alebo naopak menej, atď.).