2009-02-04 12 views
1

Quelqu'un at-il une référence à ce que les différents noms de chemins signifient sur les différentes saveurs d'Unix? Veuillez inclure Solaris, RHEL et SLES dans la liste si possible.Signification de la structure de chemin sur Unix

par exemple. D'après ce que j'ai compris/lib est la bibliothèque standard pour la distribution, qui ne change jamais (est-ce correct ou obtient-elle de nouvelles versions de temps en temps?),/Usr/local est pour les applications installées par sysadmin, etc. Je ne suis pas sûr que ce soit correct et je ne suis toujours pas clair sur la différence entre/usr/lib et/lib (le premier est pour les bibliothèques installées sysadmin?) Et/sbin et/bin et ainsi de suite ... Merci.

+0

Habituellement, tout ce qui est dans FHS est géré par la distribution, sauf si cela n'a pas de sens, comme/home,/tmp,/usr/local, et peut-être/opt. La distribution peut mettre à jour n'importe quoi à n'importe quel moment;/lib et/usr/lib ne sont généralement pas différents du point de vue de la politique de mise à jour. – ephemient

Répondre

6

La plupart des distributions Linux suivent la Filesystem Hierarchy Standard FHS (au moins pour la plupart). De grandes parties de ce sont simplement des règles qui ont été vrai pour UNIX pendant un certain temps (/usr, /var, ...), d'autres sont plutôt nouvelles (/media, ...).

Une chose que je trouve confusion est d'abord l'existence des deux /bin et /usr/bin ainsi que /lib et /usr/lib avec une distribution aléatoire seeemingly de l'endroit où des choses va. Le motif de cette division est que /usr peut être monté à partir d'un stockage différent (distant possible) que la racine, donc /bin et /lib doivent contenir un système minimal suffisant pour que tout le système fonctionne et fonctionne en cas de défaillance du système.

Ainsi Gnome, GIMP et ainsi de suite peut aller à /usr, car ils ne sont pas indispensables, mais systèmefichiers des outils tels que fsck et mkfs ainsi que la coquille sh besoin de résider dans les répertoires non usr.

+0

merci! document très utile. –

6

Tout ceci est copié directement à partir de kdubois.net. Allez upvote ce site.

/home - C'est ici que résident tous les répertoires et fichiers contenant des informations spécifiques à un utilisateur. Chaque utilisateur du système doit se voir attribuer un répertoire dans/home qui correspond au nom de cet utilisateur. Le profil de chaque utilisateur contient généralement tous les fichiers que vous traitez régulièrement, vos documents, supports et paramètres sont tous mieux placés dans votre répertoire/home/$ USERNAME.

/etc - C'est ici que le système stocke généralement les fichiers de configuration système. Les paramètres de mise en réseau, le serveur graphique X, ainsi que de nombreuses autres fonctions du système résident dans ce dossier. Jetez un coup d'oeil à l'intérieur. Votre serveur X graphique garde toute sa configuration dans le répertoire X11 /. Le fichier mtab stocke les paramètres cron. Si vous êtes sur un système Debian, les fichiers à configurer apt utilisent le répertoire apt /. Il y a des tonnes d'autres paramètres du système dans ce dossier, alors essayez d'en apprendre plus à ce sujet si vous le pouvez. Soyez prudent lorsque vous jouez avec quelque chose dans le répertoire/etc!

/boot - Ce dossier contient les éléments nécessaires au démarrage de l'ordinateur. Au minimum, il contient un chargeur de démarrage comme GRUB ou LILO (le menu qui apparaît au démarrage et vous permet de sélectionner le système d'exploitation) et une image du noyau. Souvent, les ramdisks initiaux sont également inclus ici aussi. Je suis plus habitué à GRUB, donc je vais approfondir un peu comment un répertoire/boot utilisant grub fonctionnerait. Au démarrage, le système examine /boot/grub/menu.lst pour essayer de déterminer comment démarrer le système que vous voulez pour cette session. Dans menu.lst, il y a des spécifications pour ce que l'image de démarrage du noyau devrait être utilisée, ainsi que quel disque virtuel initial devrait être utilisé. GRUB prend alors ce qui a été dit au sujet du système et lance le noyau dans le démarrage. À moins que vous ne vous préoccupiez des options de démarrage, vous ne traiterez probablement pas trop souvent avec/boot, mais c'est un élément essentiel d'un système Linux, dont il est toujours bon d'avoir connaissance.

