Linuxi kataloogistruktuur: mis see on ja kuidas see töötab

Üks oluline erinevus Linuxi ja Windowsi vahel seisneb kataloogide paigutuse vaikesüsteemis, mis ilmneb pärast operatsioonisüsteemi puhast installimist.

Pange tähele, et me ei räägi siin failisüsteem, mis on andmete kettale salvestamiseks kasutatav tehniline muster. Ülevaatav kataloogistruktuur kehtib enamiku Linuxi distributsioonide kohta, olenemata nende kasutatavast failisüsteemist.

Millised failisüsteemid on ja mida tänapäeval kasutatakse?
Juurkataloog Ubuntu Linuxi töölaual

Erinevused Windowsi ja Linuxi kataloogistruktuuride vahel

Kõrgel tasemel mõistmiseks, miks need operatsioonisüsteemid on üles ehitatud nii, nagu nad on, on kasulik mõista nende ajalugu.

Kui Windowsi-põhised personaalarvutid esimest korda oma kasvukõverat alustasid, siis Microsofti MS-DOS-i algusaegadel opsüsteem, mis keskendub spetsiaalselt mikroarvutitele (mida me tänapäeval sagedamini nimetame lauaarvutiteks arvutid). Nendel algusaastatel salvestati faile peamiselt diskettidele. Need olid märgistatud V: ja B: nii et neid oli lihtne eristada. Hiljem said kõvakettad

C: draivi silt ja täiendavad draivitüübid, nagu CD-ROMid või USB-põhised draivid, määrati järgnevad tähed.

Seevastu Linux põlvneb Unixist, operatsioonisüsteemist, mille töötas välja AT&T 1970. aastatel. Sel ajal olid inimeste kasutatud "arvutid" peamiselt õiglased terminalid. Nad kuvasid ekraanil tekstipõhist teavet ja pakkusid sisestamiseks klaviatuuri. Kuid raskuste tõstmist teostas "süsteem", mis oleks võinud koosneda mitmest füüsilisest masinast: üks töötlemiseks, üks ladustamiseks ja teine, mis pakkus konkreetset rakendust. Need olid kõik võrgu kaudu ühendatud, samas kui kasutajate jaoks näisid need ühtse üksusena. See klient-serveri konfiguratsioon, mille jaoks Unix oli loodud, oli täpselt vastupidine tehnoloogia ühe kasutaja mikroarvutile, mida MS-DOS ja hilisem Windows toetasid.

Linuxi failisüsteemide rusikareegel on, et juur, ehk failisüsteemi kõrgeim tase, ei sisalda hulkuvaid faile. Enamikus süsteemides võib see sisaldada kernel(vmlinuz joonistel) või OS-i süda ja võib-olla ka a ramdisk (initrd), mis sisaldab andmeid, mida süsteem vajab käivitamiseks ja töötamiseks. Kuid peale nende peaks see sisaldama ainult neid katalooge, mida käsitleme järgmistes jaotistes (muu hulgas).

Kataloog /bin

Üks esimesi katalooge, millega kokku puutute, on /bin. See tähistab kahendkoodid, ja see sisaldab "standardseid" operatsioonisüsteemi programme. Siin viitab "standard" põhilistele utiliitidele, mis on vajalikud OS-i mis tahes tähenduslikul kasutamiseks. Siin on järgmised näited programmidest:

  • cdvõi muutke kataloogi, mis töötab sarnaselt selle Windowsi vastega
  • Failihalduskäsud nagu cp ja mv (vastavalt failide kopeerimine ja teisaldamine).
  • Failiõiguste utiliidid, näiteks chmod (mis muudab failiõigusi) ja chown (mis muudab nende failide omanikke).
  • Programmid, mis pakuvad teie arvutikeskkonda, nt Logi sisse (mis võimaldab teil masinasse sisse logida) ja bash või muud kestad.

Linuxi distributsiooni esmakordsel installimisel installitakse need programmid kõige lihtsama installi osana ja paljudel juhtudel ei saa neid eemaldada.

Kataloog /boot

Alglaadimiskataloog sisaldab alglaadimisega seotud faile, ramdiske ja kerneleid

Järgmine on tähestiku järjekorras /boot, mis sisaldab faile, mida süsteem käivitamisel kasutab. See sisaldab Linuxi tuuma koopiaid (see, mida näete failisüsteemi juurtes, on tõenäoliselt link ühele neist), initrdvõi süsteemi esialgne mäluketas ja muud seotud andmed.

