Venant du monde Windows, j'ai trouvé la majorité des noms de répertoires de dossiers assez intuitifs:
\Program Files
contient des fichiers utilisés par les programmes (surprise!)\Program Files (x86)
contient des fichiers utilisés par des programmes 32 bits sur des systèmes d'exploitation 64 bits\Users
(anciennementDocuments and Settings
) contient les fichiers des utilisateurs, c'est-à-dire les documents et les paramètres\Users\USER\Application Data
contient des données spécifiques à l'application\Users\USER\Documents
contient des documents appartenant à l'utilisateur
\Windows
contient des fichiers qui appartiennent au fonctionnement de Windows lui-même\Windows\Fonts
stocke les fichiers de polices (surprise!)\Windows\Temp
est un répertoire temporaire global
etc. Même si je n'avais aucune idée de ce que faisaient ces dossiers, je pouvais deviner avec une bonne précision d'après leurs noms.
Maintenant, je jette un œil sur Linux et je suis assez confus sur la façon de trouver mon chemin dans le système de fichiers.
Par exemple:
/bin
contient des binaires. Mais pour le faire/sbin
,/usr/bin
,/usr/sbin
et probablement plus que je ne sais pas. Lequel est lequel?? Quelle est la différence entre eux? Si je veux créer un fichier binaire et le mettre à l’échelle du système, où dois-je le mettre?/media
contient des systèmes de fichiers multimédias externes. Mais il en va de même/mnt
. Et aucun d'eux ne contient quoi que ce soit sur mon système pour le moment; tout semble être/dev
. Quelle est la différence? Où sont les autres partitions sur mon disque dur, comme leC:
etD:
qui étaient sous Windows?/home
contient les fichiers utilisateur et les paramètres. C'est beaucoup intuitif, mais alors, qu'est-ce qui est censé entrer/usr
? Et comment se/root
fait-il qu'il soit toujours séparé, même s'il s'agit d'un utilisateur avec des fichiers et des paramètres?/lib
contient des bibliothèques partagées, comme des DLL. Mais il en va de même/usr/lib
. Quelle est la différence?Qu'est - ce que c'est
/etc
? Cela signifie-t-il vraiment «et cetera», ou autre chose? Quels types de fichiers doivent y entrer - globaux ou locaux? Est-ce un fourre-tout pour des choses que personne ne savait où mettre, ou y a-t-il un cas d'utilisation particulier?Quels sont
/opt
,/proc
et/var
? Que représentent-ils et à quoi servent-ils? Je n'ai rien vu de tel dans Windows *, et je n'arrive pas à comprendre à quoi ils pourraient servir.
Si quelqu'un peut penser à d'autres endroits standard qu'il serait bon de connaître, n'hésitez pas à l'ajouter à la question; j'espère que cela peut être une bonne référence pour des gens comme moi, qui commencent à se familiariser avec les systèmes * nix.
* OK, c'est un mensonge. J'ai vu des choses similaires dans WinObj, mais évidemment pas de façon régulière. Je ne sais toujours pas ce que cela fait sur Linux, cependant.
la source
C:\Program Files
,C:\ProgramData
,%HOME%\AppData\Local
,%HOME%\AppData\LocalLow
,C:\Windows\SystemApps
... Tous les exemples où l' on peut trouver executables dans Windows. Et je ne parlerai même pas des fichiers de configuration et du registre, je ne veux pas être encore plus déprimé. PS: je travaille principalement sous Windows.Réponses:
Les distributions Linux utilisent le FHS: http://www.pathname.com/fhs/pub/fhs-2.3.html
Vous pouvez également essayer
man hier
.Je vais essayer de résumer vos réponses du haut de ma tête, mais je vous suggère fortement de lire la FHS:
Pour accéder à un système, vous n'avez généralement pas besoin de / var, / opt, / usr, / home; certains des répertoires potentiellement les plus importants d'un système.
L'un de mes favoris, que certaines personnes n'utilisent pas, est / srv. C'est pour les données qui sont hébergées via des services comme http / ftp / samba. J'ai vu / var beaucoup utilisé pour cela, ce qui n'est pas vraiment son but.
la source
/home/users/username
pour les utilisateurs et/home/services/servicename
pour ce que vous mentionnez/src
. Je pense que cela fonctionne mieux dans la mesure où il est plus polyvalent à partitionner. Vous pouvez l'avoir sur sa propre partition ou utiliser la même partition et vos données utilisateur, ce que je veux souvent faire.Je ne répondrai pas sur ce qu'ils signifient tous (d'autres l'ont fait), mais donnez un peu de contexte historique.
Tout d'abord, rappelez-vous que UNIX a près de 40 ans, à l'époque de la bande de papier et des terminaux codés en dur de 300 bauds vers les ordinateurs centraux (le système Windows XP a près de 10 ans). La dactylographie était lente et le besoin d'efficacité dans la dactylographie l'emportait sur beaucoup d'autres considérations. C'est la raison des commandes de base très courtes (ie 'ls', 'cat', 'cc', 'dd', etc.). La même chose était avec les structures de répertoires. L'idée était que si la commande comportait plus de trois ou quatre caractères, le nom était trop long.
Le répertoire / usr contenait à l'origine les répertoires personnels de l'utilisateur car la plupart des commandes se trouvaient dans / bin et tous les fichiers de périphérique se trouvaient dans / dev. Plus tard, il a été pensé pour rendre le lecteur principal (le système de fichiers racine, '/') petit pour des temps de démarrage plus rapides. Ainsi, d'autres structures comme / usr / bin, / usr / include et / usr / lib ont vu le jour, où / usr était un "lecteur" distinct. Beaucoup plus tard, on pensait qu'il contenait les répertoires personnels des utilisateurs dans / home, encore un autre lecteur. Et bien plus tard que cela, d'avoir un / var (abréviation de variable / changable). Le répertoire / etc signifiait 'et cetera' car c'était l'emplacement de tous les fichiers de configuration du système. Le / mnt a été utilisé comme un emplacement temporaire pour accéder à un lecteur (souvent un lecteur de sauvegarde). Les répertoires comme / opt, / proc et / media sont venus beaucoup plus tard.
Il y en a beaucoup qui sont laissés de côté (comme / usr / local et / net), mais cela donne une brève description des raisons pour lesquelles les noms sont «moins intuitifs».
la source
Comme déjà mentionné ici, les distributions Linux utilisent principalement le FHS, voir ici pour un aperçu de type tutoriel, particulièrement bien adapté pour quelqu'un venant de Windows.
Remarque: les répertoires Windows semblent intuitifs, superficiellement. Mais permettez-moi de vous demander, à quoi appartiennent les paramètres d'un programme, en tant que
*.ini
fichier dans le dossier des programmes, dansDocuments and Settings\User
(\Application Data
ou\Local Settings\Application Data
) ou dans le registre infâme? personne ne le sait, pas même Microsoft. Et ainsi nous pouvons continuer encore et encore.la source