Institute of Computer Science
  1. Courses
  2. 2025/26 fall
  3. Operating Systems (LTAT.06.001)
ET
Log in

Operating Systems 2025/26 fall

  • Pealeht
  • Loengud
  • Praktikumid
  • Viited

Teine praktikum – Käsurida, failisüsteemi mõiste ja haldamine

Tänases praktikumis

  1. Seadistame proovimiseks Ubuntu 25.04 VirtualBoxi virtuaalmasina
  2. Õpime tundma Unixi käsurida
  3. Uurime Linuxi süsteemi katalooge
  4. Sooritame praktilise kontrollitesti Linuxi käsurea oskuste teemal

Käesolevas praktikumis on palju Linuxi kasutamise õpetusi ja harjutusi praktikumi juhendi esimeses osas (millede esitamist ei nõuta aruandes) ja lõpus kontrollitavad harjutused (tõestuse esitamine vajalik). Õppejõudude soovitus on, et ärge jätke vahele juhendi esimesi osasid, sest vastavaid teadmisi ja oskusi läheb teil vaja aine hilisemates praktikumides ja ainult käsurea kontrolltesti lahendades teete ise-enda elu raskemaks tulevikus.

1. Ettevalmistus

Linuxi katsetamiseks ja harjutamiseks on meil vaja kõigepealt seadistada Ubuntu 25.04 64-bit virtuaalmasin ja käivitada Live mode / Try mode / Prooviversioon.

  1. Kõigepealt loome Ubuntu jaoks uue VirtualBoxi virtuaalmasina järgmiste parameetritega:
    • Name and Operating System – Virtuaalmasina nimi OS-Perenimi-U25, kus Perenimi asendage enda nimega.
    • Name and Operating System – Type: Linux
    • Name and Operating System – Version: Ubuntu 25.04 (64-bit)
    • Hardware – Base memory: 3 GB
    • Hardware – Processors: 3
    • Hard Disk – HDD: 24 GB
    • VirtualBox ei oma eeldefineeritud profiili Ubuntu 25 jaoks, seega valige Linuxi versiooniks Ubuntu 24.04 (Noble Numbat) (64bit) VirtualBoxi seadetest.
  2. Käivitage virtuaalmasin.
  3. Kui pärast käivitust virtuaalmasin küsib ühendage CD/DVD-seadmesse fail Ubuntu Desktop 25.04 64-bit ISO, mille saate praktikumis kohapeal õppejõult (USB pulgalt) või Ubuntu kodulehelt (pöörake tähelepanu versioonile, samalt lehelt saab erinevaid versioone!). Mount and Retry Boot.
  4. Käivituse ajal valige Try or Install Ubuntu.
  5. Welcome to Ubuntu Choose your language -> English.
  6. Keyboard layout Select your keyboard layout -> English (US).
  7. Internet connection Use wired connection.
  8. Try or install Ubuntu What do you want to do with Ubuntu -> Try Ubuntu.
  9. Ubuntu paigaldusega jätkame praktikumis 3. Seekord piisab Ubuntu ajutisest proovikeskkonnast, kus teie tegevused kustuvad igal masina sulgemisel (taaskäivitamisel laetakse uuesti värske keskkond virtuaalselt CD/DVD-lt).

2. Unixi kasutamine ja käsurida

Logisite automaatselt sisse tavakasutajana nimega ubuntu (kasutajale ei ole seadistatud parooli). Tavakasutajana hakkategi enamikus praktikumides tegutsema. Linuxi Administraatori kontoga root reeglina graafilisest keskkonnast sisse ei logita, juurkasutaja (root) õigusi kasutatakse mõnes üksikus vajaminevas aknas või logitakse sisse võrgust või tekstikonsoolilt. Proovime tekstikonsoolilt sisse logimist. Linuxis on kasutusel mitu erinevat virtuaalkonsooli ning nende vahel saab liikuda Ctrl-Alt-F*-klahvidega. Graafiline keskkond on Ubuntu prooviversioonis 2. (või 1.) virtuaalkonsoolil, seega siia tagasi saate, vajutades Ctrl-Alt-F2 või Ctrl-Alt-F1 (kogu teie töökeskkond on alles). Lisaks sellele on tekstikonsoolid. Vajutage Ctrl-Alt-F5 ja ja peaksite nägema hüplikku ekraani -> Tagasi saate Ctrl-Alt-F2 abil tagasi oma graafilisse keskkonda. NB! Ubuntu 25.04 Try Ubuntu versioonis kahjuks need nupud päris korralikult ei tööta. Osades sülearvutites võib F1-F12 klahvide saamiseks olla vaja täiendavalt all hoida ka fn (FuNction) klahvi (seda võimalik BIOS-st ümber lülitada üldjuhul).