/bin - Ceci contient des exécutables binaires de base pour l'ensemble du système. Les outils de base pour des choses comme la décompression de fichiers ou la navigation dans des répertoires sont contenus ici. Par exemple, 'cd', 'ls', 'ip', 'cat' et d'autres programmes qui sont des standards linux universels de base sont contenus ici.

/mnt et /médias - Selon ce système que vous utilisez, ces deux dossiers sont où vous monter des systèmes de fichiers autres que le système de fichiers /. En regardant Ubuntu (la distro d'habitude sur mon ordinateur portable), chaque fois que vous branchez une clé USB, un CD ou un nouveau disque dur, il est monté dans le répertoire/media.

/dev - Contient tous les nœuds de périphérique du système. Tout matériel détecté par le noyau est placé ici en tant que et entrée. Dans les systèmes Linux modernes, ce dossier est géré en grande partie par Udev, ce qui facilite la configuration automatique et la population de ce répertoire. Supprimer de force tout ce qui se trouve dans ce répertoire est très mal conseillé. :-RÉ.Ce dossier est très utile pour savoir si un pilote que vous venez de compiler fonctionne et pour voir ce que votre système considère comme son matériel. Par exemple, hd1, hd2, etc. sont des disques durs PATA, sd1, sd2, etc. sont des lecteurs SCSI, ram est le ram système, et video0 est généralement une sorte de tuner TV. Strictement parlant, chaque élément dans/dev n'est pas un composant physique du système, mais la plupart le sont. Chaque appareil est traité comme un fichier. Cette notion est familière aux vétérans open source, mais un concept étrange pour les nouveaux convertis à partir de Windows. Cela supprime un énorme niveau d'abstraction et rend l'écriture sur votre carte graphique la même chose que l'écriture de votre journal. Le noyau gère les étapes nécessaires pour que le périphérique traite les données comme il le devrait. De petits tours naissent de cela. Par exemple, je peux chat/dev/video0 (mon tuner TV Hauppauge) et enregistrer une émission de télévision avec une seule commande. (cat/dev/video0> show.mpg). Respectez le répertoire de développement! :-D

/lost + found - Lorsqu'un système de fichiers EXT a des problèmes, tous les fichiers qui sont orphelins ou en difficulté sont placés ici. J'espère que vous n'aurez jamais à penser à ce dossier. :-)

/sbin - Une concaténation de « binaires du système », ce dossier contient généralement des utilitaires système de niveau supérieur, comme ifconfig pour la configuration du réseau. La frontière entre/bin et/sbin a toujours été un peu vague pour moi, mais les utilitaires sbin semblent toujours avoir des fonctions plus avancées, comme dhclient pour obtenir des adresses IP DHCP, ou mkfs pour formater un disque.

/racine - il s'agit du dossier de base du super-utilisateur (le superutilisateur). Aussi simple que cela.

/tmp - Comme vous pouvez le deviner, ce dossier contient des fichiers temporaires. Si Mozilla Firefox doit mettre en cache votre téléchargement actuel, il peut stocker le fichier partiel dans/tmp jusqu'à ce qu'il ait fini de le télécharger, puis le copier dans/tmp vers l'emplacement de téléchargement choisi. Les bons programmes nettoient/tmp eux-mêmes quand ils ont fini de l'utiliser, mais son contenu est automatiquement supprimé au redémarrage, donc ne vous inquiétez pas pour ce dossier qui gonfle avec le temps jusqu'à ce que cela cause des problèmes de performance.

/lib - Ceci contient toutes les bibliothèques système. Regardez à l'intérieur et vous trouverez un tas de fichiers .so. Ce sont des bibliothèques dont les autres programmes ont besoin pour fonctionner. Si vous êtes curieux à ce sujet, tapez "ldd/bin/echo" (echo est un utilitaire simple pour la sortie de texte). Votre système renverra les liens auxquels les bibliothèques sont liées, à savoir ld-linux.so.2 et libc.so.6 et linux-gate.so.1. ldd fonctionne avec n'importe quel programme. Modifier les noms de vos bibliothèques système va casser votre système. Les programmes ne sauront pas où chercher lorsqu'ils auront besoin d'accéder aux composants critiques situés dans les bibliothèques. Pratiquement tout est lié à libc.so.6 et à ld-linux.so.2, donc renommer ceci est un moyen sûr de détruire votre système. Vous n'aurez pas à vous soucier trop des bibliothèques système, car les gestionnaires de paquets font du bon travail pour tout garder en ordre. Compiler du code, ou aider à développer linux, cependant, vous pourriez rencontrer des problèmes ici ou là avec les bibliothèques si, attention!

/srv - Un grand nombre de fois, ce dossier est utilisé sur les serveurs Web pour contenir des informations accessibles via Internet.

/proc - Il s'agit d'un dossier critique dont vous ne devriez probablement pas vous passer. Le noyau utilise ceci pour organiser les informations des processus (exécutant les programmes, plus ou moins).

/opt - Facultatif. Très souvent, les administrateurs système utiliseront ce dossier pour installer les programmes que vous souhaitez supprimer facilement à la main.Par exemple, sur mon système basé sur gnome ici, j'ai installé les bibliothèques de KDE à/opt pour que je puisse simplement facilement supprimer le dossier entier. Lors de la compilation du logiciel, l'installation par défaut va disperser les bibliothèques, les binaires et les fichiers de configuration dans le répertoire, donc en disant à l'installateur de tout mettre dans/opt, vous pouvez toujours installer le programme, mais vous pouvez le supprimer tout à la fois.

/var - Ce dossier contient des fichiers importants contenant des informations sur l'état du système. Par exemple, le journal des erreurs de votre serveur graphique est contenu dans ce dossier

/usr - Probablement mon dossier favori dans /. Normalement, les programmes qui sont plus orientés vers l'utilisateur et moins vers le fonctionnement du système sont installés dans/usr. GNOME ou KDE sont généralement installés dans ce dossier, et vous trouverez beaucoup de programmes que vous lancez dans l'utilisation quotidienne (comme Firefox, ou Evolution, ou Gedit) situé ici. Descendez dans/usr et vous trouverez un tas de dossiers comme vous le voyez dans /. La raison en est que les programmes peuvent être installés dans un ensemble de dossiers de type racine (comme le programme d'installation l'attend) sans réellement embrouiller le répertoire/avec une pléthore de fichiers. L'éditeur de liens du système sait regarder à la fois/lib et/usr/lib de sorte que toutes les bibliothèques installées dans/usr/lib se trouvent aussi facilement que celles de/lib. De même, les binaires dans/usr/bin sont trouvés aussi facilement que/bin parce que le système sait regarder dans les deux chemins. Le fichier/usr/local contient encore un autre répertoire racine! C'est pour la même raison que le dossier racine dans/usr, mais il est prévu que l'administrateur système installe des programmes plus permanents (généralement ceux qu'il a compilés personnellement). Les raisons de faire tout cela peuvent sembler un peu vagues ou arbitraires mais sont en fait incroyablement utiles si vous essayez d'organiser un système ou de développer de nouveaux logiciels.

