J'ai un exécutable. Je veux exécuter l'exécutable dans le terminal avec le nom seulement comme les autres commandes.
Je peux mettre mon exécutable dans /usr/local/bin
ou ajouter son PATH
à ~/.bashrc
. Les deux vont marcher.
Qu'est-ce qui est mieux? Y a-t-il une différence?
Par exemple, supposons que vous ayez un exécutable myscript
name__. Vous devez l'exécuter depuis un terminal en tant que,
/path/to/myscript
Changement de niveau d'utilisateur
Si vous ajoutez le PATH
de cet exécutable à ~/.bashrc
, vous pouvez exécuter l’exécutable avec le nom uniquement à partir de n’importe où ( Avinash Raj déjà mentionné), comme
myscript
Mais le changement sera affecté au niveau utilisateur . Cela signifie que si vous avez d'autres utilisateurs, ils ne pourraient pas accéder à l'exécutable avec un nom uniquement. S'ils ont la permission appropriée, ils doivent exécuter le fichier exécutable en tant que,
/path/to/myscript
De plus, vous ne pourrez pas exécuter le script en tant que Sudo , car il ne figure pas dans PATH
of root, pour être exécuté en tant que Sudo
name__, vous devez utiliser,
Sudo /path/to/myscript
changement de niveau du système
Si vous mettez votre script dans /usr/local/bin
, il est accessible à l’ensemble du système et à tous les utilisateurs. Dans ce cas, tout utilisateur peut exécuter votre exécutable en tant que (sous réserve de disposer des autorisations appropriées).
myscript
Dans ce cas, vous pouvez exécuter le fichier exécutable sous la forme Sudo
également,
Sudo myscript
Maintenant, choisissez une voie en fonction de vos besoins.
Ajouter l'emplacement du fichier à votre variable $PATH
dans votre fichier ~/.bashrc
ne vous permettra d'exécuter que depuis n'importe quel emplacement, alors que le placer dans /usr/bin/
permettra à tous les utilisateurs de votre système d'exécuter ce fichier à partir de n'importe quel emplacement.
Pourquoi donc? En effet, votre fichier ~/.bashrc
n'est visible que pour vous en tant qu'utilisateur. Tous les changements de variables effectués sont donc limités à vous. Tandis que l'ajout de ce fichier à /usr/bin
lui permettra de rester là pour tous les utilisateurs et puisque /usr/bin
est présent dans la variable $PATH
sauf si quelqu'un le supprime, tous les utilisateurs pourront l'exécuter à partir de n'importe quel emplacement.
Si vous placez le fichier exécutable dans /usr/bin
ou /usr/local/bin
, vous pourrez alors exécuter ce programme en spécifiant uniquement le nom (your-program
au lieu de /usr/local/bin/your-program
).
Si vous ajoutez le répertoire contenant le programme dans le fichier ~/.bashrc
au PATH
, vous pouvez lancer tout fichier exécutable présent dans ce répertoire en saisissant simplement son nom.
Juste pour compléter la réponse de @souravc ...
Pour le "Changement de niveau d'utilisateur", au lieu de modifier le fichier ~/.bashrc
, vous pouvez simplement créer le répertoire $HOME/bin/
et y placer vos scripts.
Le répertoire sera automatiquement ajouté à PATH
(du moins depuis Ubuntu 12.04), ce qui signifie que vous pourrez exécuter tous les scripts/exécutables de ce répertoire avec un simple:
myscript
Juste mes 2 cents. :)
PS- J'ai essayé de poster ceci en tant que commentaire à la réponse de @souravc, mais je n'avais pas assez de réputation. :-(