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
/etcall - 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äsk | Milleks | Mida tavaliselt näed |
|---|---|---|
/ | kogu failipuu juur | süsteemi ülemine tase |
~ | sinu kodukataloog | sinu failide töökoht |
/bin, /usr/bin | käivitatavad programmid | käsud nagu ls, cat, grep |
/etc | seadistused | palju süsteemifaile |
/var | muutuv sisu, näiteks logid | logid, vaheandmed ja teenuste failid |
/tmp | ajutised failid | ajutine tööala |
pwd | näita praegust asukohta | üks täistee |
echo "$HOME" | näita kodukataloogi | tee 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/homeon Linuxis kasutajate kodukataloogide tavaline vanemkaust/Userson macOS-is kasutajate kodukataloogide tavaline vanemkaust/etcsisaldab palju süsteemi seadistusfaile/binja/usr/binsisaldavad käivitatavaid programme/usrsisaldab palju programme ja teeke/varsisaldab muutuvat sisu nagu logid ja vaheandmed/tmpon 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 juurkataloogicd ~viib sinu kodukataloogicd ..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:
/binsisaldab süsteemi põhilisi käske/usr/binsisaldab suurt hulka tavakasutaja käske~/binon 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
/etcvõi/usr
Minitest
- Seleta oma sõnadega, mis vahe on
cd /jacd ~vahel. - Uuri välja, mis on sinu kodukataloogi tegelik tee.
- Vaata, kas sinu süsteemis on kasutajate kodud pigem
/homevõi/Usersall. - 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 asukohtaecho "$HOME"vaata oma koducd /mine juurkataloogicd ~mine kodukataloogils /etc | headpiilu seadistusils -ld /tmpvaata ajutist kausta
Olulised teed
/kogu failipuu juur~sinu kodukataloog/etcsüsteemi seadistused/varlogid ja muutuv sisu/tmpajutiste failide koht/Users//homekasutajate kodud