Failipuu uurimiseks käivitage failibrauser oma kodukataloogist (paneelil ikoon "Files"). Uurige failipuud juurkataloogist oma kodukataloogini. Kodukataloogiks on /home/ubuntu. Kasutajal pole reeglina õigust väljapoole oma kodukataloogi midagi kirjutada, välja arvatud mõnedesse ajutistesse kataloogidesse. Kõik kasutaja isiklikud failid ja programmide seaded on seega kodukataloogi all. +Other Locations ja Computer alt leiate kogu failisüsteemi.

Meil läheb töös enamasti vaja tekstiterminale. Graafilises keskkonnas saate avada mitmeid terminale. Ekraani alumises vasakus nurgas on 9 punktiga menüünupp, kuhu kirjutage terminal ja avage programm (või vajutage Ctrl + Alt + t). Lisaks saate samas terminalis avada mitu kaarti erinevate seanssidega (sakk / tab). Uue saki avamiseks saate kasutada klahvikombinatsiooni Ctrl + Shift + t. Looge prooviks mõned uued seansid ja liikuge nende vahel nii klaviatuuri kui hiire abil. Klaviatuurilt saab seda teha kahte moodi, esiteks Ctrl + Page Up või Page Down ja teiseks Alt + saki number. Seega võite edaspidi alati vajadusel uue terminali avada, kui tahate olemasoleva terminaliakna lahti jätta.

Andke terminalis käsk sudo dmesg. Meile on oluline, et see käsk tagastab lihtsalt palju ridu infot, aga käsk ise ja väljastatav info pole meile hetkel olulised. Esimeseks lihtsaks viisiks tagasi kerida on loomulikult kerimisribalt hiirega. Teiseks võimaluseks on kerida klaviatuuri abil – Shift+PgUp/Shift+PgDown (proovige). See Shift-Pg* töötab ka paljudes muudes kohtades, isegi tekstikonsoolil kuni sealt muule konsoolile vahetumiseni.

Alati ei ole meil head või piisava kerimisriba puhvriga terminaliprogrammi käepärast, sestap õpime kerima ka ainult tekstiterminali vahendeid kasutades.

* Praktikumijuhendites on sisestatavad käsud näidatud kastikeste sees või tekstis esile tõstetuna. Iga käsurida sellises kastikeses algab kas $- või #-märgiga. Need märgid näitavad kas kasutaja on tavakasutaja õigustes ($) või root-kasutaja õigustes (#). Jälgige seda hoolega, sest teisiti kasutades võivad tulemused olla soovitavad. Üldiselt vältige root-kasutaja õigustes ehk (#) käsureaga sees olemist. Kasutage root-kasutaja õigusi vajavate tegevuste jaoks käsku (sudo), nt sisestage käsk:

$ sudo dmesg | less

Vihje: Teil on vaikimisi inglise asetusega klaviatuur, mille asetuse meelde tuletuseks ja erisümbolite sisestamiseks võite vajada veidi abi. Selleks soovitame virtuaalmasinas valida Input -> Keyboard -> Soft Keyboard.

Et vaadata käsu dmesg väljundit lehekülje kaupa (pange tähele, et terminali scrollbacki sellest ei teki). less on Unixi programmi more täiendatud ja mugavdatud variant. Less'i kasutamine:

    nooled, PgUp/PgDn – kerimine
    / – regulaaravaldise otsimine edaspidi (proovige /APIC)
    n – järgmise otsimine
    N – eelmise otsimine
    ? – regulaaravaldise otsimine tagasisuunas
    G – faili lõppu minek
    f – sisendi (logifaili) jälgimine, et ehk tuleb veel andmeid.
        katkestab ^C
    q – quit

3. Linuxi käsud

