Käsurida 101 (1. praktikum)
<- eelmine peatükk
järgmine peatükk ->
Mis on käsurida?
Käsurida on tekstiline kasutajaliides inimese ja arvuti vahel, mille puhul saab tekstilisi käske arvutile edasi anda. Seega trükib kasutaja soovitud käsu käsureale ning arvuti tõlgendab selle endale arusaadavasse keelde ja toimetab vastavalt etteöeldule. Kuna Unix oli 1960ndatel kirjutatudki terminalis, siis peaaegu kõik arvutis leiduv on konfigureeritav käsurealt.
Peamine käsurea rakendus on operatsioonisüsteemi kasutajaliides. See tähendab, et kui arvuti käivitatakse, siis tagataustal käivituvad vastavad programmid, mis teevad meie töölaua täpselt selliseks nagu ta on.
Linuxi käsurida, Bash Shell
command line, Windows Powershell
Seda esialgu kummalist ning müsteerilist akent kutsutakse käsureaks, käsuviibaks ja ka terminaliks. Inglise keeles on selle nimetuseks vastavalt command line, command prompt ja samuti terminal.
Tuntumaks kestaks Linuxis on Bash. Windowsis on selleks Windows Shell, millel aga puudub väga palju kasulikke käske. Mac operatsioonisüsteemil kutsutakse käsurida terminaliks ning tegelikult põhineb see Unixi shellil, samamoodi nagu Linuxil.
On olemas veel ka erinevaid käsuridasid nagu näiteks ksh, zsh, tsch ja muud, aga nendesse me sellel kursusel ei lasku. Huvi korral saab nende kohta lugeda siit.
Iga kord, kui avad veebibrauseri või mõne muu rakenduse, saadetakse ilusa ikooni taga arvutile vastav käsk. Näiteks kui klikkad Firefoxi rakenduse peal, siis võrdub see samaga, kui käsureale kirjutada
firefox
ja uus aken avaneb.
Tegelikult kasutavad käsurida enamus inimesi, kes arvutitega natukenegi spetsiifilisemaid ülesandeid täidavad. Linuxi kasutajatele on käsurida väga tuntud ning see on juba algusaegadest peale olnud üheks põhiliseks tööriistaks nende igapäevaelus. Paljud Maci kasutajad ja muud IT’st huvitatud inimesed kasutavad käsurida samamoodi väga tihti. Seega kui oled juba siinmaal, siis järelikult on Sul mingisugune huvi IT maailma vastu olemas. Omalt poolt soovitame nende praktikumide vältel tähelepanelikult jälgida ning harjutusi kaasa teha. Tulevikus on sellevõrra palju kergem hakkama saada.
Miks see vajalik on?
Miks aga üldse avada terminal ja vaevuda õppima erinevaid käske, kui kõik samad tegevused on tehtavad ka väga kauni kasutajaliidesega?
1. Käsurida aitab oma arvuti hingeeluga rohkem kursis olla
2. Säästab aega - mõned käsud aitavad hoida tohutult aega kokku
3. Väga paindlik. Erinevaid käske saab kokku liita ja teha mitmeid otseteesid
4. Käsureal saab teha oma skripti, mis teeb elu palju lihtsamaks. Erinevaid
keerulisi ülesandeid saab skripti sisse kirjutada, mille saab tööle panna ühe reaga
5. Käsurida aitab mõista, mis Sa täpsemalt arvutis teed ning kus kohas sa täpselt asud.
On olemas ka mitmeid muid spetsiifilisemaid tegevusi (eriti IT’ga seotud tegevusi), mida ongi võimalik teha vaid käsurealt. Selleks on hea, kui oled juba varasemalt natukene kokku puutunud erinevate käskudega.
Mõne praktikumi pärast võtame need viis punkti vaatluse alla ja teeme läbi huvitavad näited.
Praktilises osas tutvume käskudega, mis on arvutimaailmas väga levinud. Võtke aega ja tutvuge iga käsuga, kirjutage neid läbi ja proovige, mis üks või teine teevad.
Kuna edasised praktikumid toetuvad suuresti sellel praktikumil, siis on väga oluline, et mõistad üldlevinuid käske ning tead, mis need teevad.
Kui oled käsureaga juba natukene tuttav, siis korda õpitut ning aita kaaslastel teemast paremini aru saada.Vahepeal teisi õpetades õpid hoopis ise mõningaid asju juurde, milles Sa varem kindel ei olnud.
Kuna kõige rohkem õpib asju ise läbi tehes, siis alustame käsurea kasutamisega. Esmalt avame terminali kasutades kiirklahve CTRL + ALT + T või liikudes rakenduste vaatesse ja kirjutades otsingusse terminal ning vajutades Enter klahvi.
Ekraanil avanes Bash käsurida.
Formaat näeb välja selline, et kuvatud on kasutajanimi@arvutinimi: praegune asukoht failipuus. Alloleva pildi näitel on kasutajanimeks eesnimi, arvuti nimeks perenimi-VM ning praegune asukoht ~ ehk kodu kaust (home directory). Selle lainelise sümboli “~” nimi on tilde ning selle saab vajutades klahve shift + esc nupu all olev klahv
Kindlasti paned tähele, et rea lõpus on $ sümbol. See tähistab kohta, kust alates saab käske kirjutama hakata ning mis ütleb, et tegemist on Bash Shelliga. Nii praegu kui ka edaspidi tunned käsud just selle $ märgiga ära.
Bash käsurida
Praktiline osa
1. Echo
Alustame ühe lihtsa käsuga nimega echo . Echo kuvab lihtsalt ekraanile teksti, mida echo järele kirjutasid.
Proovi kirjutada käsureale
$ echo Teretulemast Linuxi käsureale!
Mis tuli ekraanile?
Proovi veel käske nagu näiteks
$ date
$ whoami
2. Pwd ja failipuu
Kõik Linuxis olevad nn asjad on failid. Mida rohkem sügavuti me Linuxit tundma õpime, seda rohkem me sellest aru hakkame saama. Hetkel hoiame seda lihtsalt endal meeles.
Iga fail on organiseeritud hierarhiliselt puukataloogis. Esimene kataloog meie süsteemis on juurkaust ehk root kaust mida märgitakse / sümboliga. Root kaustal on palju alamkatalooge ja alamfaile, mis sisaldavad veel edasi erinevaid faile ja kaustu. Siin on üks näide, milline puukataloog võib välja näha:
/ |-- bin | |-- fail1 | |-- fail2 |-- etc | |-- fail3 | `-- kaust1 | |-- fail4 | `-- fail5 |-- home |-- var
Nende failide ja kaustade asukohta nimetatakse teeks ühest kohast teise (inglse keeles path). Kui meil on folder, mille nimi on home ja selle sees folder, mille nimi on Indrek ja selle sees omakorda Programmid, siis tee selleni näeks välja kui /home/Indrek/Programmid.
Oma failisüsteemis ringi käimine ei ole üldse raske, kui tead, kus sa asud, ja tead, kuhu lähed - täpselt nagu päriselus.
Kui tahad teada, kus kohas Sa asud, siis on selleks käsk
$ pwd
mis tähendab “print working directory” ehk väljasta, kus ma praegu olen.
Bash’i käsud on tihtipeale väga intuitiivsed ehk lihtsasti arusaadavad.
3. Cd, absolute path ja relative path
Nüüd, kui me teame, kus me oleme, siis vaatame, kuidas terminalis ringi liikuda. Tuletame meelde, et me saame ringi liikuda kasutades erinevaid teesid ühest kohast teise.
Teid või path’ e on kahesuguseid:
Absoluutne tee ehk absolute path - see on tee alates root kaustast ehk kõige ülemisest kaustast alates. Kogu tee on välja kirjutatud failipuu algusest lõpuni. Näiteks
/home/marten/Pictures/Võidusõit/Tänak
Relatiivne tee ehk relative path viitab asukohani kaustast, kus hetkel asud. Kui me oleme näiteks kohas /home/marten/Pictures ja me tahame liikuda alamkausta, mille nimi on Võidusõit, siis saame kasutada relatiivset teed ja ei pea andma ette absoluutset teed.
Pika ja lohiseva
cd /home/marten/Pictures/Võidusõit/Tänak
asemel saame kasutada relatiivset teed ja anda käsuks ette vaid
cd Võidusõit/Tänak
Ülemkataloogiks nimetatakse alamkataloogi (jooksva kataloogi) kõrgema taseme kataloogi ning seda tähistatakse kahe punktiga (..).
Jooksvaks kataloogiks ehk kohaks, kus me parasjagu asume, tähistatakse ühe punktiga (.).
Juurkausta tähistatakse kaldkriipsuga (/).
Kodukausta tähistatakse tilde märgiga (~).
Nüüd kui me teame, kuidas path’id töötavad, saame juurde õppida käsu, mis aitab meil kaustade vahel liikuda.
Selleks käsuks on $ cd , ehk change directory, mis eesti keeles tähendab asukoha vahetust
$ cd käsule anname parameetriks kas absoluutse või relatiivse tee.
Kirjuta käsureale järgnev käsk, kus omakasutajanimi muuda oma kasutajanimeks
$ cd /home/omakasutajanimi/Pictures
Nüüd me oleme liikunud oma kodu kaustast kausta Pictures.
Samamoodi saame kahekordseid punkte ja kaldkriipse kasutada kui relatiivseid teid ning liikuda hõlpsasti erinevate kaustade vahel.
$ cd .. viib Su üks kaust ülespoole ehk ülemkausta $ cd ~ viib Su kodu kausta ehk home kausta $ cd / viib Su juurkausta ehk root kausta $ cd . viib Su praegusesse kausta ehk Sinu asukoht ei muutu
Et käske kiiremini kirjutada, saad kasutada ka klahvi Tab (asub üldiselt klaviatuurl caps lock nupu kohal, tähistatud vasakule ja paremale näitavate nooltega), mis automaatselt lõpetab Sinu eest rea. Kui alustame kirjutamist mingi rea, faili või kausta alguses, siis tab klahv lõpetab automaatselt meie eest sõna niikaua, kui vasteid on vaid üks.
Näiteks kui oleme kaustas Documents ning tahame liikuda alamkausta nimega SeeOnPikaNimegaKaust, siis tabi abiga ei pea me tervet kausta nime välja kirjutama. Saame lihtsalt kirjutada käsu $ cd /See ning vajutada tab klahvi. Juhul kui kaustas ei leidu teist alamkausta, mille nimi algab ka “See”ga, siis ekraanile ilmub
$ cd /SeeOnPikaNimegaKaust
Tegemist on väga tänuväärse lisaga, mis kiirendab käskude kirjutamist tohutult. Ka lühikeste kaustade nimede kirjutamisel saab tabi abil käsud kirjutatud kordi kiiremini.
Käsu pikalt välja kirjutades
Kirjutades käsku tab klahvi abiga
Küsimus: Kui Sa asud /home/peeter/Allalaadimised ning tahad saada kausta /home/peeter , siis mis on hea otsetee, mida kasutada?
4. Ls
Nüüd kui me teame, kuidas oma süsteemis ringi liikuda, siis kuidas me teame, mis sisu meile saadav on? Praegu me justkui liiguks pimeduses ringi. Selleks aga on olemas järjekordne lihtne käsk, millega saab kuvada kausta sisu ekraanile.
$ ls
käsk kuvab ekraanile kogu käsiloleva kausta sisu koos alamkaustade ja failidega.
Kui käsule anda parameetriks mõni absoluutne või ka relatiivne tee, siis me saame sinna kausta liikumata teada, mis seal kaustas parasjagu sees on.
Näiteks kui me asume /home/marten kaustas ning me tahame teada, mis failid on meil /home/marten/Dokumendid/Kool kaustas, siis saame kasutada käsku
$ ls /home/marten/Dokumendid/Kool
ning näeme vastava kausta sisu ilma oma asukohta muutmata.
Veel peame tähele panema, et kõik failid kaustades ei ole nähtavad. Failinimed, mis algavad punktiga, on peidetud. Et ka peidetud faile näha, siis tuleb ls käsule juurde anda valik -a
$ ls -a
Inglise keelest võib selle meelde jätta kui list all ehk näita kõiki faile
Tavaliselt on peidetud erinevad konfigureerimisfailid ning muud failid, mida tavakasutaja üldiselt ise loonud ei ole. See aitab kuvada folderi sisu ilma ebavajaliku “mürata”.
Veel on olemas üks kasulikum käsu valik -l (väike L täht) , mis näitab meile detailset listi kõigist failidest pikas formaadis.
See tähendab, et meile on vasakult poolt alates kuvatud faili õigused, linkide arv, omaniku nimi, omaniku grupp, faili suurus, viimase muudatuse aeg ning kausta nimi. Failiõigustega tutvume lähemalt mõne praktikumi pärast.
Kaustas olevaid peidetud faile saame näha kasutades Files rakendust. Otsi oma arvutist üles Files ning liigu kausta home. Vajuta superklahvi ning kirjuta otsinguribale files ning vajuta enter
Seal vajuta klahvikombinatsiooni ctrl + h, mis näitab kõiki peidetud faile.
Küsimus: miks on mõned failid peidetud ning kuidas neid näha saab?
Käsu valikud ehk parameetrid
Pea igal käsul on olemas hulk parameetreid või lippe, mis annavad käskudele juurde erinevad lisavalikuid. Need lisavalikud annavad käskudele juurde väga palju võimekust ning oskus parameetreid kasutada on väga väga oluline.
Eelnevad -a ja -l käsud saab ka kokku liita ning esitada Terminalis kui
$ ls -la
Harjutused:
Proovi käivitada erinevaid ls parameetreid ja vaata, mis tulemuseks saad
ls -r sorteeritakse failid kahanevast alates ls -R kuvatakse failide sisu rekursiivselt ls -t sorteeritakse failid muutmise aja järgi, uuemad eespool
5. Touch ja file
Nüüd õpime, kuidas teha uusi faile. Väga lihtne viis selleks on touch käsk. Touch laseb meil luua uusi tühje faile, millel sisu puudub.
$ touch uusfail
Ja ongi fail loodud!
Touch käsk laseb meil ka muuta failimuutmise aega olemasolevatel failidel ja kaustadel.
Proovi käivitada käsk $ls -l mingis kaustas ning seejärel kirjutades käsu touch mingil failil. Jälgi selle sama faili muutmiskuupäeva. Kasuta selleks näiteks eelnevalt loodud faili nimega uusfail
Uuesti ls -l käsu käivitamisel on faili muutmiskuupäev muutunud.
Ülalpool nägime, et uue faili loomisel ei lisanud me failinimele juurde mingisugust failiformaati nagu Sa arvatavasti oled näinud näiteks Windowsi operatsioonisüsteemis. Tavaliselt eeldame me, et fail nimega murutraktor.jpg on pildifail ja naljakasKoer.gif on GIF fail.
Linuxi operatsioonisüsteemis aga ei ole nõutud, et faililaiend näitaks, mis failiga otseselt tegu on. Seepärast saamegi me luua faile touch käsuga nii, et me faililaiendit ei märgi.
Kui soovid teada saada, mis failiga on tegemist, siis saad sa kasutada käsku
$ file
ning ekraanile kuvatakse faili kirjeldus koos faili laiendiga.
6. Nano
Kui touch käsuga saime luua tühje faile, siis nano käsu abil saame otse käsurealt kas vana faili sisu vaadata ja muuta või luua täiesti uue faili ning sinna kohe kirjutama hakata. Tegemist on väga mugava tekstiredaktoriga, mida kasutatakse väga tihti.
Loome täiesti uue faili järgneva käsuga
nano uusfail.txt
Avanes nano tekstiredaktor otse meie terminalis. Menüüribal on kuvatud erinevad valikud, kus ^ tähendab CTRL klahvi.
- ^O - salvesta fail ja jää tekstiredaktorisse
- ^X - salvesta fail ja välju või välju salvestamata
- ^W - võimaldab tekstist sõnu otsida
- ^\ - asenda tekstis olevad sõnad või karakterid
- ^G - avab abi, kust näeb lisa teiste valikute kohta
Küsimus: mida teeb Justify?