Mustand: sisu ei ole veel tehniliselt ega keeleliselt täielikult kontrollitud ega toimetatud.

Peatüki vaade

Linux/Unix/macOS käsurea kiirõpik

Praegu loed peatükki Terminali esimesed sammud, mis kuulub osasse Osa I: Esimesed sammud.

Terminali esimesed sammud

Terminalis kirjutad käsu reale, vajutad Enter ja näed vastust. Enne esimesi käske on kasulik eristada kolme sõna: terminal, shell ja viip.

Loogika

Kõige rahulikum algus on käskudega, mis ainult näitavad infot ega muuda midagi. Nii saad kõigepealt aru:

  • kus sa oled
  • mis selles kaustas on
  • mis kasutajaga sa töötad
  • mis aega süsteem näitab

Alles pärast seda tasub teha esimene väike muudatus, näiteks luua oma harjutuskaust.

1. Terminal, shell ja viip

Terminal on tekstipõhine aken või rakendus. Selle sees töötab tavaliselt shell, näiteks zsh või bash. Shell loeb sinu käsurea, tõlgendab selle käsuks ja käivitab vastava programmi või shelli enda toimingu.

Lihtne pilt:

  • terminal on aken, kus sa kirjutad ja näed vastust
  • shell on programm terminali sees, mis käske tõlgendab
  • viip ehk prompt on shelli kuvatav kutse: nüüd võid käsu sisestada

Näiteks:


~/proov %

või:


kasutaja@arvuti:~$

Viip näitab tavaliselt mõnda neist asjadest:

  • kasutajanime
  • arvuti nime
  • praegust kausta
  • seda, kas oled tavaline kasutaja või kõrgemate õigustega kasutaja

Viiba täpne kuju võib olla erinev. Hea rusikareegel on:

  • viip on shelli kuvatav kasutajaliidese osa
  • pwd ütleb kindlalt, kus sa päriselt oled

Kui tahad teada, milline shell parajasti töötab, küsi:


echo "$SHELL"

See näitab tavaliselt shelli teed, näiteks /bin/zsh või /bin/bash.

Hiljem kohtad ka shelli muutujaid nagu PS1 ja PROMPT. Need ei kuulu terminaliaknale, vaid shellile: nende abil otsustab shell, millise viiba terminalis kuvab.

Kui oled lihtsalt uudishimulik, võid vaadata:


echo "$PS1"

zsh-s võib kasulik olla ka:


print -r -- "$PROMPT"

Need käsud näitavad viiba tehnilist kuju, mitte alati täpselt sama pilti, mida terminal ekraanil kuvab.

Oluline: ära kopeeri viipa käsu ette kaasa

Kui terminalis on näha näiteks:


~/proov % pwd

siis kopeeritav käsk on ainult:


pwd

Viip ise ei ole käsu osa. See on shelli kuvatav tähis, mis näitab, et shell ootab sinu sisestust.

Terminali näide, kus kasutatakse ainult infot andvaid käske `pwd`, `ls`, `whoami` ja `date`, et vaadata rahulikult olukorda enne esimese muudatuse tegemist.
Terminali näide, kus kasutatakse ainult infot andvaid käske pwd, ls, whoami ja date, et vaadata rahulikult olukorda enne esimese muudatuse tegemist.

Pildi mõte:

  1. viip on lühike, et käsud oleksid loetavad
  2. pwd, ls, whoami ja date ainult näitavad infot
  3. ükski neist käskudest ei muuda faile

2. Esimesed ohutud käsud

Alusta nende neljaga:


pwd
ls
whoami
date

Need näitavad, kus sa oled, mis sinu ümber on, kes sa oled ja mis kell süsteemi arvates on.

Kui tahad harjutada valmis keskkonnas

Kui sul ei ole oma Linuxi masinat käepärast või tahad lahendada valmis ülesandeid, siis on hea varajane harjutuskoht terminal.cs.ut.ee.

See sobib alguses hästi, sest:

  • saad käske kohe läbi proovida
  • saad lahendada väikseid sissejuhatavaid ülesandeid
  • ei pea enne kõike oma masinas valmis seadistama
Tartu Ülikooli `terminal.cs.ut.ee` harjutuskeskkond, kus vasakul on näha sissejuhatavad ülesanded ja paremal terminaliaken, milles saab käske kohe läbi proovida.
Tartu Ülikooli terminal.cs.ut.ee harjutuskeskkond, kus vasakul on näha sissejuhatavad ülesanded ja paremal terminaliaken, milles saab käske kohe läbi proovida.