Linuxi käsud on enamasti ühtse struktuuriga:

  • $ – tavaõigustes käsurida, # – root- ehk administraatori õigusi vajav käsk
  • command – käsk (nt ls, cp, mv, cd). Ajalooliselt olid ekraanid väikesed ja mahutasid vähe tähti, seega on enamik vanemaid käske võimalikult lühikesed. Loomulikult tahetakse kiiresti ja vähem trükkida.
  • options – võtmed või parameetrid, millega saate muuta käsu toimimist. Iga käsu man-lehel on kirjeldus, mida mingi võti teeb (nt -l, -a, -h, -R jne)
  • argument – käsu sisend ja väljund ehk millega tegevusi teha. Enamasti on vasakul pool (esimene) sisend ja paremal pool (viimane) väljund. cp -r /home/demouserhomefolder /mnt/backup/

Uurime kodukataloogi ka käsurealt. Andke käsk

$ pwd
$ ls

ja peaksite nägema oma kodukataloogi sisu. Andke käsk

$ touch minutekst.txt

ja tekib fail nimega minutekst.txt. Vaadake nüüd failide nimekirja uuesti käsuga

$ ls -l

ja näete failide kohta pikemat infot (pikkus, omanik, muutmisaeg). Teie vastloodud fail on 0-pikkusega. Vaadake listingut veelkord käsuga

$ ls -la

ja näete oluliselt rohkem faile või katalooge. Punktiga algavad failid ja kataloogid on vaikimisi peidetud – ls ja teised graafilised failivaaturid ei näita neid vaikimisi. Nendes punktiga failides salvestavad igasugused programmid oma kasutajapõhiseid seadeid.

