Linux direktoriju struktūra: kas tas ir un kā tas darbojas

Viena būtiska atšķirība starp Linux un Windows ir noklusējuma direktoriju izkārtojuma sistēmā, ar kuru saskarsities pēc tīras operētājsistēmas instalēšanas.

Ņemiet vērā, ka mēs šeit nerunājam par failu sistēma, kas ir tehniskais modelis, ko izmanto datu glabāšanai diskā. Direktoriju struktūra, ko mēs pārskatīsim, attieksies uz lielāko daļu Linux izplatījumu neatkarīgi no tā, kādu failu sistēmu tie izmanto.

Kādas failu sistēmas ir mūsdienās un parasti tiek izmantotas
Saknes direktorijs Ubuntu Linux darbvirsmā

Atšķirības starp Windows un Linux direktoriju struktūrām

Lai augstā līmenī saprastu, kāpēc šīs operētājsistēmas ir strukturētas tā, kā tās ir, ir lietderīgi izprast to vēsturi.

Kad datori, kuru pamatā ir Windows, pirmo reizi sāka savu izaugsmes līkni, MS-DOS, Microsoft sākuma dienās operētājsistēma, kas īpaši vērsta uz mikrodatoriem (ko mēs mūsdienās biežāk saucam par galddatoriem datori). Šajos pirmajos gados faili galvenokārt tika glabāti disketēs. Tie tika marķēti A: un B: tāpēc tos bija viegli atšķirt. Vēlāk cietie diski saņēma

C: diskdziņa etiķetei un papildu diskdziņu veidiem, piemēram, CD-ROM vai USB diskdziņiem, tika piešķirti nākamie burti.

Turpretim Linux cēlies no Unix, operētājsistēmas, ko AT&T izstrādāja 1970. gados. Šajā laikā cilvēki galvenokārt izmantoja "datorus". termināļi. Viņi ekrānā rādīja uz tekstu balstītu informāciju un nodrošināja ievades tastatūru. Bet smago celšanu veica "sistēma", kas varēja sastāvēt no vairākām fiziskām mašīnām: viena apstrādei, viena uzglabāšanai un otra, kas nodrošināja īpašu pielietojumu. Tie visi bija savienoti tīklā, savukārt lietotājiem tie parādījās kā viena vienība. Šī klienta-servera konfigurācija, kurai tika izstrādāta Unix, bija tieši pretēja tehnoloģija viena lietotāja mikrodatoram, ko atbalstīja MS-DOS un vēlāk Windows.

Īkšķis Linux failu sistēmām ir tāds, ka sakne, jeb failu sistēmas augstākajā līmenī, nesatur klaiņojošus failus. Lielākajā daļā sistēmu tas var saturēt kodols(vmlinuz attēlos) vai OS centrā, un, iespējams, a RAM disks (initrd), kas satur datus, kas sistēmai nepieciešami, lai sāktu darbu. Bet, izņemot tos, tajā ir jāietver tikai tie direktoriji, par kuriem mēs runāsim turpmākajās sadaļās (cita starpā).

/bin direktorijs

Viens no pirmajiem direktorijiem, ar ko jūs saskaraties, ir /bin. Tas nozīmē binārie faili, un tajā ir "standarta" operētājsistēmas programmas. Šeit "standarts" attiecas uz pamata utilītprogrammām, kas nepieciešamas, lai OS izmantotu jebkādā jēgpilnā veidā. Šeit atrodamo programmu piemēri ir šādi:

  • cdvai mainīt direktoriju, kas darbojas līdzīgi kā tā Windows līdzinieks
  • Failu pārvaldības komandas, piemēram cp un mv (attiecīgi kopēt un pārvietot failus).
  • Failu atļauju utilītas, piemēram, chmod (kas maina failu atļaujas) un čown (kas maina šo failu īpašniekus).
  • Programmas, kas nodrošina jūsu skaitļošanas vidi, piemēram, Pieslēgties (kas nodrošina iespēju pierakstīties iekārtā) un bash vai citas čaulas.

Pirmoreiz instalējot Linux izplatīšanu, šīs programmas tiks instalētas kā daļa no visvienkāršākās instalēšanas, un daudzos gadījumos tās nevar noņemt.

/boot direktorijs

Sāknēšanas direktorijā ir ar sāknēšanu saistīti faili, ramdiski un kodoli

Nākamais alfabētiskā secībā ir /boot, kurā ir faili, ko sistēma izmanto, startējot. Tajā ir Linux kodola kopijas (tā, kuru redzat failu sistēmas saknē, iespējams, ir saite uz kādu no tām), initrd, vai sistēmas sākotnējais RAM disks un citi saistītie dati.