Pildi mõte:

  1. vasakul on ülesannete nimekiri, mida saab ükshaaval avada
  2. paremal on terminaliaken, kus käske kohe läbi proovida
  3. keskkond sobib eriti hästi varajasteks katsetusteks ja väikesteks kontrollitud ülesanneteks

Kui tahad oma terminaliaknas samasugust lihtsat prompti, siis ajutised käsud on:

zsh jaoks:


PROMPT='user@terminal:%~$ '

bash jaoks:


PS1='user@terminal:\w$ '

Need muudavad viipa ainult käesolevas shellis. Uues aknas tuleb tagasi sinu tavaline viip.

3. Kaustade vahel liikumine

Kui esimesed vaatavad käsud on tuttavad, saad hakata liikuma ühest kaustast teise.

Süntaks


cd kaust
cd ..
cd ~

Tähendus

  • cd kaust liigub kausta sisse
  • cd .. liigub ühe taseme võrra üles
  • cd ~ viib kodukataloogi

Lisaks kohtad tihti ka neid kujusid:

  • . tähendab praegust kausta
  • .. tähendab ülemkausta
  • ~ tähendab kodukataloogi

Näide


pwd
cd ..
pwd
cd ~
pwd

4. Tab aitab pikki nimesid lõpetada

Kui faili-, kausta- või käsunimi on pikk, ei pea seda alati lõpuni käsitsi kirjutama. Tavaliselt piisab sellest, et kirjutad nime alguse ja vajutad Tab.

Mida Tab teeb

  • kui vaste on üks, lõpetab shell nime tavaliselt ise ära
  • kui vasteid on mitu, lõpetab shell nime ühise osani
  • kui valikuid on mitu ja neist ei piisa eristamiseks, näitab shell sageli järgmise Tab vajutuse järel valikuid

Näide: üks sobiv nimi


mkdir pikk-kaustanimi
cd pik<Tab>
pwd

Siin juhtub tavaliselt järgmine:

  1. kirjutad cd pik
  2. vajutad Tab
  3. shell pakub ette kogu nime pikk-kaustanimi
  4. vajutad Enter ja liigud sellesse kausta

Näide: mitu sarnast nime


mkdir pildid
mkdir pildid-varu
cd pil<Tab>

Siin ei saa shell veel üht kindlat valikut teha, sest mõlemad nimed algavad samamoodi. Tavaliselt juhtub üks neist kahest:

  • shell lõpetab nime ainult ühise osani, näiteks pildid
  • või ootab uut Tab vajutust ja näitab valikuid

Praktiline rusikareegel: kirjuta nii palju nime algusest, kui tead, vajuta Tab, ja kui sellest ei piisa, lisa mõni täht juurde.

5. Esimene teadlik muudatus

Kui vaatavad käsud ja liikumine on juba arusaadavad, tee endale väike harjutuskaust:


mkdir proov
cd proov
pwd
ls

See on hea algus: kaust on sinu enda alal ja päris projektid ei lähe kogemata segi.

Kui kaust proov on sul juba olemas, vali lihtsalt mõni teine nimi.

6. Kuidas abi küsida

Kui käsu mõte läheb meelest, siis kõige kindlam esimene samm on:


man ls

See avab käsu manuaali. Paljud käsud toetavad ka kujusid --help või -h.

Näited:


man ls
ls --help

Oluline on meeles pidada, et -h ei tähenda kõigis käskudes tingimata abi. Seepärast on man sageli kindlam põhireegel.

7. Käsuajalugu

Shell jätab tavaliselt käsud meelde. Kõige lihtsam kuju on:


history

Alguses piisab täiesti sellest. Kui ajalugu on veel lühike, ei ole mõtet teda kohe “viimase 20” kujule lõigata.

Kasulikud lisad:

  • ülesnool toob eelmise käsu
  • allanool liigub uuema käsu poole tagasi
  • Ctrl-r otsib käsuajaloost

Kui kordad ajaloost käsku, mis midagi muudab, kontrolli see enne üle.

Hiljem tasub teada

On olemas ka kiiremad ajaloo-otseteed nagu !!, !25 ja !ls. Need käivitavad mõne vana käsu väga kiiresti uuesti. Algaja põhivoos ei ole neid veel vaja: rahulikum ja turvalisem on kasutada esialgu history, nooleklahve ja Ctrl-r.

8. Esimesed kasulikud klahvid