Juba sisestatud käske ei pea kasutades uuesti sisse toksima – kasutada saab käskude ajalugu. Üles-alla nooltega saate liikuda eelmiste sisestatud käskude vahel, neid muuta ja uuesti sisestada (proovige!). Käsu redigeerimisel ei pea sisestamiseks minema kursoriga rea lõppu, Enterit võib vajutada suvalisel positsioonil olles ja ikkagi sisestatakse terve rida. Sisestatud käskudest peetakse ja salvestatakse teie kodukausta ajalugu, mida näete käsuga history. Märkus: Käske ajalukku salvestatakse peamiselt kui käsurida on sulgetud viisakalt exit käsuga. Kui käsurida panna nurgast "x" abil kinni või operatsioonisüsteem sulgeda muud moodi ootamatult käskude ajalugu ei salvestatata. Käskude ajalugu history on kasutaja põhine ning hoitakse kasutaja kodukaustas failis .bash_history (vaatamiseks cat ~/.bash_history. Sisestatavate failide ja käskude nimesid ei pea alati tervenisti välja kirjutama, vaid kasutada saab üsna paindlikku TAB-lõpetamist. Näiteks võite käsureale

ls /home/ubuntu

kirjutada, vajutades

ls /h<TAB>u<TAB>.

Kui mõne koha peal on rohkem kui üks võimalikku varianti (nt mitu kausta sama algustähtedega), siis shell piiksub ning teist korda TAB vajutades näitab variante. Valige täht või mõned esitähed, mis failinime unikaalselt määravad, ja vajutage uuesti TAB jne. Mõnikord on abiks isegi käsitsi kirjutatud pika failinime lõpus TAB vajutamine – kui shell sinna lõppu tühiku lisab, siis failinimi eksisteerib ja te olete selle õigesti kirjutanud. TABi abil saab lõpetada lisaks failinimedele ka käskude nimesid. Vajutage

ip<TAB><TAB>

ja näete käskude nimesid, mis algavad ip-ga.

4. Linuxi manuaalileheküljed

Linuxisse on sisse ehitatud manuaal, millega saab üsna detailset infot enamiku käskude kohta. Nt man ls annab infot selle kohta, mida ls-käsk teeb ja mis selle võtmed on. Manuaalilehekülgede tõhusamaks kasutamiseks võib lugeda lisamaterjalina seda artiklit.

Uurime lähemalt äsja avastatud käsku ip – loeme selle käsu manuaali:

$ man ip

(kerimiseks on less, seega juba tuttav). Käsu man ajaloo ja kasutuse kohta saate lugeda siit: https://en.wikipedia.org/wiki/Man_page

Valige üks linuxi käsk, millega me siiamaani pole veel tutvunud, ning lugege selle manuaalilehekülge või uurige Google'i abil käsu võtmeid (lisaparameetreid) – mida käsk ja parameeter teeb, täpne käsu näide ja selle kasutusjuhu kirjeldus.

Googles on mõistlik otsida õpetusi inglise keeles. Näiteks, kui teate käsku aga mitte täpseid parameetreid, saab lisada käsu otsingu juurde usage examples linux -> ls usage examples linux. Linuxi käsureaga seotud küsimustele oskab edukalt vastata ka ChatGPT. Siiski enim-kasutatavad Linuxi käsud on soovitatav ära õppida ja meeles pidada ilma, et peaksite iga kord abi otsima.

Vihje: Kui otsite ideid (nimekirja), millised on Linuxi keskkonnas levinud ja vajalikud käsud, vaadake Linux Professional Institute'i sertifitseerimieksami nõudeid ja käskude nimekirja: https://www.lpi.org/our-certifications/exam-101-objectives Loomulikult on Internetis ka tuhandeid lehekülgi ja nimekirju eri isikute poolt koostatud levinud (olulisematest) Linuxi käskudest.

5. Tekstifailide muutmine

Redigeerime tekstifaile nii terminalis kui graafilise redaktoriga. Terminalis redigeerimist läheb meil vaja root-kasutajana tegutsedes, sest enamasti ei ole sellel graafilist keskkonda (või vähemalt ei ole soovitatav root kasutajana graafilisse keskkonda püsivalt sisse logida). Terminalil on kasutada mitmeid erinevaid editore (nano, vi/vim), kuid meie valime nano (lihtsuse tõttu). Kes muud editori tunneb, võib loomulikult seda kasutada. Redigeerimine terminalist oma tekstifaili:

$ nano minutekst.txt

Kirjutage sinna sisse mõni tekstirida, et oma jutu ära tunnete, ning väljuge salvestamisega (^X – spikker on ekraani allääres olemas ning esimene sümbol (^) tähistab CTRL klahvi ehk väljumiseks CTRL+X).

Redigeerime sama faili graafilise keskkonna editoriga. Avage failibrauser ja tehke topeltklikk oma faili peal, see avaneb programmiga gedit. Kui ei avanenud, siis tehke faili peal paremklikk ning valige menüüst "Open With Text Editor". Redigeerige natuke oma faili ja salvestage fail programmiga gedit. Avage minutekst.txt terminalis uuesti nano abil. Kopeerige mingi tekst ja asetage teise rea keskele. Selleks tuleb tekstikursor viia kleepimise kohale, hiirekursori viimisest ei piisa, sest terminalis töötav rakendus ei tea reeglina hiire kursorist ega kleepimisest/paste midagi – tema jaoks on see teksti kleepimine samaväärne sellega, nagu oleks need tähed klaviatuurilt sisestatud. Väljuge nanost.

Aeg-ajalt on vaja teada saada, mis tüüpi failidega on tegu, sest Linux enamasti ei kasuta faililaiendeid ja aeg-ajalt võib faililaiend olla eksitav. Faili tüüpi on võimalik määrata käsuga file, näiteks uurige järgneva käsu väljundit.

$ file minutekst.txt

6. Juur- ehk Administraator-kasutaja

Nüüd läheme ja tegutseme juurkasutajana. Proovime erinevaid juurkasutajaks saamise viise. Esiteks:

$ sudo su
# pwd

Nüüd muutke root-kasutaja parool ümber parooliks Test2024 käsu passwd abil. Root-kasutaja alt saate välja tagasi tavakasutajaks käsuga exit.

Juhul, kui te root-kasutaja parooli juba teate, saate kasutada:

$ su
# pwd
# exit

Esiteks nägite, et juurkasutaja prompti (käsuviiba) lõpetab endise $ asemel märk #. See on tava näitamaks millises kontekstis ollakse hetkel (tavakasutaja või juurkasutaja). Teiseks oli näha, et aktiivseks kataloogiks on endiselt /home/ubuntu, seega jäi aktiivne kataloog samaks. Niisugusel viisil juurkasutajaks minnes saab mugavalt kasutada jooksvas kataloogis olevaid faile, näiteks anda vastkompileeritud tarkvara kataloogis käsk make install tarkvara paigaldamiseks süsteemi.

Nüüd minge juurkasutajaks teistmoodi:

$ su -
# pwd

Näete, et aktiivseks kataloogiks on /root ehk juurkasutaja kodukataloog. See asub mujal kui tavakasutajate kodukataloogid, kuna peab alati olemas olema, ka siis, kui /home (mis võib eraldi kettal asuda) pole kättesaadav. su - on soovitatav viis juurkasutajaks minekuks juhul, kui pole vaja aktiivset kataloogi säilitada, vaid lihtsalt mingid tegevused administraatorina teha. Jääge juurkasutajana sisselogituks.

Root saab kasutajate faile vabalt lugeda ja muuta. Prooviks läheme muudame sedasama faili. Graafiline editor pole kasutatav (graafiline keskkond ei läinud juurkasutajale kaasa), seega tuleb kasutada terminali oma:

# cd /home/ubuntu
# nano minutekst.txt

Me ei pea kindlasti kataloogi vahetama, vaid saame faili ette anda täisteega (sel juhul esimene märk on "/"):

# cd /root
# pwd
# nano /home/ubuntu/minutekst.txt

(siin saab loomulikult TAB-lõpetamist kasutada trükivigade vältimiseks ning kiiremaks sisestuseks).

Kasutaja faile saame kasutajana ka redigeerida, selleks pole vaja administraatori õiguseid. Küll aga on vaja juurkasutaja õiguseid süsteemi konfiguratsiooni muutmiseks.

Juurkasutaja saab ka käivitada ja paigaldada programme, mida tavakasutaja ei saaks. Näiteks paigaldame apt-käsuga sl nimelise programmi (enne peame lisama ka levinud universe repository ehk programmide hoidla):

# add-apt-repository universe
# apt update
# apt install sl
# sl

Logime nüüd välja, kuna juurkasutajaga ei tehta ühtegi üleliigset asja:

# exit

Uurime eelnevalt paigaldatud programmi sl täpsemalt selleks:

$ whereis sl
$ sl -e

7. Lühiülevaade Unixi failiõigustest

Linux kasutab failiõiguste määramiseks kolme levinunud kategooriat: user - faili omanik (enamasti looja); group - faili grupp (vaikimisi faili omaniku grupp, kuid võib olla erinev); others - kõik ülejäänud kasutajad (grupid), kes ei ole omanik või kuulu gruppi. Failidel (kataloogidel) on järgmised õigused:

ÕigusBittTähelineTähendus failileTähendus kataloogile
Read4rlugeda/kopeeridasaab näha nimekirja kataloogis olevatest failidest (ls)
Write2wmuuta faili sisukataloogi uute faile/kataloogide loomine, kustutamine, liigutamine ja ümbernimetamine
Execute1xkäivitada programmifailisiseneda või läbida kataloogi (misiganes objekti poole pöördumine sealt kataloogist) (cd)

Eelnevalt märkame, et Linux käsitleb faile ja katalooge sarnaselt, kuid mõningase erinevusega. Failiõigustega tegeleme põhjalikumalt veel järgmistes praktikumides, kuid huvi korral lugege detailset eestikeelset juhendit siin: Unixi failiõigused. See materjal annab ülevaate, kuidas failiõiguste süsteem Unixi-põhistes operatsioonisüsteemides toimib ning kuidas seda kasutada.

Failiõiguste tundma õppimiseks peate kõigepealt oskama luua uusi kasutajaid ning gruppe. Uue kasutaja loomiseks kasutatav käsk:

$ sudo adduser peeter

Uusi gruppe saab luua käsuga

$ sudo addgroup majasisene

Gruppidesse kasutajaid saab lisada käsuga

$ sudo usermod -a -G majasisene peeter

Kasutajat saab gruppi lisada ka käsuga

$ sudo adduser <kasutaja> <grupp>

Kontrollida, millistesse gruppidesse kasutaja kuulub, saate järgmise käsuga:

$ id peeter

Järgnevalt vaatame kuidas luua käsurealt faili ja sinna kirjutada lühike tekst. ls käsuga vaatame failile antud vaikimisi õigusi.

$ echo "Käesolev tekst suunatakse faili!" > minutekstifail.txt
$ ls -la

Anname nüüd käsuga chmod loodud failidele erinevaid õigusi:

$ cat minutekstifail.txt
$ chmod 000 minutekstifail.txt
$ ls -la
$ cat minutekstifail.txt
$ chmod 760 minutekstifail.txt
$ ls -la
$ cat minutekstifail.txt
$ sudo su peeter
$ cat minutekstifail.txt
$ exit

Eelmiste käskude tulemusena nägite, kuidas muuta failiõigusi ja mille tulemusena lõpuks peeter ei pääsenud ligi failile minutekstifail.txt

8. Käsurea efektiivne kasutamine

Käsurida on võimekas tööriist, kuid tööriista peab õppima oskuslikult käsitsema. Järgnevalt jagavad praktikumi juhendajad teiega vihjeid, kuidas käsurida mugavamalt ja efektiivsemalt kasutada.

  1. CTRL+ALT+T võimaldab terminali graafilises keskkonnas kiiresti avada.
  2. TAB – tabulaatorklahvi ühe korra (või kiiresti mitu korda) vajutades üritab käsurida teostada auto-complete või kuvada valikuvariante.
  3. history-käsk võimaldab näha käskude ajalugu, !number võimaldab ajaloos olevat käsku kiiresti korduvkäivitada (näiteks !17 käivitab ajaloost käsu nr 17 ja !! käivitab ajaloost viimase käsu).
    • history asub kasutaja kodukaustas failis nimega .bash_history, seega on igal kasutajal personaalne ajalugu. history salvestub, kui käsurida sulgeda korrektselt (exit jne)
  4. Eelnevate käskude vahel saab liikuda kiiresti nooleklahvide abil nool üles, nool alla (vasak-, paremklahviga saab liikuda käsu redigeerimiseks käsurea õigesse positsiooni).
  5. home-, end-klahviga saab liikuda rea algusesse, lõppu.
  6. CTRL + R võimaldab otsida ajaloos tagurpidi (viimased käsud enne), CTRL+R teistkordsel vajutamisel kuvatakse ajaloost järgmine otsingule vastav käsk.
  7. SHIFT+pg-up,pg-dn võimaldab kerida terminali ekraanikaupa, ka kohtades, kus kerimisriba puudub.
  8. clear-käsuga saab tühjendada käsurea eelnevate käskude väljundist.
  9. Punktiga (.) algava nimega failid ja kataloogid on peidetud.
  10. Kui faili nimi või käsu parameeter sisaldab tühikuid, tuleb need kas varjestada (pannes tühiku ette tähemärgi \) või ümbritseda kogu nimi või parameeter jutumärkidega.
  11. Levinud klahvid käsureal vaate sulgemiseks on Q, X, CTRL+Q, CTRL+C (CTRL+Z ei ole soovitatav, kuna ei sulge programmi, vaid paneb selle uinunud olekus tagaplaanile. Teisisõnu ei vabastata ressursse, näiteks faile jne).
  12. exit, trükkides käsureale selle sulgemiseks, salvestab ka käsud history-faili. Nurgast x vajutades kasutatud käske ei salvestata.
  13. Soovitatav on koostada endale nn Linuxi lühikonspekt, kust on hea käske või muid nüansse, mis harvemal Linuxi kasutajal ununeda võivad, kiiresti meelde tuletada. Näide õppejõu A. Peets koostatud Süsteemihalduse kursuse Linux.docx lühikonspekt.
  14. Klaviatuuri asetuse valimine: Lisa graafilises kasutajaliideses teine klaviatuuriasetus Keyboard -> Input Sources -> Other -> Estonian (või English, kui valisite varasemalt juba eesti keele) ja nüüd võite eesti keele lohistada nimekirjas esimeseks. Ajalooliselt saab käsurealt klaviatuuripaigutusi muuta omale sobivaks käsuga sudo dpkg-reconfigure keyboard-configuration . Võite jätta kõik vaikeväärtused, välja arvatud küsimus, kus soovitakse teada teie klaviatuuri asetuse keele-eelistust. Ajutiselt on mugav keelt vahetada terminalis ka käsuga setxkbmap ee või sudo loadkeys et (ei salvestu, seega peate igakord uuesti tegema, kui terminali avate). Ubuntus on olemas veel ka localectl. NB! Enamik käsurea käske kahjuks ei muuda enam klaviatuuriasetust nii nagu varasemalt ja hetkel soovitab Ubuntu kasutusjuhend vahetada keelt graafilises kasutajaliideses.

9. Käsurea harjutamise ülesanded

Tutvu ka alamlehega "Enamkasutatud Unixi käsud" ning seejärel proovi lahendada järgnevad ülesanded:

  1. Liigu käsureal oma kodukataloogi (kataloogi lühem nimetus, mida kasutame juhendis, on kaust) (/home/ubuntu).
  2. Loo uus kataloog tabulaatori_klahvi_kasutamine_vähendab_oluliselt_trükkimise_vaeva.
  3. Tekita sinna kataloogi failid file1, file2, file3, file4, file4a (soovitatavalt ühe käsuga).
  4. Milline üks ls käsk kuvab ainult failid file3 ja file4 sellest kataloogist?
  5. Tee loodud kataloogi sisse veel üks kataloog Kaust.
  6. Liiguta (move) file4 kataloogi Kaust sisse.
  7. Kirjuta file4-faili "See on näidistekst!". Selleks võid kasutada näiteks tekstiredaktori programmi nano (väljumiseks (ning faili salvestamiseks) vajuta CTRL+X).
  8. Otsi oma kodukataloogist faile, mille nimi algab tekstiga "file4".
  9. Otsi oma kodukataloogist faile, mis sisaldavad sõna näidistekst.
  10. Loo kataloogi tabulaatori_klahvi_kasutamine_vähendab_oluliselt_trükkimise_vaeva uus kaust nimega peidetud asjad (tühik nimes on oluline) ja liigu cd-käsuga vastavasse kausta.
  11. Loo kataloogi peidetud asjad sisse peidetud fail käsuga "echo "peidetud faili sisu" > .peidetudFail.txt". Millise ls -käsuga näeb ka peidetud faile (nt. .peidetudFail.txt) kaustas peidetud asjad?
  12. Kustuta kaust peidetud asjad nii, et automaatselt kustutatakse ka kõik seal sees olevad failid.
  13. Lae käsurealt alla veebilehe https://courses.cs.ut.ee avaleht (vihje: wget).
  14. Kuva eelmises punktis alla laetud faili index.html sisust ainult esimesed 5 rida käsurea aknas.
  15. Leia allalaetud failist index.html kõik read, mis sisaldavad lühendit LTAT.06, ja väljasta need koos reanumbritega (vihje: käsk grep).

NB! sudo ehk administraatori õigused pole oma failidega tegelemisel vajalikud! Kui teile öeldakse mõne käsu peale Permission denied, siis ilmselt olete eksinud kataloogiga, kuhu asju loote või liigutate. Näiteks / failitee alguses tähendab juurkataloogi, mis asub väljaspool kasutaja kodukataloogi, ning sinna ei ole selle praktikumi ülesannete puhul vaja midagi panna. Nägemaks, kus oleme, saame kasutada käsku pwd. Veelkord – oma kodukataloogis tuleb enamasti hakkama saada ilma sudota.

Et praktikumijuhend liiga igav ei tunduks, lisame siia mõned pildid ka :)

