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

Miniõpik

Linux/Unix/macOS käsurea kiirõpik

Praegu loed lühiraamatut Käsurea kiirtee gümnaasiumile, mis on mõeldud sihtrühmale gümnasistile.

Käsurea kiirtee gümnasistile

See miniõpik on mõeldud gümnasistile, kes tahab kiiresti aru saada, miks käsurida kasulik on, kuidas selle abil päris tööd teha ja kuhu peamises õpikus edasi minna.

See ei püüa õpetada kõike. Eesmärk on anda lühike, aga sisuline stardirada.

Miks käsurida üldse õppida?

Käsurida on kasulik vähemalt neljal põhjusel.

  1. See aitab teha korduvaid asju kiiremini.
  2. Paljud serverid ja arendusmasinad töötavadki käsureal.
  3. Andmete, logide ja failihulkadega töötades on käsureal sageli lihtsam näha, mis päriselt toimub.
  4. Paljud hilisemad tööriistad, nagu git, ssh, docker ja python, tunnevad end käsureal koduselt.

Kui oskad käsureal rahulikult liikuda, on lihtsam mõista ka seda, mida IDE, GitHubi workflow või Raspberry Pi taustal teevad.

Käsu põhimudel ühe lausega

Enamasti on käsu kuju selline:


käsk valikud argumendid

Näiteks:


ls -la
grep -n 'kass' loomad.txt
cp vana.txt uus.txt

Siin:

  • ls, grep, cp on käsud
  • -la, -n on valikud ehk lipud
  • loomad.txt, vana.txt, uus.txt on argumendid — siin juhul failinimed, millele käsk rakendub

Seda mustrit näed käsureal uuesti ja uuesti.

Kõige tähtsamad põhikäsklused

Kui tahad kiiresti töövõimeliseks saada, siis alusta neist:

  • pwd — kus ma praegu olen?
  • ls — mis siin kaustas on?
  • cd — kuidas lähen teise kausta?
  • mkdir — kuidas loon kausta?
  • cp — kuidas teen koopia?
  • mv — kuidas liigutan või nimetan ümber?
  • less — kuidas loen pikemat faili?
  • grep — kuidas otsin tekstist mustrit?
  • history — mida ma enne kirjutasin?
  • man või --help — kust saan abi?

Kui need on käpas, oled juba palju tugevamas kohas kui inimene, kes teab käsureast ainult paari juhuslikku käsku.

Väike praktiline töövoog

Tee endale harjutuskaust:


mkdir -p ~/tmp/gumnaasiumi-proov
cd ~/tmp/gumnaasiumi-proov
pwd

Siin on oluline just -p:

  • see lubab teha kogu tee ühe käsuga
  • kui ~/tmp puudub, tehakse ka see
  • kui ~/tmp on juba olemas, tehakse ainult gumnaasiumi-proov

Nüüd lae üks fail alla:


curl -L -O https://artifical.eu/linux/data/generated-words.txt
ls -lh

Mis juhtus:

  • curl -L -O tõi faili veebist
  • ls -lh näitas, et fail on päriselt kohal ja kui suur see on

Nüüd küsi faililt paar lihtsat asja:


wc -l generated-words.txt
grep -n 'koer' generated-words.txt
less generated-words.txt

Mida sa siit õpid:

  • wc -l loendab ridu
  • grep -n otsib ja näitab reanumbreid
  • less laseb pikka faili lehitsema minna

See on juba päris andme- ja tekstivoo algus.

Hea tööharjumus: abi loe enne veebist otsimist

Kui käsk on käes, aga täpne kuju ei meenu, tee enamasti üks neist:


man ls
grep --help
whatis grep

Need annavad eri sügavusega abi:

  • man on pikem manuaal
  • --help on kiirem meeldetuletus
  • whatis ütleb ühe lausega, millega tegu

See on kiirem ja usaldusväärsem kui juhuslik blogipostitus või foorumivastus.

Mälumängust oskuseni

Gümnasistile on oluline üks vahe:

  • käske ei pea pähe tuupima nagu sõnavara
  • tähtsam on aru saada, mida need teevad, mis sisendi nad võtavad ja mida nad vastu annavad

Näiteks:

  • cp võtab allika ja sihi ning teeb koopia
  • grep võtab mustri ja faili ning tagastab sobivad read
  • less avab faili vaatamiseks, mitte muutmiseks

Kui tead seda loogikat, on lihtsam ka uusi käske õppida.

Esimene päris järgmine samm: kaugühendus

Käsurea tõeline jõud tuleb eriti hästi välja siis, kui masin ei olegi sinu laua peal.

Näiteks:


ssh kasutaja@server

See tähendab:

  • loo krüpteeritud ühendus teise masinaga
  • saa seal terminali prompt
  • tööta edasi justkui oleksid kaugmasina ees

Sellest hetkest alates muutub käsurida eriti kasulikuks serverite, arvutiklassi masinate, Linuxi virtuaalmasinate ja Raspberry Pi puhul.

Kuhu edasi peamise õpikuga?

Kui see miniõpik tundus paras, siis mine peamise õpiku juurde selle rajaga:

  1. Terminali esimesed sammud
  2. Kataloogid ja failid
  3. Teksti vaatamine ja liikumine
  4. Käskude kuju ja argumentide loogika
  5. Sisend, väljund, torud ja suunamine
  6. Failide kopeerimine ja sünkroonimine
  7. Kauglogimine ja SSH
  8. Teksti otsimine: grep ja sugulased
  9. Git, GitHub ja töövoog

Kõige lühem sild on peamise õpiku avalehel olev rada:

Viimane mõte

Kui koolis või hobiprojektis tekib tunne, et “graafilise liidesega saab ju ka”, siis see on täiesti tõsi. Aga käsurida on koht, kus hakkad nägema:

  • millised failid päriselt olemas on
  • mis nimega programm päriselt käib
  • mis käsu tulemus läheb järgmise tööriista sisendiks
  • kuidas automaatika, server ja arendus tegelikult kokku seotakse

Just sellepärast tasub siit edasi minna peamise õpiku juurde.