Vissvarīgākais, kas jums jāzina par šo direktoriju, ir tajā nejaukties. Šeit esošās lietas tiek apstrādātas, kad jūsu pakotņu pārvaldnieks instalē un atjaunina kodolus. Ja izdzēšat kādu no failiem, kas nepieciešami jūsu pašreizējam kodolam (vai pašam kodolam), jūs varat nonākt sistēmā, kuru nevar palaist.

/cdrom direktorijs

Tas ir kaut kas līdzīgs mantotajam direktorijam. Tā tika ieviesta kā vieta, kur varētu atrasties CD uzstādītsvai pievienots, un piekļūts tā saturam. Tolaik bija ierasts pieprasīt saknevai administratora tiesības pievienot CD-ROM. Taču mūsdienās biežāk ir atrodami CD-ROM, kas automātiski iemontēti /media direktoriju, par kuru mēs runāsim nedaudz vēlāk.

Tādā pašā veidā agrāk bija a /floppy direktoriju. Varat redzēt, kā tie radās, lai padarītu lietotājus, kuri, iespējams, bija pieraduši pie Windows, mazliet ērtāk. Bet, tā kā disketes nav standarta komponenti mūsdienu personālajos datoros, jūs, iespējams, vairs neredzēsit šo direktoriju. Piemēram, Ubuntu tā nav. Ja jūsu iekārtai ir diskešu diskdzinis, visticamāk, tas tiks automātiski iemontēts /media.

/dev direktorijs

Katra fiziskā ierīce Linux sistēmā ir attēlota kā fails dev

Viens unikāls Unix operētājsistēmu aspekts ir tas viss ir fails. Tas nozīmē, ka faili atspoguļo visu sistēmā: darbības procesus, RAM un jā, atmiņas ierīces. Piemēram, kad kopējot dažus datus cietajā diskā, Linux faktiski ieraksta datus failā, piemēram /dev/nvme0n1p3, kas apzīmē trešo nodalījums jūsu SSD.

The /dev direktorijā tiek glabāti visi šie īpašie faili. Pārlūkojot to, redzēsit failus gandrīz katrai ierīcei, ko varat iedomāties, sākot no iepriekš minētajiem NVMe bāzes cietvielu diskdziņiem un beidzot ar SATA cietajiem diskiem (piem., /dev/sd*) vai vecāku IDE (/dev/hd*) savienojumus, kā arī vecākus savienojumus, piemēram, PS/2 peles portu (/dev/psaux). Zvaigznītes apzīmē aizstājējzīmes; piemēram, uz SATA balstītā iestatījumā jūsu pirmais cietais disks būs "/dev/sda”, un šī diska pirmais nodalījums būs “/dev/sda1." Tās otrais nodalījums ir "/dev/sda2”, savukārt otrā diska pirmais nodalījums ir “/dev/sdb1."

Lai gan nav svarīgi, lai tie būtu kādā noteiktā secībā, ir svarīgi zināt, kurš ir kurš. Šīs zināšanas neļaus jums pārrakstīt Windows nodalījumu, piemēram, ja plānojāt instalēt Linux jaunā, tukšā instalētā diskdzinī.

/etc direktorijs

The /etc direktorija nosaukums, kā vieta, kur ievietot jebkuru papildu informāciju, vai utt failus, apšauba tā nozīmi. Praksē šajā direktorijā atrodas daudzi konfigurācijas faili, kas kontrolē visu sistēmu. Šeit ir divi galvenie failu veidi:

  • Globālās konfigurācijas faili, piem. uz /dev/fstab failu, ko izmanto, lai uzstādītu visus tos spēcīgos diskus, ko aprakstījāt /dev direktorijā iepriekš.
  • Tā sauktie "skeleta" faili, kas tiek izmantoti kā noklusējuma iestatījumi lietotāja līmeņa iestatījumiem. Piemērs tam ir /etc/profile failu, kurā ir Bash čaulas iestatījumi. Kad tiek izveidots jauns konts, šis fails tiek kopēts uz jauno kontu kā .profils un kalpo kā sākumpunkts, līdz lietotājs to pielāgo.

Daudzi apakšdirektoriji /etc ir nosaukti to pārvaldīto lietojumprogrammu dēļ, tāpēc šeit ir viegli pārlūkot, lai mēģinātu atrast failu, kas nepieciešams, lai labotu lietotni, kad tā darbojas.

/home un /root direktoriji

Windows cienītāji saprot C:\Lietotāji direktorijā, kurā atrodas katra sistēmas lietotāja dokumenti un iestatījumi. Tā kā Unix jau no paša sākuma bija vairāku lietotāju sistēma, šī koncepcija Linux sistēmā pastāv jau daudzus gadus /home direktoriju. Katram kontam šeit ir apakšdirektorijs, kurā ir visi konta dati. Patiesībā parasts lietotājs bez administratora pat nav atļaujas lai saglabātu failus citur.