Autor: Julia Evans https://twitter.com/b0rk

10. Linuxi kataloogipuu

Kui varasemalt ei ole Linuxi operatsioonisüsteeme kasutanud, siis võib alguses olla suhteliselt raske üles leida, kus salvestatakse Linuxis erinevat tüüpi faile, nagu näiteks ajutisi faile, programmide faile, kasutaja dokumente, süsteemi logifaile jne.

Järgnev joonis annab ülevaate Linuxi kataloogipuu struktuurist ja peamiste kaustade eesmärkidest:

Nüüd, kui tunned juba elementaarseid käske, saad uudistada Linuxi kataloogipuu struktuuri. Uuri kataloogide /bin, /var/log/, /dev, /etc, /proc, /usr sisu.

11. Väljundi suunamine teise programmi sisendiks – |

Ühe programmi väljundi suunamine teise programmi sisendisse võimaldab lihtsatest käskudest konstrueerida kokku küllaltki keerulisi andmetöötlusjadasid. Programmide sisendi ja väljundi võimaldab kokku ühendada | ehk toru (pipe). Püstkriipsu ehk | sümboli saate eesti klaviatuuri puhul Linuxis alt gr + <>| klahvikombinatsiooniga. NB! CTRL+ALT ei ole alati operatsioonisüsteemides samaväärne alt gr klahviga. Virtuaalmasinas leiate püstkriipsu ka Input -> Keyboard -> Soft keyboard -> Layout list (keelevaliku nupp all paremal) -> Deutsch T1 (German). USklaviatuuril on kasutusel nn väike ENTER aga Eesti asetusel suur. Seetõttu on enamasti sobivaim valida Rootsi asetus, selle puudusel näiteks Saksa asetus.

