Que dois-je faire si je veux pouvoir exécuter un programme quel que soit mon répertoire actuel? Dois-je créer un lien symbolique vers le programme dans le /bin
dossier?
command-line
aneuryzm
la source
la source
~/bin/
dossier personnel , d’ajouter CE à votre chemin et de créer des liens symboliques dans ce dossier vers tout ce que vous voulez pouvoir exécuter de n'importe où.Réponses:
Si vous tapez simplement
export PATH=$PATH:</path/to/file>
sur la ligne de commande, cela ne durera que la durée de la session.Si vous voulez le changer définitivement, ajoutez-le
export PATH=$PATH:</path/to/file>
à votre fichier ~ / .bashrc (juste à la fin, ça ira).la source
La réponse courte est que pour exécuter le programme, quel que soit votre répertoire, vous devez avoir le répertoire du programme dans votre chemin de recherche. Le problème peut être résolu en plaçant le programme dans un dossier déjà présent dans ce chemin, ou en ajoutant un nouveau dossier au chemin - cela fonctionnera. La meilleure réponse dépend de:
Ce programme est-il un programme téléchargé que vous avez vous-même compilé à partir des sources?
Il est fort probable qu’il aura déjà un mécanisme d’installation. Dans le dossier dans lequel vous avez compilé le programme, en tant que root, exécutez 'make install'
Ce programme est-il un programme téléchargé que vous souhaitez rendre disponible dans le cadre des programmes standard de l’ordinateur?
Cela a du sens de mettre ce type d’application dans un dossier standard. il est assez courant d’utiliser des répertoires tels que / usr / local / bin pour de tels programmes. Vous aurez besoin d'un accès root pour faire cela.
C’est un programme que vous avez écrit pour vous-même et / ou vous n’avez aucun privilège particulier sur votre ordinateur.
Créer un dossier dans votre répertoire personnel appelé 'bin' et y placer le programme. Vous devrez peut-être modifier votre script de connexion pour ajouter le chemin d'accès complet à ce dossier (par exemple, / usr / home / jeremy / bin).
Bien que vous puissiez simplement ajouter son répertoire actuel au chemin de recherche, vous devrez continuer à le faire avec chaque nouveau programme - et cela demande plus de travail à long terme.
la source
Placer un lien vers le fichier dans le
/bin
répertoire n'est pas la meilleure chose à faire pour plusieurs raisons./bin
répertoire est censé être réservé aux programmes nécessaires à l’exécution du système (commechmod
, par exemplemkdir
).Vous pouvez réellement placer (installer) le fichier exécutable dans
/usr/bin/
ou même/usr/local/bin/
. Bien sûr, vous avez manuellement installé le programme à ce stade; votre distribution ne va pas suivre sa progression comme le reste de vos programmes - vous devrez la mettre à niveau manuellement si nécessaire et la supprimer manuellement si vous le souhaitez. De plus, vous devrez savoir de quels paquets cela dépend (on dirait que vous utilisez déjà le programme, donc on s'en occupe, mais en général ...).Sauf si je configure un programme que d'autres utilisateurs devraient utiliser, ce n'est pas ce que je fais habituellement: je crée un répertoire bin uniquement pour moi dans mon répertoire personnel et je modifie mon profil de shell pour l'ajouter
~/bin/
à maPATH
variable d'environnement. Je trouve plus facile de suivre les programmes que j'ai installés de cette façon, car ils sont séparés du reste du système.la source
Si vous souhaitez exécuter une commande
foo
dans le répertoire dans lequel se trouve votre shell, vous avez essentiellement deux options:Tapez
./foo
à l'invite du shell.Ajoutez le
.
répertoire (.
est un nom pour "le répertoire actuel") à laPATH
variable d'environnement; Comment faire cela dépend du shell que vous utilisez:pour les shells de type Bourne (bash, zsh, ksh, etc.) que vous écrivez (voir cette page pour plus d'informations):
pour les shells de type csh (tcsh, csh) que vous écrivez (voir cette page pour plus d’informations):
Notez que 2. constitue un risque de sécurité sur les systèmes multi-utilisateurs: imaginez-vous un
cd
répertoire/tmp
et un utilisateur malveillant a créé un binaire de malware nomméls
ici.la source
Messing avec le
PATH
vous ouvre à exécuter des programmes malveillants par erreur. Standard consiste à installer des éléments "locaux" sous/usr/local
(voir FHS , qui codifie l'utilisation d'Unix: un peu daté mais cela donne une raison),/usr/local/bin
est généralement utiliséPATH
pour tous les utilisateurs.Mes programmes "installés localement" sont dans
$HOME/bin
, définis dans la danse standard./configure --prefix=$HOME ...
, avec quelques alias (bash) pour choisir, par exemple, un git construit par soi-même sur le système (ceux qui ne sont pas conflictuels se trouvent toutPATH
à la fin).la source