Vraag Hoe de lay-out van het Ubuntu-bestandssysteem te begrijpen?


In Windows zijn er misschien maar een paar belangrijke mappen (door belangrijk bedoel ik belangrijk in mijn logische afbeelding van het Windows-bestandssysteem) in de installatie-drive (in mijn geval C:\). Namelijk Program Files en Windows. Ik blijf gewoon weg van Windows map en de "verwijder programma bestanden toevoegen" is goed genoeg om de program files map van Windows. Natuurlijk is er een map met de naam Users waar de gebruikers (die geen beheerders zijn) alleen hun mappen kunnen openen.

Er is dus een duidelijk beeld op een bepaald niveau in mijn gedachten van het Windows-bestandssysteem. In Ubuntu, wanneer ik de locatie bereik /, er is een enorme lijst met mappen, waarvan ik de meeste geen idee heb wat ze bevatten. De /bin map lijkt het equivalent te zijn van de Windows map in windows. De /usr map lijkt het equivalent van de Users map in Windows. Maar zelfs de /home map ziet eruit alsof het de rekening kan passen.

Begrijp alsjeblieft dat ik begrijp dat Ubuntu (Linux) een ander karakter heeft dan dat van Windows, d.w.z. dat er geen exact equivalent van Windows-functies in Ubuntu is. Het enige dat ik zoek is een iets duidelijker beeld van het Ubuntu-bestandssysteem.

 Deze vraag is onderdeel van een grotere vraag die ik opsplits om hem meer verantwoording te geven. De oorspronkelijke vraag kan hier worden gevonden:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/ 


202
2018-05-17 18:12


oorsprong


Zie ook de directory-structuur tag aan Unix en Linux. Alle Linux-distributies volgen hetzelfde model. - Gilles
Bedankt voor al je antwoorden. Ik ben een beetje in de war over een paar punten: in Windows biedt de setup meestal via een prompt een optie om een ​​software voor alle gebruikers te installeren. Hoe maak je dat onderscheid in Ubuntu? Ook is dit een gebruikelijk probleem bij het configureren van ontwikkelingssoftware naar hun IDE's. In Windows is er bijvoorbeeld in "programmabestanden \ miktex \ bin" het bestand "pdflatex.exe". Dus ik kan de IDE naar dit bestand verwijzen en het configureren. Hoe om te gaan met dit proces in Ubuntu? Waar is het algemene binaire bestand geassocieerd met een software (vooral vanuit het oogpunt van de configuratie)? - Shashank Sawant
In Ubuntu installeert u normaal gesproken software voor alle gebruikers. Alles wat u via de pakketbeheerder doet, is voor alle gebruikers. Ik begrijp de rest van uw opmerking niet; men "configureert" niet het "binaire bestand geassocieerd met een software". Je zou dit als een afzonderlijke vraag moeten stellen en een betere uitleg moeten geven over wat je probeert te doen. - Gilles
Begrepen. Ik zal een nieuwe vraag stellen. Zelfs dan is hier een korte uitleg van wat ik bedoelde: in Windows kunnen de .exe-bestanden gemakkelijk worden gevonden. Bijvoorbeeld: "C: \ Python27 \ python.exe". Dus ik weet waar het programma Python begint. Als ik nu de Eclipse IDE moet gebruiken, kan ik het eenvoudig naar python.exe verwijzen, en dit is wat ik bedoelde met "configure". Ik heb de IDE voor Python geconfigureerd. In Ubuntu waar is de locatie waar het programma is geïnstalleerd? Dat is wat mij nog steeds ontwijkt. - Shashank Sawant
@Gilles Wees voorzichtig met zeggen all. De GoboLinux-project gebruikt eigenlijk een meer Windows-achtige mapstructuur. - new123456


antwoorden:


U kunt dit lezen op bijvoorbeeld wikipedia. Een fragment:

De Filesystem Hierarchy Standard (FHS) definieert de hoofddirectory's en hun inhoud in Linux-besturingssystemen. Voor het grootste deel is het een formalisering en uitbreiding van de traditionele BSD-bestandssysteemhiërarchie.

