Avant aujourd'hui, j'utilisais le terminal dans une certaine mesure pour accéder aux répertoires et en sortir, ainsi que pour modifier les dates des fichiers à l'aide de la touch
commande. J'avais réalisé toute l'étendue du terminal après avoir installé un script amusant sur Mac et chmod 755
dû utiliser le fichier pour le rendre exécutable par la suite.
J'aimerais savoir ce qui /usr/local/bin
est, cependant. /usr/
, Je suppose, est l'utilisateur de l'ordinateur. Je ne sais pas pourquoi /local/
, cependant. Cela correspond évidemment à l'ordinateur local, mais étant donné qu'il se trouve sur l'ordinateur (ou sur un serveur), serait-il vraiment nécessaire? Ça ne va /usr/bin
pas bien?
Et c'est quoi /bin
? Pourquoi cette zone est-elle habituellement utilisée pour installer des scripts sur le terminal?
Proche.
Unix a débuté en tant que système d'exploitation multi-utilisateur, donc ce n'est pas "l'utilisateur", c'est "les utilisateurs ", mais au pluriel.
Avant AT & T Unix System V Release 4 (SVR4) est sorti en 1988 avec ses outils de gestion des utilisateurs en défaut à la création de répertoires personnels des utilisateurs dans
/home
, l'emplacement était classique/usr
.¹ Votre$HOME
répertoire aurait peut - être été/usr/jfw
sur un III système boîte./usr
contenait également, comme aujourd'hui,/usr/bin
,/usr/lib
, etc. L' expérience a montré que les répertoires séparant la maison était une bonne pratique de la gestion du système, donc avec le/home
changement de politique dans SVR4, il a laissé derrière tout ce que nous considérons aujourd'hui comme appartenant à/usr
./usr
Il restait néanmoins une bonne raison de conserver le nom: il restait des fichiers qui n'avaient pas besoin d'être disponibles jusqu'à ce que le système soit démarré suffisamment loin pour permettre une utilisation interactive normale. C'est-à-dire que les parties du système d'exploitation axées sur l' utilisateur ont été laissées . Cela signifiait que/usr
le volume physique pouvait être différent, ce qui était une bonne chose à l'époque des disques durs de 92 Mo de la taille des machines à laver .Les premiers systèmes Unix avaient pris soin de garder les fichiers de base du système d'exploitation
/usr
afin que vous puissiez toujours démarrer en mode mono-utilisateur², même si le/usr
volume était démontable pour une raison quelconque. Le volume racine contenait suffisamment d'outils pour le/usr
remettre en ligne.Plusieurs saveurs Unix ne pas tenir compte maintenant ce vieux principe de conception puisque même les petits systèmes embarqués ont suffisamment de place pour les deux fichiers de volume racine traditionnels et tous
/usr
sur un seul volume.³ Red Hat Enterprise Linux, Solaris et Cygwin symlink/bin
à/usr/bin
et/lib
de/usr/lib
sorte qu'il n'y a plus toute différence entre ces répertoires.Oui. Il fait référence au fait que les fichiers sous
/usr/local
sont supposés être particuliers à ce système unique. Les fichiers qui sont génériques de quelque manière que ce soit doivent vivre ailleurs.Cela a également des racines dans la manière dont les systèmes Unix étaient couramment utilisés il y a plusieurs décennies, lorsque tout cela était standardisé. Encore une fois, les disques durs de l'époque étaient volumineux, très coûteux et peu stockés selon les normes actuelles. Pour économiser de l'argent et de l'espace sur les disques, un laboratoire rempli de boîtes Unix partageaient généralement la plupart de leurs
/usr
connexions via NFS ou un autre protocole de partage de fichiers réseau. Ainsi, chaque boîte n'avait pas besoin de sa propre copie redondante. boîte irait en dessous/usr/local
, ce qui serait un volume distinct de/usr
.Cet héritage historique est la raison pour laquelle il reste la valeur par défaut pour la plupart des logiciels Unix tiers à installer
/usr/local
lorsqu'ils sont installés manuellement. La plupart de ces logiciels vous permettront d’installer le paquet ailleurs, mais si vous ne le faites pas, vous obtenez le paramètre de sécurité par défaut, qui n’interfère pas avec d’autres emplacements d’installation courants ayant des objectifs plus spécifiques.Il y a de bonnes raisons de faire installer le logiciel ailleurs. L'équipe macOS d'Apple fait cela lorsqu'elle construit, par exemple, à
bash
partir du code source GNU Bash . Ils utilisent/
comme préfixe d’installation, en remplaçant la/usr/local
valeur par défaut, pour que Bash finisse dans/bin
.Un autre exemple est la manière dont les anciens systèmes Linux ont séparé leur logiciel d'interface graphique
/usr/X11R6
pour le séparer descurses
logiciels de ligne de commande et des logiciels traditionnels . Cela a été fait simplement en remplaçant le/usr/local
préfixe par défaut par/usr/X11R6
.⁵En abrégé, "binaire" signifie dans ce contexte "un fichier qui n'est pas du texte brut". La plupart de ces fichiers sont des exécutables sur un boîtier Unix, de sorte que ces deux termes sont devenus synonymes dans certains milieux. ("S'il te plaît, construis-moi un binaire pour RHEL 7, Fred.")
Les fichiers texte sur un système Unix vivent ailleurs:
/etc
,/usr/include
,/usr/share
, etc.Il était une fois, même les scripts de shell - qui sont des fichiers texte brut - étaient conservés en dehors des
bin
répertoires, mais cette ligne a également été floue. Aujourd'hui, lesbin
répertoires contiennent généralement tout type de fichier exécutable, qu'il soit strictement "binaire" ou non.Notes de bas de page et digressions :
La nature primitive des outils de gestion des utilisateurs antérieurs à SVR4 signifiait que le
HOME=/usr/$NAME
schéma était simplement consigné en tant que convention, et non imposé par défaut par les outils logiciels.Vous pouvez le voir à la page 4-8 du " Guide de l'administrateur système du système Unix System V version 3.2 d' AT & T: vous voyez ici l'AT & T qui recommande l'ancien
/usr/$NAME
schéma de la dernière version majeure d'Unix avant la sortie de SVR4.Dans les systèmes Unix plus anciens, il était assez courant que les administrateurs système choisissent un schéma différent qui leur semblait plus logique. Les gens étant des gens, cela signifiait que beaucoup de programmes différents avaient été inventés.
Un schéma que j'ai rencontré avant de
/home/$NAME
devenir la norme était/u/$NAME
.Un autre système je au début des années 1990 a eu tant d'utilisateurs qu'ils ne pouvaient pas s'adapter à tous les répertoires sur un seul volume physique, alors ils ont utilisé un système comme
/u1/$NAME
,/u2/$NAME
et ainsi de suite, si je me souviens. Le disque sur lequel votre répertoire personnel s'est retrouvé était simplement une question d'espace disponible au moment de la création de votre compte.Vous pouvez démarrer une boîte MacOS en mode mono-utilisateur en maintenant la touche enfoncée Cmd-Spendant son démarrage. Lâchez-vous une fois que l'écran devient noir et que du texte gris clair apparaît. C'est comme si on passait sous le terminal, mais cela recouvre tout l'écran car l'interface graphique n'a pas encore démarré.
Attention, tu cours en tant que
root
.Tapez "exit" à l'invite de la racine utilisateur unique pour quitter le mode utilisateur unique et continuer à démarrer en mode interface graphique multi-utilisateur.
Les systèmes d'exploitation Unixy qui semblent toujours garder les fichiers critiques en mode utilisateur unique ne le sont
/usr
peut - être pas. Une fois, j'ai rendu une boîte FreeBSD 9 non amorçable en passant/usr
à un volume ZFS. J'avais oublié que les fonctionnalités de ZFS à la racine ne se trouvaient pas avant FreeBSD 10, ce qui créait un Catch 22 : le système d'exploitation avait besoin de fichiers/usr
pour pouvoir être monté/usr
!C'était déjà assez grave, mais si FreeBSD 9 gardait toujours son matériel de démarrage pour un utilisateur unique
/usr
, j'aurais pu le réparer. Etant donné qu’il ne démarrerait même pas en mode mono-utilisateur avec le/usr
fait qu’il soit impossible à monter, il est clair que cette tradition avait été violée d’une manière ou d’une autre. Je devais démarrer à partir d'un CD de secours pour remettre le système en service.C'est également ce que nous obtenons
/usr/share
: il sépare les fichiers pouvant être partagés même entre des boîtiers Unix avec différents types de processeurs. En règle générale, les fichiers texte: pages de manuel, dictionnaire, etc."X11R6" faisait référence à la version du système X Window qui sous-tendait les interfaces graphiques Linux au moment où cette convention était répandue. Les systèmes Linux ont généralement cessé de séparer le logiciel d'interface graphique à peu près au moment où X11R6 a été remplacé par X.Org .
Les systèmes Unix d'origine conservaient leurs principaux scripts shell
/etc
afin d'éviter de les mélanger avec les vrais fichiers binaires de/bin
.la source
Je recommanderais de faire référence à Wikipedia pour les questions liées à la structure en général, cela couvrira les bases.
Pour répondre directement à votre question, toutefois:
C'est pourquoi vous avez tendance à trouver une structure similaire entre les deux; / usr / {, local /} {bin, sbin, lib}. Étant nouveau pour le shell, ce bit avec les {} est une extension du shell. Essayez d'exécuter
à partir de votre shell local pour voir comment cela fonctionne.
la source
/usr/local/bin
montre les racines UNIX du dernier Mac OS (son BSD est basé ici).Cela s'est transformé depuis les premières implémentations d'UNIX pour Linux et BSD, mais la convention est restée. Maintenant, ce
/usr/bin
serait pour les programmes et bibliothèques "principaux" ou principaux , alors que ce serait pour les programmes et bibliothèques/usr/local/bin
supplémentaires et non critiques.la source
/usr/nzwulfin
par défaut. Un autre schéma commun. avant la/home
prise en charge du schéma SVR4/u
. Un système que j’ai utilisé très tôt comptait tellement d’utilisateurs qu’ils avaient besoin de plusieurs disques physiques pour stocker leurs fichiers/u/d5/tangent
./usr/local/bin
est l'emplacement par défaut le plus populaire pour les fichiers exécutables, en particulier ceux à code source ouvert.Ce choix est toutefois discutable car, sur les systèmes Unix, il
/usr
a été standardisé au début des années 90 pour contenir une hiérarchie de fichiers appartenant au système d’exploitation et pouvant donc être partagés par plusieurs systèmes utilisant ce système d’exploitation.Ces fichiers étant statiques, le
/usr
système de fichiers peut être monté en lecture seule./usr/local
rejette cette norme car elle est de conception locale donc non partagée; elle doit donc être en lecture-écriture pour permettre la compilation locale et ne fait pas partie du système d'exploitation. Dommage que quelque chose comme/opt/local
n'a pas été choisi à la place ...la source
Je vous recommande d'utiliser
/usr/local
des programmes commerciaux que vous pourriez installer tels que Mathematica. Placez-le dans sa propre partition lors de la configuration. Lorsque vous mettez à niveau votre système d'exploitation, cette partition ne sera pas perturbée et vous ne devrez pas réinstaller son contenu. Utilisez-le donc pour les éléments que vous souhaitez conserver entre les mises à niveau du système d'exploitation.Séparément, assurez-vous de donner
/home
sa propre partition pour cette raison aussi.la source
Cette réponse pourrait être utile aussi.
/ usr / local
L’idée de départ
/usr/local
était d’avoir un répertoire séparé ('local') '/ usr' sur chaque machine en plus/usr
, qui pourrait simplement être monté en lecture seule ailleurs. Il copie la structure de/usr
.Ces jours-ci,
/usr/local
est largement considéré comme un bon endroit pour garder des programmes auto-compilés ou tiers. La/usr/local
hiérarchie est destinée à être utilisée par l’administrateur système lors de l’installation locale du logiciel. Il doit être protégé contre tout écrasement lorsque le logiciel système est mis à jour.Il peut être utilisé pour des programmes et des données partagés entre un groupe d’hôtes, mais non trouvés dans
/usr
. Les logiciels installés localement doivent être placés à l'intérieur et/usr/local
non à/usr
moins d'être installés pour remplacer ou mettre à niveau des logiciels en/usr
.la source