Näiteks süsteemi kasutajate faili kuvamine lehekülgede kaupa:

tambet@arendus:~$ cat /etc/passwd | more

Protsessinimekirjast nende kuvamine, mis sisaldavad teatud sõna:

tambet@arendus:~$ ps -ef | grep bash

Vastus teise praktikumi ülesandele "leida erinevate kasutajate arv, kelle protsesse süsteemis käib":

tambet@arendus:~$ ps -ef | tail -n+2 | cut -c-9 | sort | uniq | wc -l
9

Harutame viimase käsu juppideks:

ps -ef
kuva kõikide protsesside nimekiri.
tail -n+2
kuva kõik read alates teisest reast.
cut -c-9
jäta sisendi igalt realt alles ainult esimesed 9 tähemärki. -c asemel on tihti vaja kasutada ka cut -d" " -f3--käsku, mis siis seab väljade eraldajaks tühiku ning jätab alles tulbad 3ndast lõpuni. Enne cut-käsku on soovitatav lisada käsujadasse ka käsk tr -s " ", mis eemaldab korduvad tühikud.
sort
sorteeri sisend tähestiku järjekorras (eeldus uniq-käsule).
uniq
jäta korduvad read alles ühekordselt.
wc -l
loe kokku ridade arv ja väljasta see.