The /root direktorijs ir līdzvērtīga lietotāja mape sistēmas administratoram vai root lietotājs. Tas atšķiras tikai no /home tā atrašanās vietā (lai potenciāli sensitīvos failus turētu tālu no parastiem lietotājiem) un īpašumtiesības.

/lib direktoriji

Kā jūs droši vien izmantojat 64 bitu operētājsistēma, jums, iespējams, šeit ir daži direktoriji: /lib, /lib32, un /lib64. Tie satur programmatūras bibliotēkas, ko kodols izmanto savām pamata darbībām. Tie, kuros nav koda, kas raksturīgs procesora versijai /lib mapi. Tie, kas ir specifiski versijai, ir atrodami /lib32 (32 bitu) vai /lib64 (64 bitu) direktorijus pēc vajadzības.

Katalogi /media un /mnt

Noņemams datu nesējs tiek uzstādīts zem lietotāja vārda multivides direktorijā

Dažus gadus atpakaļ, ja jums bija noņemams datu nesējs, piemēram, USB zibatmiņas disks, pirms to varējāt izmantot, jums tas bija jāpiešķir /dev ierakstu un izveidojiet vietu /mnt (mount) direktorijā. Mūsdienīgākās versijās Linux izplatījumi noņemamos datu nesējus konfigurē automātiski. Faktiski atkarībā no lietotāja, kurš ir pieteicies, kad ierīce ir pievienota, sistēma izveidos a lietotāja specifisku direktoriju, uzstādiet ierīci un pārliecinieties, vai lietotājam ir atbilstošas ​​atļaujas piekļūt tai. Mūsdienās atšķirība ir tāda, ka /media direktoriju parasti izmanto šim nolūkam.

/opt direktorijs

Ne tik sen bija laiks, kad nevarēja vienkārši pāriet uz vietni un lejupielādēt Ubuntu pakotni savai iecienītākajai lietojumprogrammai. Jūs instalējat daudzas no šīm programmām, palaižot pielāgotu instalēšanas programmu, vienkārši izsaiņojot tās no arhīva vai pat izveidojot no avota koda. Šīs instalēšanas metodes nebija vienotas, un dažreiz bija grūti izsekot, kur faili ir pazuduši un kā tos atinstalēt. The /opt direktorijs tika ieviests šai izvēles programmatūrai, lai nodrošinātu, ka pārējā sistēma netiek ietekmēta gadījumā, ja instalēšana vai atinstalēšana notikusi nepareizi.

Lai gan mūsdienās arvien vairāk izstrādātāju padara savas lietotnes pieejamas standarta pakotņu formātos (.RPM un .DEB), dažas no šīm programmām joprojām tiek instalētas /opt. Tas, vai šim direktorijam joprojām ir jēga, Linux kopienā tiek apspriests, taču pagaidām tas paliek. Tur joprojām tiek instalēta daļa programmatūras, pat no standarta .DEB pakotnēm. Proti, Google Chrome tur tiek instalēts sistēmās, kuru pamatā ir Ubuntu.

/sbin direktorijs

The /sbin direktorijā, tāpat kā iepriekšminētajā /bin, satur binārās utilītas. Tomēr šis direktorijs ir ierobežots līdz sistēmas binārie faili, un tādējādi tikai saknes lietotājs var palaist tā saturu. Tas ietver tādus rīkus kā adduser (izmanto, lai izveidotu jaunus lietotāju kontus), insmod (izmanto, lai ielādētu aparatūras draiverus kodolā), un izslēgt (izslēdz datoru).

Ja jūs domājat par pēdējo, jums ir asa acs. Nē, jums nav jābūt "superlietotājam", lai tikai izslēgtu savu Linux sistēmu. Serveru sistēmās tas tā ir. Taču darbvirsmā jūsu vēlamā vide (piemēram, KDE, GNOME vai XFCE) ir iestatīta, lai tā varētu izpildīt konkrēto komandu tā, it kā tas būtu root lietotājs.

/usr direktorijs

usr direktorijs izskatās pietiekami vienkāršs, līdz jūs sākat tajā ienirt

Kamēr lietotāja dati tiek glabāts /home mapes, /usr un tā apakšdirektorijās ir lielākā daļa sistēmai instalētās programmatūras. Šeit uzstādīta nozīmē visu, kas ir pieejams ārpus pamata utilītprogrammām /bin. Piemēram, tajā būs:

  • Lietojumprogrammas, piemēram, darbvirsmas vides, LibreOffice biroja komplekts, GIMP attēlu redaktors un Firefox tīmekļa pārlūkprogramma.
  • Avota kods tādām lietām kā Linux kodols un aparatūras draiveri.
  • Visu iepriekš minēto papildfaili, piemēram, mākslas darbi vai dokumentācija.