Kõige olulisem asi, mida peaksite selle kataloogi kohta teadma, on selles, et ärge segage seda. Siinseid asju käsitletakse siis, kui teie paketihaldur installib ja uuendab kerneleid. Kui kustutate mõne oma praeguse kerneli (või kerneli enda) jaoks vajaliku faili, võite sattuda süsteemi, mida ei saa käivitada.

Kataloog /cdrom

See on pärandkataloog. Seda tutvustati kui kohta, kus CD võiks olla paigaldatudvõi ühendatud ja selle sisule juurde pääseda. Sel ajal oli tavaline nõuda juurvõi administraatori õigused CD-ROM-i ühendamiseks. Kuid tänapäeval on sagedamini CD-ROM-id, mis on automaatselt ühendatud /media kataloog, millest räägime veidi hiljem.

Samamoodi oli vanasti a /floppy kataloog. Näete, kuidas need kasutajad, kes olid tõenäoliselt Windowsiga harjunud, veidi mugavamaks muutsid. Kuid kuna disketiseadmed ei ole tänapäevaste arvutite standardkomponendid, ei pruugi te seda kataloogi enam näha. Ubuntul seda näiteks pole. Kui teie masinal on disketiseade, leiate selle tõenäoliselt automaatselt sisse /media.

Kataloog /dev

Iga Linuxi süsteemi füüsiline seade on arenduses failina kujutatud

Unixi-põhiste operatsioonisüsteemide unikaalne aspekt on see kõik on fail. Mis tähendab, et failid esindavad kõike süsteemis: töötavaid protsesse, RAM-i ja jah, salvestusseadmeid. Näiteks kui kopeerite andmeid kõvakettale, kirjutab Linux tegelikult andmeid sellisesse faili nagu /dev/nvme0n1p3, mis tähistab kolmandat vahesein oma SSD-lt.

The /dev kataloog on koht, kus kõiki neid erifaile hoitakse. Kui sirvite seda, näete faile peaaegu iga seadme jaoks, mida võite ette kujutada, alates ülalmainitud NVMe-põhistest pooljuhtdraividest kuni SATA kõvaketasteni (nt. /dev/sd*) või vanem IDE (/dev/hd*) ühendused, aga ka vanemad ühendused nagu PS/2 hiireport (/dev/psaux). Tärnid tähistavad metamärke; Näiteks SATA-põhise seadistuse korral on teie esimene kõvaketas "/dev/sda," ja selle ketta esimene partitsioon on "/dev/sda1." Selle teine ​​partitsioon on "/dev/sda2," samas kui teise ketta esimene partitsioon on "/dev/sdb1."

Kuigi pole oluline, et need oleksid kindlas järjekorras, on oluline teada, milline on kumb. Need teadmised takistavad teil Windowsi partitsiooni üle kirjutamast, kui kavatsesite installida Linuxi näiteks uuele tühjale draivile.

Kataloog /etc

The /etc kataloogi nimi, kuhu lisad panna või jne failid, kummutab selle tähtsust. Praktikas sisaldab see kataloog palju konfiguratsioonifaile, mis juhivad kogu süsteemi. Siin asuvad kaks peamist tüüpi faile:

  • Globaalsed konfiguratsioonifailid, nt. a /dev/fstab faili, mida kasutatakse kõigi nende kopsakate draivide ühendamiseks, mida olete artiklis kirjeldanud /dev ülaltoodud kataloog.
  • Niinimetatud "skeleti" failid, mida kasutatakse kasutajataseme seadete vaikeseadetena. Selle näiteks on /etc/profile fail, mis sisaldab Bashi kesta sätteid. Uue konto loomisel kopeeritakse see fail uuele kontole nimega .profiil ja toimib lähtepunktina, kuni kasutaja seda kohandab.

Paljud alamkataloogid /etc on nimetatud nende juhitavate rakenduste järgi, nii et siin on lihtne sirvida, et leida faili, mida vajate rakenduse parandamiseks, kui see töötab.

Kataloogid /home ja /root

Windowsi fännid mõistavad C:\Kasutajad kataloog, kus asuvad iga süsteemi kasutaja dokumendid ja sätted. Kuna Unix oli algusest peale mitme kasutajaga süsteem, on see kontseptsioon Linuxis eksisteerinud juba aastaid /home kataloog. Igal kontol on siin alamkataloog, mis sisaldab kõiki konto andmeid. Tegelikult tavaline, administraatorita kasutaja pole isegi luba failide mujale salvestamiseks.