De FHS wordt onderhouden door de Linux Foundation, een non-profitorganisatie die bestaat uit grote leveranciers van software en hardware, zoals HP, Red Hat, IBM en Dell.   De huidige versie is 3.0, uitgebracht op 3 juni 2015.

Een visuele weergave met een korte beschrijving:

enter image description here

In principe heeft Linux de directorystructuur opgedeeld op basis van de functie die nodig is om het systeem zo veilig mogelijk te maken met de minimale hoeveelheid benodigde machtigingen. Anders moet iemand heel wat vermijdbaar werk doen.

Vergeet niet dat Unix en Linux zijn gemaakt als multi-user-systemen en dat Windows is gemaakt voor één gebruiker. Al het andere kan uit dat idee worden uitgelegd. U kunt elke map uitleggen wanneer u erover denkt om multi-user en beveiliging te zijn.

3 voorbeelden:

  • U zult zien dat bestanden en mappen die alleen admin zijn, in dezelfde directory zijn verzameld: de s in /sbin en /usr/sbin en /usr/local/sbin staat voor systeem. Een normale gebruiker kan zelfs geen programma's starten die zich daar bevinden. Bestanden die een normale gebruiker kan starten, bevinden zich in / bin, / usr / bin, / usr / local / bin op basis van waar het het meest logisch zou moeten zijn. Maar als ze alleen admin zijn, moeten ze naar de sversie van die map. Er is een beroemde utility genaamd fuser. Je kunt er processen mee doden. Als een normale gebruiker dit zou kunnen gebruiken, zou hij je sessie kunnen beëindigen.

  • Hetzelfde geldt voor /home: / home / user1 is eigendom van gebruiker1. / home / user2 is eigendom van gebruiker2. user2 doet niets om dingen in user1's huis te doen (en omgekeerd is ook waar: user1 heeft geen zakelijke dingen doen in het huis van gebruiker2). Als alle bestanden zich in / home zouden bevinden zonder gebruikersnaam eronder zou je permissies moeten geven aan elk bestand en beoordelen of iemand die bestanden mag schrijven / verwijderen. Een nachtmerrie als je tientallen gebruikers hebt.

  • toevoeging met betrekking tot bibliotheken.

    /lib/, /usr/lib/, en /usr/local/lib/ zijn de originele locaties, van vóór multilib systemen bestonden en bestaan ​​om te voorkomen dat dingen kapot gaan. /usr/lib32, /usr/lib/64, /usr/local/lib32/, /usr/local/lib64/ zijn 32- / 64-bit multilib-uitvindingen.

Het is op geen enkele manier een statisch concept. Andere Linux-smaken maakten tweaks naar deze lay-out. Bijvoorbeeld; momenteel zul je zien debian en Ubuntu veel veranderen in de lay-out van de FHS omdat SSD beter af is met alleen-lezen bestanden. Er is een beweging in de richting van een nieuwe lay-out waarbij bestanden worden opgesplitst in een 'alleen-lezen' en een 'beschrijfbare' directory / groep zodat we een root-partitie kunnen hebben die alleen-lezen (partitie voor een ssd) en beschrijfbaar kan worden aangekoppeld (sata hdd). De nieuwe map die hiervoor wordt gebruikt (niet in de afbeelding) is /run/.


240
2018-05-17 18:18



+1 Rinzwind. Ik hou van het beeld, was er eigenlijk naar op zoek. - Luis Alvarado♦
Ha dacht dat dat de aandacht zou trekken: + @LuisAlvarado - Rinzwind
Er kan geen beter antwoord zijn! - Shashank Sawant
was niet /mnt wat /media is het nu, een paar jaar geleden? - RobinJ
@RobinJ: het verschil is dat /mnt is historisch manueel beheerd. Met de opkomst van vele transiënte apparaten (flash-drives, enz.) En automatische montage werd standaard, er was een behoefte om mount-punten automatisch af te handelen. Er was een nieuwe map nodig om conflicten met de bestaande handmatige configuratie te voorkomen. Dus deze dagen /mnt is gedegradeerd tot de rol van het bieden van een handig tijdelijk mountpoint. - Scott Severance


