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 Failisüsteemi kaart, mis kuulub osasse Osa II: Süsteemi pilt ja haldus.

Failisüsteemi kaart

Loogika

Algaja jaoks on väga tavaline küsimus:

  • mis vahe on / ja ~ vahel
  • miks mõni fail on minu kodukataloogis, aga mõni /etc all
  • miks süsteemifailidega ei tasu suvaliselt katsetada

Failisüsteemi kaart aitab siduda üksikuid käske suurema pildiga. Kui tead, mis tüüpi asjad mingis kaustas tavaliselt elavad, on ka veaotsing ja navigeerimine palju lihtsam.

Kiirülevaade

Eesmärk on saada süsteemist kaart, et teaksid, kus on ohutu töötada ja millised kohad on süsteemi omad.

Tee või käskMilleksMida tavaliselt näed
/kogu failipuu juursüsteemi ülemine tase
~sinu kodukataloogsinu failide töökoht
/bin, /usr/binkäivitatavad programmidkäsud nagu ls, cat, grep
/etcseadistusedpalju süsteemifaile
/varmuutuv sisu, näiteks logidlogid, vaheandmed ja teenuste failid
/tmpajutised failidajutine tööala
pwdnäita praegust asukohtaüks täistee
echo "$HOME"näita kodukataloogitee sinu kodukataloogi

Tüüpilised algaja vead

  • arvatakse, et ~ ja / on lihtsalt kaks erinevat märki sama asja jaoks
  • minnakse süsteemikaustadesse midagi muutma enne, kui saadakse aru, mis seal elab
  • eeldatakse, et Linux ja macOS kasutavad täpselt samu teid

Kiirspikker

  • / on kogu failipuu juur
  • ~ tähendab sinu kodukataloogi
  • /home on Linuxis kasutajate kodukataloogide tavaline vanemkaust
  • /Users on macOS-is kasutajate kodukataloogide tavaline vanemkaust
  • /etc sisaldab palju süsteemi seadistusfaile
  • /bin ja /usr/bin sisaldavad käivitatavaid programme
  • /usr sisaldab palju programme ja teeke
  • /var sisaldab muutuvat sisu nagu logid ja vaheandmed
  • /tmp on ajutiste failide koht

Käivita need käsud


pwd
echo "$HOME"
cd /
ls
ls /etc | head
ls /usr | head
ls /var | head
ls -ld /tmp

Kui kasutad macOS-i, siis vaata ka:


ls /Users

/ ehk juur

Kõige ülemine kaust on /.

See ei tähenda “minu kodukataloog”, vaid kogu failipuu algust. Kui kirjutad:


cd /

siis liigud juurkataloogi, mitte oma isiklikku töökataloogi.

Oluline vahe:

  • cd / viib juurkataloogi
  • cd ~ viib sinu kodukataloogi
  • cd .. liigub ühe taseme võrra üles

Kodukataloog: ~

Kodukataloog on koht, kus tavaline kasutaja enamasti töötab.

Linuxis on see sageli midagi sellist:


/home/kasutaja

macOS-is sageli midagi sellist:


/Users/kasutaja

Sümbol ~ tähendab lühidalt sinu kodukataloogi. Näiteks:

  • ~/Downloads
  • ~/.ssh
  • ~/proov

See on põhjus, miks esimesed harjutused tasub teha just kodukataloogi all.

/etc

/etc sisaldab palju süsteemi seadistusi.

Sealt võib leida näiteks:

  • teenuste seadistusfaile
  • võrgu seadeid
  • kasutajate ja gruppide infot

See ei ole hea koht algajale juhuslikeks katsetusteks. Selles kaustas muudatusi tehes tasub alati täpselt teada, mida muudad ja miks.

/usr

/usr sisaldab palju programme, käske, teeke ja dokumentatsiooni.

Praktiliselt võid sellest mõelda nii:

  • siin on palju “süsteemi poolt pakutud tööriistu”
  • sina kasutad neid sageli, aga ei muuda neid otse käsitsi

Sageli näed seal kaustu nagu:

  • /usr/bin
  • /usr/lib
  • /usr/share

Nimi bin tuleb ajalooliselt sõnast binary. Unix-laadsetes süsteemides tähendab see tavaliselt kataloogi, kus on käivitatavad programmid ehk käsud. Näiteks:

  • /bin sisaldab süsteemi põhilisi käske
  • /usr/bin sisaldab suurt hulka tavakasutaja käske
  • ~/bin on levinud koht kasutaja enda väikeste skriptide jaoks

Kõik bin-kataloogis olev ei pea tänapäeval olema masinkoodis binaar. Seal võib olla ka shelliskripte või Pythoni programme, kui neid saab käsuna käivitada.

/var

/var on mõeldud muutuvate andmete jaoks.

Seal võivad olla näiteks:

  • logifailid
  • vahemälud
  • spool-id
  • teenuste töö käigus tekkivad andmed

Kui otsid, miks mingi teenus ei tööta või kuhu ruum kadus, jõuad üsna tihti just /var alla.

/tmp

/tmp on ajutiste failide koht.

See tähendab tavaliselt:

  • siia pannakse lühiajaliselt vahefaile
  • süsteem või programmid võivad selle sisu hiljem kustutada
  • siia ei tasu panna faile, mida tahad kindlasti alles hoida

Kui tahad lihtsalt kiiresti midagi testida, võib /tmp olla kasulik töökoht. Kui tahad, et fail kindlasti alles jääks, kasuta pigem oma kodukataloogi.

Linux ja macOS ei ole siin täiesti samad

Raamatu loogika on Unix-laadne, aga detailides on vahe:

  • Linuxis on kasutajate kodud tihti /home
  • macOS-is on kasutajate kodud tihti /Users
  • macOS-is on osa süsteemikaustu kaitstumad ja neid ei ole mõistlik käsitsi muuta

Seetõttu tasub mõelda mitte ainult teepärale endale, vaid ka selle rollile.

Rusikareegel

Kui mõtled “kus ma tohiksin vabalt katsetada?”, siis tavaliselt:

  • hea koht on sinu kodukataloog
  • ettevaatlik koht on projektikaust, kus on päris töö
  • halb koht juhukatsetusteks on süsteemikaust nagu /etc või /usr

Minitest

  1. Seleta oma sõnadega, mis vahe on cd / ja cd ~ vahel.
  2. Uuri välja, mis on sinu kodukataloogi tegelik tee.
  3. Vaata, kas sinu süsteemis on kasutajate kodud pigem /home või /Users all.
  4. Pane kirja, milline kaust sobib ajutisteks failideks ja milline süsteemi seadistusteks.

Peatüki täisspikker

Baas ja süsteemipilt

Eesmärk

õpi eristama süsteemi juuri, oma kodukataloogi ja ajutisi ning süsteemseid kaustu; siis on lihtsam aru saada, kus tohid rahulikult katsetada

Põhikujud

  • pwdkontrolli asukohta
  • echo "$HOME"vaata oma kodu
  • cd /mine juurkataloogi
  • cd ~mine kodukataloogi
  • ls /etc | headpiilu seadistusi
  • ls -ld /tmpvaata ajutist kausta

Olulised teed

  • /kogu failipuu juur
  • ~sinu kodukataloog
  • /etcsüsteemi seadistused
  • /varlogid ja muutuv sisu
  • /tmpajutiste failide koht
  • /Users / /homekasutajate kodud