The /root kataloog on süsteemiadministraatori samaväärne kasutajakaust või juurkasutaja. See erineb ainult /home selle asukohas (et hoida potentsiaalselt tundlikke faile tavakasutajatest kaugel) ja omandiõigust.

Kataloogid /lib

Nagu te ilmselt kasutate 64-bitine operatsioonisüsteem, on teil siin ilmselt paar kataloogi: /lib, /lib32, ja /lib64. Need sisaldavad tarkvarateeke, mida kernel kasutab oma kõige elementaarsemate toimingute jaoks. Need, mis ei sisalda protsessori versioonile spetsiifilist koodi /lib kausta. Need, mis on versioonispetsiifilised, on jaotises /lib32 (32-bitine) või /lib64 (64-bitised) kataloogid.

Kataloogid /media ja /mnt

Irdkandja paigaldatakse meediumikataloogi kasutajanime alla

Mõni aasta tagasi, kui teil oli irdkandja, näiteks USB-mälupulk, pidite enne selle kasutamist määrama sellele /dev sisenemiseks ja looge koht /mnt (mount) kataloog. Kaasaegsemates versioonides konfigureerivad Linuxi distributsioonid irdkandja automaatselt. Tegelikult loob süsteem olenevalt kasutajast, kes on seadme ühendamisel sisse logitud kasutajapõhist kataloogi, ühendage seade ja veenduge, et kasutajal on selleks õiged õigused sellele juurde pääseda. Erinevus on tänapäeval see, /media Tavaliselt kasutatakse sel eesmärgil kataloogi.

Kataloog /opt

Mitte nii kaua aega tagasi ei saanud te lihtsalt mõnele saidile hüpata ja oma lemmikrakenduse jaoks Ubuntu paketti alla laadida. Paljud neist programmidest installite, käivitades kohandatud installiprogrammi, pakkides need lihtsalt arhiivist lahti või koostades need isegi lähtekoodist. Need installimeetodid ei olnud ühtsed ja mõnikord oli raske jälgida, kuhu failid läksid ja kuidas neid desinstallida. The /opt kataloog võeti selle valikulise tarkvara jaoks kasutusele, et olla kindel, et teie installimine või eemaldamine valesti läheb ülejäänud süsteemile.

Kuigi tänapäeval teevad paljud arendajad oma rakendused kättesaadavaks standardsetes paketivormingutes (.RPM ja .DEB), installitakse mõned neist programmidest siiski /opt. Kas sellel kataloogil on ikka mõtet, on Linuxi kogukonnas arutelu teema, kuid praegu jääb see alles. Ja osa tarkvara installitakse sinna endiselt, isegi tavalistest .DEB-pakettidest. Eelkõige installib Google Chrome sinna Ubuntu-põhistesse süsteemidesse.

Kataloog /sbin

The /sbin kataloog, nagu eelmainitu /bin, sisaldab binaarseid utiliite. See kataloog on aga piiratud süsteemi binaarfailid, ja sellisena saab selle sisu käitada ainult juurkasutaja. See sisaldab selliseid tööriistu nagu lisakasutaja (kasutatakse uute kasutajakontode loomiseks), insmod (kasutatakse riistvaradraiverite kernelisse laadimiseks) ja väljalülitamine (lülitab arvuti välja).

Kui kahtlete selle viimase üle, on teil terav silm. Ei, te ei pea olema "superkasutaja", et oma Linuxi süsteem välja lülitada. Serverisüsteemides on see nii. Kuid töölaual on teie eelistatud keskkond (nt KDE, GNOME või XFCE) seadistatud nii, et see suudab seda konkreetset käsku täita nii, nagu oleks see juurkasutaja.

Kataloog /usr

usr-i kataloog tundub piisavalt lihtne, kuni hakkate sellesse sukelduma

Kuigi kasutaja andmed on salvestatud /home kaustad, /usr ja selle alamkataloogid sisaldavad enamikku süsteemi installitud tarkvarast. Siin paigaldatud tähendab kõike, mis on saadaval väljaspool põhilisi utiliite /bin. Näiteks sisaldab see järgmist:

  • Sellised rakendused nagu töölauakeskkonnad, LibreOffice'i kontorikomplekt, GIMP-pildiredaktor ja Firefoxi veebibrauser.
  • Lähtekood asjadele nagu Linuxi kernel ja riistvaradraiverid.
  • Kõigi ülalnimetatute lisafailid, nagu kunstiteosed või dokumendid.