Geef deze opdracht een kans ...

man 7 hier

Hoop dat het helpt


95
2018-05-17 19:58



goed telefoontje! Ik vergeet dat altijd, hoewel het altijd aanwezig is (zelfs als het net uitvalt;)) - Rinzwind
man moet hernoemd worden naar "it". :))) - Shiki
man hier is nu een van mijn favoriete opdrachten! De uitleg is voor mij duidelijker dan de FHS-doco, in het bijzonder onderscheid maken tussen 'local to the machine' en 'site-wide', voor een onervaren gebruiker van Ubuntu die overstapt van een matige DOS / Windows-ervaring. - WillC
BTW het nummer 7 stands van de sectie gemengde berichten van de pagina hier man. - Pablo Bianchi


Laat antwoord - Ik heb een stappenplan voor beginners gemaakt om te volgen. Als ze een bestand zoeken maar niet weten waar ze moeten zoeken, kunnen ze de kaart gebruiken om ongeveer te navigeren. U kunt een hi-res PNG downloaden hier. Je kunt het gerelateerde bericht vinden hier. Ik zal zowel het bestand als de post blijven bijwerken wanneer de tijd het toelaat, met nuttige opmerkingen.


37
2017-11-20 18:18



Interessant en nuttig idee om een ​​stroomdiagram te maken, maar helaas lijkt het erop dat er een aantal dead-ends zijn. Mijn vraag is of ik een mysqldump waar moet ik het bestand naar uitvoeren? - BadHorsie
@BadHorsie natuurlijk zou het altijd afhangen van uw specifieke use-case, maar het dumpen in a /home/badhorsie/mysqldump map zou voldoende zijn. Als u veel apps uitvoert, kunt u een nieuwe gebruiker maken om elke app uit te voeren en deze in die app / gebruiker te dumpen home directory. - d4nyll
@ paranoid-panda, kun je een beetje uitleggen waarom je ervoor kiest om de afbeelding niet klikbaar te laten zijn met de volledige resolutie? De ingesloten versie in dit bericht is vrijwel onleesbaar. - waldyrious
@waldyrious: Als je naar de revisiegeschiedenis je zult zien dat ik alleen een spelfout heb gecorrigeerd, het was een andere gebruiker die de afbeelding op deze specifieke manier heeft toegevoegd. Niets met mij te maken. U kunt deze gedachte graag bewerken, ik kan me de juiste syntaxis niet herinneren om deze klikbaar te maken.
@ParanoidPanda Dat is precies wat ik deed. Mijn bewerking heeft de typocorrectie gemaakt en de afbeelding klikbaar gemaakt, en je recensie was om te weigeren en te bewerken, vandaar mijn vraag: wat zag u verkeerd bij het klikbaar maken van het beeld? - waldyrious


Deze volgende tekst toont de mappenstructuur.

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

De belangrijkste componenten zijn hier:

  1. /boot : Bevat de bootloader

  2. /home : Bevat de persoonlijke mappen van gebruikers.

  3. /bin : Alle uitvoerbare binaire bestanden en opdrachten die door alle gebruikers op het systeem worden gebruikt, bevinden zich hier.

  4. /sbin : Dit bevat de uitvoerbare binaire bestanden van het systeem die meestal worden gebruikt door systeembeheerders.

  5. /lib : Bevat de systeembibliotheken die de binaire bestanden in / bin en / sbin ondersteunen.

  6. /etc : Bevat de configuratiebestanden voor netwerk, opstarttijd, etc.

  7. /dev : Hierin staan ​​de apparaatbestanden, zoals usb, terminal-apparaat of andere apparaten die op het systeem zijn aangesloten.

  8. /proc : Bevat informatie over het lopende proces.

  9. /tmp : Dit is de tijdelijke map waar veel processen de tijdelijke bestanden maken die nodig zijn. Dit wordt schoongemaakt elke keer dat de machine wordt opgestart.

Voor meer details, Thegeekstuff link legt perfect het generieke linux-bestandssysteem uit.


36
2018-05-17 18:38





\Users is gelijk aan /home. De naam van /usr is een historisch artefact.