The /usr direktorijs tos saglabā savā hierarhijā. Tas satur atkritumu tvertne, lib, un sbin apakšdirektoriji, kas darbojas tāpat kā viņu augstākā līmeņa brāļi, bet satur tikai lietas, kas saistītas ar jūsu instalēto programmatūru. The /usr/share direktorijā ir tādi līdzekļi kā ikonu kopas, kā arī dokumentācijas faili.

Usrshare direktorijs ir milzīgs, ar daudziem apakšdirektorijiem dažādām lietojumprogrammām

Visbeidzot, sākotnējais nodoms /usr/local filiāle bija līdzīga /opt — lietotāja instalēta, "izvēles" programmatūra. Daļa diskusiju ir par to, kuram no šiem diviem vajadzētu palikt. Viens punkts par labu /usr/local ir tas, ka lielākā daļa programmatūras, kas instalēta no avota koda, ir konfigurēta tā, lai pati sevi ievietotu šeit.

/var direktorijs

Var direktorijs satur darba datus lietotņu un procesu palaišanai

Pēdējais no "galvenajiem" Linux direktorijiem, /var direktorijā ir sistēmas dati. Tas nozīmē sistēmas darbību radītos datus, piemēram, žurnālfailus (/var/log), kešatmiņas (/var/cache), un dublējumkopijas (/var/backup). Un tā kā Unix (un līdz ar to arī Linux) sākotnēji bija vairāku lietotāju sistēma, kurā atradās serveru lietojumprogrammas, piemēram, e-pasts (/var/mail pastkastēm un /var/spool/postfix izejošajam pastam) un tīkla drukāšanai (/var/spool/cups) arī šeit.

Citi direktoriji

Dažādi izplatījumi izmanto dažādas standarta direktoriju kombinācijas saknes līmenī. Tālāk mēs kopīgojam saknes mapes direktoriju sarakstu gan MX Linux 18.3 Continuum, gan Ubuntu 19.10 Eoan Ermine.

saknes direktoriju saraksts mx linux
saknes direktoriju saraksts ubuntu

Atkarībā no izplatīšanas varat saskarties arī ar citiem direktorijiem:

  • /lost+found: Ir gadījumi, kad sistēmā tiek ievietoti nevietā datu gabali. Ja zināt, ka esat kaut ko pazaudējis, varat to pārbaudīt šeit, lai gan saturu nebūs viegli identificēt. Jums būs manuāli jāpārbauda to saturs, lai noskaidrotu, kas tas ir.
  • /proc: Linux visu var attēlot ar failu. The /proc direktorijā ir faili, kas saistīti ar procesi, un varat tos skatīt, lai pārbaudītu, ko viņi dara (bet nerediģējiet tos).
  • /run: Tas ir izpildlaika direktorijs kur procesi glabā dažus tiem nepieciešamos pagaidu datus, visbiežāk sistēmas palaišanas laikā. Tāpat kā ar citiem sistēmas līmeņa direktorijiem, nekautrējieties šeit.
  • /snap: Ubuntu Snap ir iepakojuma formāts kas iesaiņo lietojumprogrammu un visu, kas lietotnei ir nepieciešams, a konteiners kas ir izolēts no pārējās sistēmas. The /snap direktorijs ir vieta, kur šie konteineri ir pievienoti sistēmai, līdzīgi kā atmiņas ierīces.
  • /srv: šajā direktorijā atrodas faili pasniegts ar dēmonu programmas tiek saglabātas. Piemēram, Apache tīmekļa servera apkalpotās statiskās tīmekļa lapas var tikt saglabātas mapē /srv/www apakšdirektorijā.
  • /sys: saskaņā ar mantru "viss ir fails", /sys un tā saturs tādā pašā veidā atspoguļo iestatījumus un informāciju no Linux kodola /proc darbojas procesu palaišanai.
  • /tmp: ja uzminējāt pēc nosaukuma, kas atrodas šajā direktorijā pagaidu dati, tev taisnība. Sistēmas līmeņa programmas šeit īslaicīgi glabā informāciju.

Datorā, kurā darbojas sistēma Windows, nekas neliedz jums ievietot direktorijus jebkurā vietā, tostarp saknes (C:\) līmenī. Tomēr sistēmās, kuru pamatā ir Linux, jums vajadzētu glabāt datus tur, kur tie pieder. Granulētā, uz atļaujām balstītā sistēma operētājsistēmai Linux radīs tīšu berzi, kad piespiedīsit alternatīvus direktoriju izkārtojumus no tā, ko sistēma ir izstrādāta.