The /usr kataloog salvestab need oma hierarhias. See sisaldab prügikast, lib, ja sbin alamkataloogid, mis töötavad täpselt nagu nende kõrgemad vennad, kuid sisaldavad ainult teie installitud tarkvaraga seotud asju. The /usr/share kataloog sisaldab varasid, nagu ikoonikomplektid, ja ka dokumentatsioonifaile.

Usrshare'i kataloog on tohutu, paljude alamkataloogidega erinevate rakenduste jaoks

Lõpuks algne kavatsus /usr/local haru oli sarnane /opt — kasutaja installitud "valikuline" tarkvara. Üks osa arutelust on see, kumb neist kahest peaks jääma. Üks punkt kasuks /usr/local on see, et enamik lähtekoodist installitud tarkvara on konfigureeritud paigutama ennast siia.

Kataloog /var

Kataloog var sisaldab tööandmeid rakenduste ja protsesside käitamiseks

Viimane "peamistest" Linuxi kataloogidest /var kataloog sisaldab süsteemiandmeid. See tähendab süsteemi toimingute käigus genereeritud andmeid, näiteks logifaile (/var/log), vahemälud (/var/cache) ja varukoopiad (/var/backup). Ja kuna Unix (ja seega ka Linux) oli algselt mitme kasutajaga süsteem, hoidis alad serverirakenduste, näiteks e-posti (/var/mail postkastidele ja /var/spool/postfix väljamineva kirja jaoks) ja võrguprintimiseks (/var/spool/cups) instantseerige ka siin.

Muud kataloogid

Erinevad distributsioonid kasutavad juurtasemel standardkataloogide erinevaid kombinatsioone. Allpool jagame nii MX Linux 18.3 Continuumi kui ka Ubuntu 19.10 Eoan Ermine juurkausta kataloogiloendit.

juurkataloogide loend mx linux
juurkataloogide loend ubuntu

Olenevalt distributsioonist võite kohata ka teisi katalooge:

  • /lost+found: On aegu, kui väikesed andmed lähevad süsteemis valesti. Kui teate, et olete midagi kaotanud, saate seda siit kontrollida, kuigi sisu ei ole lihtne tuvastada. Peate nende sisu käsitsi üle vaatama, et aru saada, mis see on.
  • /proc: Linuxis saab kõike esitada failiga. The /proc kataloog sisaldab faile, mis on seotud protsessidja saate neid vaadata, et uurida, mida nad teevad (kuid ärge muutke neid).
  • /run: See on käitusaegne kataloog kus protsessid salvestavad mõningaid ajutisi andmeid, mida nad vajavad, enamasti süsteemi käivitumise ajal. Nagu teistegi süsteemitaseme kataloogide puhul, ärge olge siin nüginud.
  • /snap: Ubuntu oma Klõps on pakendi formaat mis koondab rakenduse ja kõik, mida rakendus vajab, a konteiner mis on teie ülejäänud süsteemist isoleeritud. The /snap kataloog on koht, kus need konteinerid on süsteemi ühendatud sarnaselt salvestusseadmetega.
  • /srv: selles kataloogis asuvad failid serveeritud deemoni poolt programmid salvestatakse. Näiteks Apache veebiserveri poolt teenindatavad staatilised veebilehed võidakse salvestada /srv/www alamkataloog.
  • /sys: kooskõlas mantraga "kõik on fail", /sys ja selle sisu esindavad samamoodi Linuxi tuuma sätteid ja teavet /proc teeb protsesside käitamiseks.
  • /tmp: kui arvasite ära selle kataloogi nime järgi ajutised andmed, sul on õigus. Süsteemitaseme programmid salvestavad siia ajutiselt teavet.

Windowsi-põhises arvutis ei välista miski kataloogide paigutamist kuhu iganes soovite, sealhulgas juurtasemele (C:\). Linuxi-põhiste süsteemide puhul peaksite siiski hoidma andmeid seal, kus need kuuluvad. Granuleeritud lubadel põhinev Linuxi süsteem tekitab tahtlikku hõõrdumist, kui sunnite kasutama alternatiivseid kataloogipaigutusi sellest, mida süsteem on kavandatud aktsepteerima.