Mõned klahvikombinatsioonid aitavad juba esimestel päevadel väga palju:

  • Ctrl-c katkestab parajasti töötava programmi või käsu töö
  • Ctrl-a liigub käsurea algusesse
  • Ctrl-e liigub käsurea lõppu
  • Ctrl-k kustutab kursori paremalt poolelt rea lõpu

Kui mõni programm tundub “kinni olevat” või kestab liiga kaua, siis on Ctrl-c esimene asi, mida proovida.

9. Vaikne käsk ei ole automaatselt vigane

Mõni käsk töötab edukalt, aga ei kuva midagi.

Näide:


kasutaja@mac proov % touch tyhi.txt
kasutaja@mac proov % cat tyhi.txt
kasutaja@mac proov % ls -l tyhi.txt
-rw-r--r--  1 kasutaja  staff  0 Apr 13 09:21 tyhi.txt
kasutaja@mac proov %

Siin:

  • touch tyhi.txt loob tühja faili või uuendab olemasoleva faili ajatemplit
  • cat tyhi.txt ei näita midagi, sest fail on tühi
  • ls -l tyhi.txt kinnitab, et fail on olemas

Seega uus viip ei tähenda automaatselt viga. Mõnikord tähendab see lihtsalt, et käsul ei olnud midagi ekraanile näidata.

10. Viip võib olla eri kujuga, aga pwd kontrollib asukohta

Pea meeles peatüki alguse põhimõtet: viip on shelli kuvatav rida, mitte kindel tõend sinu asukoha kohta. Sama töökausta võib näidata väga erineva viibaga.


$ pwd
/Users/kasutaja/proov

Kui viip lõpeb #, siis oled sageli kõrgemate õigustega shellis ja pead eriti hoolikalt vaatama, mida teed.

Terminali näide, kus viip tehakse järjest lühemaks: kõigepealt on näha pikk tee, siis ainult `$` ja lõpuks lühike kuju `~/uuskaust/pildid %`.
Terminali näide, kus viip tehakse järjest lühemaks: kõigepealt on näha pikk tee, siis ainult $ ja lõpuks lühike kuju ~/uuskaust/pildid %.

Pildi mõte:

  1. esimene pwd näitab, et kasutaja asub kaustas /Users/kasutaja/uuskaust/pildid
  2. seejärel seatakse viip ajutiselt väga lühikeseks kujuga $
  3. uus pwd näitab, et töökoht ei muutunud, muutus ainult see, kuidas viip välja näeb
  4. lõpuks seatakse viip kujule %~ %#, mis näitab lühikest rada nagu ~/uuskaust/pildid %

Järeldus: viiba kuju võib muutuda, aga tegelik asukoht tuleb endiselt käsust pwd.

11. Väike turvamärkus

Ära kopeeri terminali käsuridu pimesi lihtsalt sellepärast, et need näevad veebis või vestluses usaldusväärsed välja.

Eriti ettevaatlik tasub olla käskudega, mis:

  • tõmbavad midagi veebist
  • muudavad palju faile korraga
  • käivitavad teise käsu automaatselt

Kui sa ei saa aru, mida käsk teeb, siis peata korraks töö ja loe enne abi.

Minitest

  1. Käivita pwd, ls, whoami ja date.
  2. Liigu cd .. abil ühe taseme võrra üles ja tule cd ~ abil kodukataloogi tagasi.
  3. Loo kodukataloogi alla kaust proov ja liigu selle sisse.
  4. Käivita history.
  5. Too eelmine käsk uuesti ette ülesnoole abil või otsi seda Ctrl-r abil.
  6. Selgita ühe lausega, miks pwd on sageli kindlam kui viiba kuju.

Peatüki täisspikker

Algaja

Eesmärk

Vaata kõigepealt rahulikult, kus sa oled, kes sa oled ja mis selles kaustas on; alles siis tee esimene väike muudatus.

Käsud ja esimesed sammud

  • pwdvaata asukohta
  • lsvaata sisu
  • whoamivaata kasutajat
  • datevaata praegust kuupäeva ja aega
  • historyvaata käsuajalugu
  • cd ~/tmpmine tmp-kausta; sobib harjutamiseks
  • mkdir proov && cd proovloo proovikaust

Olulisemad lipud, märgid ja kiirnupud

  • Tablõpeta nimi
  • Ctrl-ckatkesta programmi töö
  • Ctrl-rotsi ajaloost
  • Ctrl-area algus
  • Ctrl-erea lõpp
  • ~/proov %näide viibast ehk promptist