Käivita neid käske, alustades kõige esimesest, ja lisa ükshaaval | abil järgmisi käske lõppu.


Tulemus (esitada)

  • Ülesanne: Oleme teile loonud eestikeelse Linuxi käskude harjutamise keskkonna, millele pääsete ligi külastades lühilinki http://lingid.ee/kasurida . Kindlasti autentige (Looge uus kasutaja) ennast seal TÜ e-mailiga (kujul eesnimi.perenimi@ut.ee) ja enda nimega vastava harjutuse eest punktide saamiseks (esitatud lahenduse piltidel peab olema teie nimi kasutajana nähtav). Kontrollkoodi saadab masin, seega on suur tõenäosus et vastav e-mail läheb TÜ e-mailipostkastis Other või Rämspost, Junk, Spam jne kasuta. TÜ e-maile saate lugeda aadressilt http://kiri.ut.ee. Lahendada tuleb Operatsioonisüsteemid ja Andmeturve moodul (ülesanded). Esitage ekraanivaade veebilehitsejast (screenshot) lahenduste tõestuseks. Palun ärge lõigake veebilehitseja ekraanivaadet väiksemaks, pildil peab olema näha kogu veebilehitseja, rohelised lahendused ja teie nimi.
    • (NB! Tudengite TÜ ametlik e-mail on kujul eesnimi.perenimi@ut.ee, mitte kasutajatunnus@ut.ee kuhu kirjad kahjuks kohale ei jõua).
    • Tehniliste probleemide korral kirjutage alo punkt peets ät ut punkt ee kes tegeleb keskkondade haldamisega.
    • Varuvariant: Tagavara variandina on püsti ka Linux käsurea harjutuste vana versioon, mis ligipääsetav ainult TÜ sisevõrgust külastades veebilehitseja IP aadressi 172.17.36.180 http://172.17.36.180. Vana versiooni on lubatud kasutada ja seal esitada lahendusi ainult kui esitate koos vana versiooni lahendusega ka põhjenduse miks (millal) uut versiooni ei saanud kasutada. Kui lahendate vastavat vana versiooni ülesannet väljaspool klassiruumi on vajalik aktiveerida eelnevalt VPN https://wiki.ut.ee/pages/viewpage.action?pageId=17105590 PS! Veebilehitsejas on vaja lubada ka pop-up windows funktsionaalsus lehekülje edukaks toimimiseks pärast avalehte. Kui teie isiklik arvuti kasutab docker tarkvara, siis tekib IP konflik ja leht pole kättesaadav (lülitage docker ajutiselt välja). Leht ei ole kättesaadav üle HTTPS-i (lülitage välja https always veebilehitseja laiend kui teie veebilehitseja kuvab lehte https:// algusega mitte http://...). Sisenege TÜ sisevõrgu aadressil http://172.17.36.180 leitavas veebilehel oma nime ja matriklinumbriga ning lahendage kõik 10 harjutus ülesannet (muutunud roheliseks).

Kui praktikum on edukalt läbitud, siis koosta aruanne (dokumentatsioon) oma GitHubi / GitLabi lehele ja esita ülesanne moodle.ut.ee keskkonnas hindamiseks enne tähtaega.

https://moodle.ut.ee/mod/assign/view.php?id=1184283

(Tähtaeg 2 nädalat)

Lisamaterjal

  • Alo Peets cheat sheet about Linux command line Linux.docx
  • How to efficiently use Man Pages under Linux – inglise keeles manuaalilehekülgede kasutuse ülevaade.
  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment