Hakemistorakenne

Linux.fista
Versio hetkellä 16. maaliskuuta 2011 kello 21.33 – tehnyt Jarno (keskustelu | muokkaukset) (→‎Aiheesta muualla: linkin korjaus)
Siirry navigaatioon Siirry hakuun

Linuxin hakemistorakenne on määritetty FHS-standardissa, joka määrittää joukon hakemistoja ja niiden pääasiallisen käyttötarkoituksen. Useimmat jakelut noudattavat nykyisin tätä standardia. Tunnetuimpana poikkeuksena on GoboLinux, jossa hakemistorakenne on järjestetty kokonaan uudelta pohjalta.

Yleistä

Hakemistorakenne alkaa juurihakemistosta, merkintä kauttaviiva "/", jonka alle tiedostot ja hakemistot järjestetään puumaiseksi rakenteeksi. Nykyisin on myös yleistynyt vertaus sisäkkäisistä kansioista.

Levyasemat näkyvät käyttäjälle ja ohjelmille hakemistoina. Esimerkiksi CD-levyltä lukiessa ei viitata suoraan asemaan, vaan hakemistoon "/media/cdrom". Tämä mahdollistaa järjestelmän tiedostojen jakamisen usealle fyysiselle laitteelle niin, että haluttu tiedosto löytyy aina standardin mukaista polkua käyttäen, riippumatta tallennuslaitteiden fyysisestä kokoonpanosta.

Tiedostoihin ja hakemistoihin voidaan viitata absoluuttisesta tai suhteellista polkua käyttäen. Absoluuttinen viittaaminen tarkoittaa, että polku tiedostoon kirjoitetaan täydellisenä juurihakemistosta lähtien esimerkiksi "/usr/doc/apache-1.3.34/README". Suhteellinen viittaaminen tarkoittaa, että hakemistopolku on suhteessa aktiiviseen hakemistoon esimerkiksi "../../doc/apache-1.3.34/README".

Tiedostojen fyysinen sijainti voi olla eri kuin mitä virallinen hakemistorakenne antaa ymmärtää: jos jostakin syystä sijoitetaan hakemisto tai tiedosto eri paikkaan kuin missä sen oletetaan olevan, sen tilalle luodan symbolinen linkki osoittamaan paikkaa, mistä se oikeasti löytyy. Näitä linkkejä käytetään erikoisesti silloin, kun käytännöt ovat vaihdelleet Unixista (ja versiosta) toiseen.

Juurihakemisto

Juurihakemiston "/" alta tulee löytyä järjestelmän käynnistämiseen ja palauttamiseen tarvittavat osat. FHS-standardi määrittää seuraavat hakemistot lukuunottamatta /sys-hakemistoa, joka on lueteltu tässä selkeyden vuoksi:

/bin Välttämättömimmät peruskomennot kaikkien käyttäjien käytettäväksi.
/boot Järjestelmän käynnistämiseen tarvittavat tiedostot. Käynnistyslataimet kuten Grub ja Lilo säilövät tarvitsemiansa tietoja tänne.
/dev Laitetiedostot.
/etc Järjestelmän ja useimpien daemonien asetukset. Ohjelmien järjestelmänlaajuiset asetukset.
/home Käyttäjien kotihakemistot. Käyttäjä voi viitata omaan kotihakemistoonsa ~-merkillä, muiden kotihakemistoihin ~kayttaja.
/lib Järjestelmän toiminnan kannalta kriittiset jaetut kirjastot sekä ytimen moduulit.
/media Siirrettävän median liitoskohdat.
/mnt Väliaikaisesti liitetyt osiot.
/opt Isoja, erillisiä ohjelmapaketteja, joita ei jostain syystä haluta lisätä /usr-hakemiston alle (esim. suljettuja ohjelmia). Monissa jakeluissa on olemassa mm. /opt/kde ja /opt/mozilla
/proc Ytimen ja prosessien tiedot. Procfs-järjestelmän luoma virtuaalinen hakemisto.
/root Pääkäyttäjän kotihakemisto.
/sbin Välttämättömimmät ylläpito-ohjelmat. Useimmat näistä on tarkoitettu vain pääkäyttäjälle.
/srv Paikallisen palvelinohjelmiston (esimerkiksi HTTP- tai FTP-palvelimen) tarjoamaa sivustokohtaista dataa.
/sys Sysfs-järjestelmän luoma /proc:in tapainen virtuaalinen hakemisto, joka kuvaa laitteiston ja ajurien yhteyksiä. Mukana Linuxin ytimissä 2.6-versiosarjasta lähtien.
/tmp Väliaikaistiedostot, tyhjennetään koneen käynnistyessä uudelleen. Kaikilla käyttäjillä on luku- ja kirjoitusoikeudet /tmp-hakemistoon. /tmp saattaa olla symbolinen linkki hakemistoon /var/tmp.
/usr Vain luettavaksi tarkoitettua tietoa, joka on tarvittaessa mahdollista jakaa useamman järjestelmän kesken. Täältä löytyvät mm. useimmat sovellusohjelmat.
/var Muuttuvat tiedostot, lokitiedostot yms.

/home

Hakemiston /home alta löytyvät käyttäjien kotihakemistot, esimerkiksi /home/pekka. Kotihakemiston alle tallennetaan kaikki käyttäjän tekemät tiedostot. Tämä helpottaa esimerkiksi tiedostojen varmuuskopiointia, koska kaikki käyttäjän tiedostot löytyvät samasta paikasta. ~-merkki (mato, tilde) viittaa kotihakemistoon, ja useimmissa komentotulkeissa sinne pääsee komentamalla pelkästään cd.

Normaalikäyttäjän oikeuksilla pystyy tiedostoja tallentamaan tai muuttamaan vain omaan kotihakemistoon (sekä /tmp, /var/tmp /var/mail/omatunnus ja epäsuorasti esimerkiksi tulostinjonoa ja pelien tuloksia). Käyttäjä ei siis voi vahingossa poistaa tai muuttaa järjestelmän yleisen toiminnan kannalta oleellisia tiedostoja.

/usr-hierarkia

/usr-hakemiston alta löytyvät järjestelmän vähemmän kriittiset osat kuten sovellusohjelmat, dokumentaatio, ohjelmien jaetut tiedostot kuten fontit, ikonit jne.

Pakolliset elementit

Normaalin toiminnan kannalta olennaisia elementtejä, joiden tulee löytyä jokaisesta järjestelmästä.

/usr/bin Useimmat kaikkien käyttäjien käytössä olevat komennot ja ohjelmat.
/usr/include C-kääntäjän otsikkotiedostot.
/usr/lib Erilaisia ei-kriittisiä kirjastoja. Osa näistä on oman alihakemistonsa alla.
/usr/local Paikallinen hierarkia. Oletuksena tyhjä, järjestelmän ylläpitäjä voi rakentaa oman tarvitsemansa hierarkian esimerkiksi dokumenttien jakamiseksi käyttäjien kesken. /usr/local/src-hakemiston alle on perinteisesti sijoitettu itse käännettyjen ohjelmien lähdekoodeja. /usr/local/bin ja /usr/local/sbin on tarkoitettu itse tehdyille tai käsin asennetuille ohjelmille ja skripteille.
/usr/sbin Ei-kriittiset ensisijaisesti pääkäyttäjälle tarkoitetut ylläpito-ohjelmat.
/usr/share Jaetut arkkitehtuurista riippumattomat tiedostot.

Hakemistosta /usr/share saattaa löytyä esimerkiksi seuraavia alikansioita:

  • /usr/share/compiz sisältää Compizin tiedostoja
  • /usr/share/dict sisältää sanalistoja esimerkiksi oikolukua varten
  • /usr/share/doc sisältää asennettujen ohjelmien ohjeita
  • /usr/share/fpcsrc sisältää FreePascal:n lähdekoodit
  • /usr/share/games sisältää /usr/games-hakemiston pelien staattiset tiedostot
  • /usr/share/info sisältää info-sivut
  • /usr/share/lazarus sisältää Lazarus-ohjelmankehitysympäristön
  • /usr/share/man sisältää man-sivut
  • /usr/share/wallpapers sisältää KDE:n taustakuvakirjastoja

Valinnaiset elementit

Valinnaiset elementit sisältävät mahdollisesti tarpeellisia järjestelmän laajennusosia.

/usr/X11R6 X-ikkunointijärjestelmä ja sen tarvitsemat osat. Usein symbolinen linkki hakemistoon /usr/bin
/usr/games Pelit (varsinaiset ohjelmatiedostot).
/usr/src Ohjelmien (mm. ytimen) lähdekoodit.

/var-hierarkia

/var hakemisto on tarkoitettu järjestelmän ja sovellusten muuttuvien tietojen tallentamiseen. Tällaisia tietoja ovat esimerkiksi lokitiedostot sovellusten toiminnasta.

Pakolliset elementit

Pakollisten elementtien tulee löytyä jokaisesta järjestelmästä, ne ovat normaalin toiminnan kannalta olennaisia.

/var/cache Sovellusten välimuistitiedot. Tiedostot ovat uudestaan luotavissa ja täällä vain tehokkuussyistä.
/var/lib Sovellusten suorituksen aikaiset tilatiedot, mm. pakettitietokannat
/var/local Muuttuva data /usr/local-hierarkiasta.
/var/lock Lukitustiedostot.
/var/log Lokitiedostot.
/var/opt Muuttuva data /opt-hierarkiasta.
/var/run Prosesseihin liittyvät ajotiedot.
/var/spool Sovellusten prosessointia odottava data, mm. tulostusjonot
/var/tmp Väliaikaistiedostot, jotka säilytetään uudelleenkäynnistyksen yli.

Valinnaiset elementit

Valinnaiset elementit sisältävät mahdollisesti tarpeellisia järjestelmän laajennusosia.

/var/account Prosessien aiheuttamien kuormitusten kirjaus.
/var/crash Järjestelmän kaatumisen selvittämistä auttavat tiedostot.
/var/games Pelien muuttuvat tiedot.
/var/mail Käyttäjien postilaatikot.
/var/yp Network Information Service (NIS) tietokannat.

Varatut hierarkiat

/var-hierarkian alla on historiallisista syistä varattuja hakemistoja:

   /var/backups
   /var/cron
   /var/msgs
   /var/preserve

Katso myös

Aiheesta muualla