Il existe deux façons de vous permettre d'exécuter le binaire sans spécifier son chemin (sans inclure la création d'alias ou de fonctions shell pour l'exécuter avec un chemin absolu pour vous) :
- Copiez-le dans un répertoire qui se trouve dans votre
$PATH
. - Ajoutez le répertoire où il se trouve à votre
$PATH
.
Pour copier le fichier dans un répertoire de votre chemin, par exemple /usr/local/bin
(où les logiciels gérés localement doivent aller), vous devez avoir des privilèges de superutilisateur, ce qui signifie généralement utiliser sudo
:
$ sudo cp -i mybinary /usr/local/bin
Il faut veiller à ne pas écraser les fichiers existants dans le répertoire cible (c'est pourquoi j'ai ajouté -i
ici).
Pour ajouter un répertoire à votre $PATH
, ajoutez une ligne dans votre ~/.bashrc
fichier (si vous utilisez bash
):
PATH="$HOME/bin:$PATH"
... si le binaire est en $HOME/bin
.
Cela a l'avantage que vous n'avez pas besoin d'avoir des privilèges de superutilisateur ou de modifier/ajouter quoi que ce soit dans le système de base sur votre machine. Il vous suffit de déplacer le binaire dans le bin
répertoire de votre répertoire personnel.
Remarque, modifications apportées à .bashrc
prend effet lorsque le fichier est sourcé la prochaine fois, ce qui se produit si vous ouvrez un nouveau terminal ou si vous vous déconnectez et vous reconnectez, ou exécutez source ~/.bashrc
manuellement.
Vous devriez en savoir plus sur la variable PATH. Je soupçonne fortement que vous devriez l'utiliser (ou le modifier) de manière appropriée.
Je veux pouvoir le mettre dans le répertoire bin
Je suppose que vous voulez dire /bin/
ou /usr/bin/
. Je ne suis pas sûr qu'il soit sage d'y ajouter vos propres programmes. Il serait peut-être préférable de mettre un lien symbolique à l'intérieur (par exemple, en utilisant quelque chose comme ln -sv $(realpath foobar.out) /usr/bin/
), si vous voulez absolument que votre programme y apparaisse (ce qui, à mon humble avis, est probablement une erreur puisque vous vous trompez avec le gestionnaire de paquets de votre distribution).
Probablement en train d'installer votre programme en /usr/local/bin/
est beaucoup plus sage (laisser à la fois /bin/
et /usr/bin/
intact, tel qu'il est fourni et géré par votre distribution Linux). Voir LSB et en savoir plus sur la norme de hiérarchie des fichiers.
... comme les commandes à l'échelle du système, par exemple ....
cd
Il s'agit d'une forte idée fausse de votre part (dans la variante originale de votre question, vous avez à juste titre supprimé cd
plus tard). cd
n'est pas et ne peut pas être un exécutable, c'est (et doit être) une commande intégrée de votre shell.
Vous voudrez peut-être lire la Programmation Linux avancée téléchargeable gratuitement. pour comprendre pourquoi cd
ne peut pas être un exécutable (le répertoire de travail courant fait partie de l'état de chaque processus, et chaque processus a le sien et peut le changer en utilisant chdir(2)...)
install /path/to/oobar.out /usr/local/bin/