Het gecombineerde equivalent van \Windows en \Program Files is de combinatie van /bin, /boot, /etc, /lib, /sbin, /tmp, /usr en /var. Linux en Windows splitsen geïnstalleerde software anders op. Windows maakt onderscheid tussen het besturingssysteem en bijbehorende programma's. Linux maakt dit onderscheid niet op dezelfde manier; de meeste, zo niet alle, software komt via Ubuntu (de distributeur) en wordt in dezelfde directoryhiërarchie geïnstalleerd, en omdat de software wordt bijgehouden door de pakketbeheerder, is het niet nodig elk programma in zijn eigen directory op te slaan. Op Linux:

  • /etc is voor systeemconfiguratiebestanden: configuratiebestanden die van invloed zijn op alle gebruikers, ongeacht of ze van toepassing zijn op het besturingssysteem als geheel of op een specifieke toepassing.
  • /usr is voor systeemcode en gegevens (programma's, bibliotheken, documentatie, enz.).
  • /var is voor variabele of tijdelijke gegevens: tijdelijke bestanden, logboeken, pakketbeheerdatabases, printerspoelen, game-opslagbestanden, enz. Er is ook /tmp voor tijdelijke bestanden die tijdens het opnieuw opstarten kunnen worden gewist.
  • /bin, /lib en /sbin in de hoofdmap hebben tegenhangers in /usr. De bestanden die zich buiten bevinden /usr zijn degenen die al vroeg in het opstartproces nodig zijn. Dit is een overblijfsel uit de tijd dat de schijven klein waren en /usr mogelijk op een bestandssysteem dat wordt gedeeld door verschillende werkstations via het netwerk, is dit op de meeste systemen niet echt een nuttig onderscheid.
  • /boot bevat een paar bestanden die alleen nodig zijn om het besturingssysteem op te starten, en niet voor de dagelijkse werking.

Er zijn extra mappen die niet overeenkomen met iets dat Windows heeft:

  • /root is de basismap van de root-gebruiker. De rootgebruiker is een beheerdersaccount dat niet aan een bepaalde gebruiker is gekoppeld; dit is de gebruiker naar wie u overschakelt wanneer u hardloopt sudo. Ubuntu laat de root-gebruiker niet standaard inloggen.
  • /media en /mnt zijn koppelpunten: hier zie je de bestandssystemen van andere besturingssystemen en externe stations. Het Windows-equivalent is andere stationsletters.
  • /proc en /sys toon systeeminformatie. In Windows moet u door menu's lopen of systeemopdrachten oproepen of programma's van derden installeren om deze informatie te bekijken.

Ubuntu volgt, net als andere Linux-distributies, over het algemeen de Linux Filesystem Hierarchy Standard.


19
2018-05-17 18:48





Ubuntu (zoals alle UNIX-achtige systemen) ordent bestanden in een hiërarchische structuur, waar relaties worden bedacht in teams van kinderen en ouders. Mappen kunnen andere mappen bevatten, evenals reguliere bestanden, die de "bladeren" van de boom zijn. Elk element van de boom kan een verwijzing zijn naar een padnaam; een absolute padnaam begint met het karakter / (het identificeren van de hoofdmap, die alle andere mappen en bestanden bevat), vervolgens wordt elke onderliggende map die moet worden doorlopen om het element te bereiken, weergegeven, elk gescheiden door een / -teken.

Een relatieve padnaam is er een die niet begint met /; in dat geval wordt de mapstructuur vanaf een bepaald punt doorlopen, die verandert afhankelijk van de context, de huidige map genaamd. In elke directory zijn er twee speciale directory's genaamd. en .., die verwijzen naar respectievelijk de map zelf en naar de bovenliggende map.

Het feit dat alle bestanden en mappen een gemeenschappelijke root hebben betekent dat, zelfs als er verschillende opslagapparaten op het systeem aanwezig zijn, ze allemaal als mappen ergens in de boom worden gezien, zodra ze op de gewenste plaats zijn gemount

Vind hier voorbeelden en meer informatie:


5
2018-05-17 18:18



Zeer goede link. Bedankt Stephen. - Luis Alvarado♦