Teine Praktikum – Käsurida, failisüsteemi mõiste ja haldamine
Tänases praktikumis
- Seadistame proovimiseks
Ubuntu 22.04
VirtualBoxi virtuaalmasina - Õpime tundma Unixi käsurida
- Uurime Linuxi süsteemi katalooge
- Sooritame enesekontrollitesti Linuxi käsurea oskuste teemal
Ettevalmistus
Linuxi katsetamiseks ja harjutamiseks on meil vaja kõigepealt seadistada Ubuntu 22.04 64-bit virtuaalmasin ja käivitada Live mode
/ Try mode
/ Prooviversioon
.
- Kõigepealt loome Ubuntu jaoks uue VirtualBoxi virtuaalmasina järgmiste parameetritega:
- General – Virtuaalmasina nimi
OS-Perenimi-U22
, kus Perenimi asendage enda nimega. - General – Operating Sytem:
Ubuntu (64-bit)
- System – Base memory:
3 GB
- System – Processors:
2
või enam - Storage – HDD:
22 GB
- General – Virtuaalmasina nimi
- Ühendage loodud VirtualBoxi virtuaalmasina CD/DVD-seadmesse fail
Ubuntu Desktop 22.04 64-bit ISO
, mille saate õppejõult või Ubuntu kodulehelt (pöörake tähelepanu versioonile, samalt lehelt saab erinevaid versioone!).Käivitage virtuaalmasin.
- Kui Ubuntu paigaldus käivitub, valige
Ubuntu
(võiTry Ubuntu
, Proovi Ubuntut, kui valisite eesti keele). See käivitab Ubuntu otse plaadilt (meie puhul küll ISO-failist). NB! Kui Ubuntu ei käivitu, siis veenduge, et esimeses CD/DVD seadmes on Ubuntu ISO ja vajutasite õigel hetkelANY KEY
, kui virtuaalmasin käivitus. - 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-lt).
Unixi kasutamine ja käsurida
Logisite automaatselt sisse tavakasutajana nimega ubuntu
(kasutajale ei ole seadistatud parooli). Tavakasutajana hakkate enamikus praktikumides tegutsema. 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 logige sisse kasutajana ubuntu
. Logige käsu exit
abil välja tagasi ja minge Ctrl-Alt-F2
abil tagasi oma graafilisse keskkonda.
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 scrollbackiga terminaliprogrammi käepärast, sestap õpime kerima ka ainult tekstiterminali vahendeid kasutades. Andke käsk ilma $
-märgita.
* 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. Neid märke ei ole tarvis sisestada, aga need näitavad, kas käsk tuleks sisestada tavakasutaja õigustes ($
) või root-kasutaja õigustes (#
). Jälgige seda hoolega, sest valedes õigustes käivitatud käsk võib põhjustada kummalisi tagajärgi.
$ sudo dmesg | less
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
Linuxi käsud
Linuxi käsud on enamasti ühtse struktuuriga:
$
– tavaõigustes käsurida,#
–root
- ehk administraatori õigusi vajav käskcommand
– käsk (ntls
,cp
,mv
,cd
). Ajalooliselt olid ekraanid väikesed ja mahutasid vähe tähti, seega on enamik vanemaid käske võimalikult lühikesed.options
– võtmed või parameetrid, millega saate muuta käsu toimimist. Iga käsuman
-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 pooleldi 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 sorida senistes käskudes, neid muuta ja uuesti sisestada (proovige!). Käsu redigeerimisel ei pea sisestamiseks minema kursoriga rea lõppu, Enter
it võib vajutada suvalisel positsioonil olles ja ikkagi sisestatakse terve rida.
Sisestatavate failide ja käskude nimesid ei pea alati tervenisti välja kirjutama, vaid kasutada saab üsna paindlikku TAB-completionit (Tab-klahviga lõpetamist). Näiteks võite käsureale
ls /home/ubuntu
kirjutada, vajutades
ls /h<TAB>u<TAB>
.
Kui mõne koha peal ei ole lõpetamine unikaalne, 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.
TAB
i abil saab lõpetada lisaks failinimedele ka käskude nimesid. Vajutage
ip<TAB><TAB>
ja näete käskude nimesid, mis algavad ip-ga.
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.
Vihje: Kui otsite ideid, 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
Tekstifailide muutmine
Redigeerime tekstifaile nii terminalis kui graafilise redaktoriga. Terminalis redigeerimist läheb meil vaja root-kasutajana tegutsedes, sest enamasti ei ole sellel tervet graafilist keskkonda. 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.
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
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 Test2022 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, et näidata kasutajale, et ettevaatust, juurkasutaja prompt, teil on võimalus püstoli asemel kahuriga jalga tulistada! 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
Tegelikult pole aktiivse kataloogi vahetus üldse oluline, me võime faili ette anda otse täisteega:
# cd /root # pwd # nano /home/ubuntu/minutekst.txt
(siin tuleks loomulikult TAB-completionit kasutada, et ei peaks liiga palju tippima).
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 SSH-serveri programmi:
# apt install ssh openssh-server
Logime nüüd välja, kuna juurkasutajaga ei tehta ühtegi üleliigset asja:
# exit
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.
CTRL
+ALT
+T
võimaldab terminali graafilises keskkonnas kiiresti avada.TAB
– tabulaatorklahvi ühe korra (või kiiresti mitu korda) vajutades üritab käsurida teostada auto-complete või kuvada valikuvariante.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)
- Eelnevate käskude vahel saab liikuda kiiresti nooleklahvide abil
nool üles
,nool alla
(vasak-, paremklahviga saab liikuda käsu redigeerimiseks käsurea õigesse positsiooni). home
-,end
-klahviga saab liikuda rea algusesse, lõppu.CTRL
+R
võimaldab otsida ajaloos tagurpidi (viimased käsud enne),CTRL
+R
teistkordsel vajutamisel kuvatakse ajaloost järgmine otsingule vastav käsk.SHIFT
+pg-up
,pg-dn
võimaldab kerida terminali ekraanikaupa, ka kohtades, kus kerimisriba puudub.clear
-käsuga saab tühjendada käsurea eelnevate käskude väljundist.- Punktiga (
.
) algava nimega failid on peidetud. - Kui faili nimi või käsu parameeter sisaldab tühikuid, tuleb need kas escape'ida (pannes tühiku ette tähemärgi
\
) või ümbritseda kogu nimi või parameeter jutumärkidega. - 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). exit
, trükkides käsureale selle sulgemiseks, salvestab ka käsud history-faili. Nurgastx
vajutades kasutatud käske ei salvestata.- 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 lühikonspektist.
- Klaviatuuri asetuse valimine: Lisa graafilises kasutajaliideses teine klaviatuuriasetus
Keyboard
->Input Sources
->Other
->Estonian
(võiEnglish
, 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äsugasudo 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äsugasetxkbmap ee
võisudo loadkeys et
(ei salvestu, seega peate igakord uuesti tegema, kui terminali avate). Ubuntus on olemas veel kalocalectl
. NB! Enamik käsurea käske kahjuks ei muuda enam klaviatuuriasetust nii nagu varasemalt ja hetkel soovitab Ubuntu kasutusjuhend vahetada keelt graafilises kasutajaliideses.
Käsurea harjutamise ülesanded
Tutvu ka alamlehega "Enamkasutatud Unixi käsud" ning seejärel proovi lahendada järgnevad ülesanded:
- Liigu käsureal oma kodukataloogi (kataloogi lühem nimetus, mida kasutame juhendis, on kaust) (/home/eesnimi).
- Loo uus kataloog
tabulaatori_klahvi_kasutamine_vähendab_oluliselt_trükkimise_vaeva
. - Tekita sinna kataloogi failid file1, file2, file3, file4 (soovitatavalt ühe käsuga).
- Milline üks
ls
käsk kuvab ainult failid file3 ja file4 sellest kataloogist? - Tee loodud kataloogi sisse veel üks kataloog
Kaust
. - Liiguta (move)
file4
kataloogiKaust
sisse. - Kirjuta
file4
-faili "See on näidistekst!". Selleks võid kasutada näiteks tekstiredaktori programminano
(väljumiseks (ning faili salvestamiseks) vajutaCTRL+X
). - Otsi oma kodukataloogist faile, mille nimi algab tekstiga "
file4
". - Otsi oma kodukataloogist faile, mis sisaldavad sõna näidistekst.
- Loo kataloogi
tabulaatori_klahvi_kasutamine_vähendab_oluliselt_trükkimise_vaeva
uus kaust nimegapeidetud asjad
(tühik nimes on oluline) ja liigucd
-käsuga vastavasse kausta. - Loo kataloogi
peidetud asjad
sisse peidetud fail käsuga "echo "peidetud faili sisu" > .peidetudFail.txt
". Millisels
-käsuga näeb ka peidetud faile (nt. .peidetudFail.txt) kaustaspeidetud asjad
? - Kustuta kaust
peidetud asjad
nii, et automaatselt kustutatakse ka kõik seal sees olevad failid. - Lae käsurealt alla veebilehe
https://courses.cs.ut.ee
avaleht (vihje: wget). - Kuva eelmises punktis alla laetud faili index.html sisust ainult
esimesed 5 rida
käsurea aknas. - Leia allalaetud failist index.html kõik
read
, mis sisaldavad lühenditLTAT.06
, ja väljasta need koosreanumbritega
(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. Veelkord – oma kodukataloogis tuleb enamasti hakkama saada ilma sudo
ta.
Et praktikumijuhend liiga igav ei tunduks, lisame siia mõned pildid ka :)
Autor: Julia Evans https://twitter.com/b0rk
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.
Tulemus (esitada)
Oleme teile loonud eestikeelse Linuxi käskude harjutamise keskkonna, millele pääsete TÜ sisevõrgust ligi, külastades veebilehitseja IP-aadressi 172.17.36.180
http://172.17.36.180. Kui lahendate vastavat ülesannet väljaspool klassiruumi, on vajalik aktiveerida eelnevalt VPN https://wiki.ut.ee/pages/viewpage.action?pageId=17105590 PS! Veebilehitsejas on lehekülje edukaks toimimiseks pärast avalehte vaja lubada ka funktsionaalsus pop-up windows. Kui teie isiklik arvuti kasutab tarkvara docker
, siis tekib IP-konflikt ja leht pole kättesaadav (lülitage docker ajutiselt välja). Leht ei ole kättesaadav üle HTTPS-i (lülitage välja veebilehitseja laiend https always
, kui teie veebilehitseja kuvab lehte algusega https:// mitte http://...). Sisenege TÜ sisevõrgu aadressil http://172.17.36.180 leitaval veebilehel oma nime ja matriklinumbriga ning lahendage kõik 10 harjutusülesannet (muutuvad roheliseks). Esitage ekraanivaade (screenshot) lahenduste tõestuseks.
PS! Alternatiivina võib kasutada ka sama harjutuste keskkonda teises serveris aadressil http://172.17.36.231
Kui teil on praktikumi materjal omandatud ja enesekontrolliharjutus edukalt lahendatud, siis esitage ekraanivaade järgnevasse aknasse või oma vikilehele.
2. Praktikum 2 - Unixi käsurida(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.