+0

Une idée moderne à propos de/usr est qu'il devrait être capable de résider sur un support non inscriptible (comme un CD-ROM), donc tout ce qui devrait normalement changer dans une utilisation normale devrait aller dans/var (ou/home). En outre, vous devriez être capable de regarder/proc, et il y en a beaucoup que vous ne voulez pas changer de façon désinvolte. –

3

Sur Mac OS X, /home est remplacé par /Users et /mnt est remplacé par /Volumes.

+0

Pas la réponse la plus complète, mais utile. La question portait sur Unix et MacOSX sur Unix. –

1

juste ajouter certaines choses ne sont pas mentionnées ci-dessus:

/home — user home directories, e.g. 
      /home/bob 
      /home/mary 
      etc. 

parfois utile qu'un utilisateur a un ~/etc et ~/bin aussi. (jusqu'à l'utilisateur bien sûr)

/etc - fichiers de configuration, scripts de démarrage. quelques (anciennes) versions d'Unix ont coincé des binaires ici, donc je ne pense pas que l'histoire ait jamais été une application stricte du contenu.de nos jours, cela signifie "fichiers de configuration".

/mnt - un endroit pour monter plus des systèmes de fichiers à

/sbin - binaires système, ou binaires du serveur, daemons, peut-être besoin d'être super-utilisateur pour exécuter (par opposition à/bin)

/root - de racine répertoire personnel. Une version d'Unix que j'ai vu avait le répertoire de base de la racine en tant que/et juste des choses éparpillées là. c'est plus propre :)

Questions connexes