Comment exécuter mon propre programme sans spécifier son chemin


11

Supposons que j'ai compilé quelque chose et que je le lance comme ceci:

$ /path/to/my/executable/mycmd
Hello World

Que dois-je faire pour le faire fonctionner comme

$ mycmd
Hello World 

de partout dans mon ordinateur?

Réponses:


15

Ce que vous recherchez, c'est la PATHvariable environnementale. Il indique au shell, où il doit rechercher les programmes. Vous pouvez voir la valeur actuelle de cette variable en utilisant echo:

echo "$PATH"

Maintenant ... La meilleure pratique si vous voulez utiliser un nouveau programme est de l'installer en utilisant le programme de gestion des packages pour votre distribution. Mais dans ce cas, je suppose que vous avez affaire à un programme qui n'est fourni par aucun logiciel disponible. Pour ces programmes, vous avez deux options:

  1. Installez le programme système, dans un endroit où votre système ne pas mettre tous les fichiers installés des paquets. Sur la plupart des systèmes, ces dossiers "sûrs" incluent /usr/local/bin/et /opt/bin/- ceux-ci devraient déjà se trouver dans votre PATH. (Regardez à l'intérieur de ces dossiers et s'il y a beaucoup de fichiers, alors ce n'est pas le bon endroit pour mettre votre propre programme et vous devez regarder les autres dossiers répertoriés dans votre PATH.)
  2. Modifiez votre PATHvariable. C'est moins sûr, car cela définit des dossiers supplémentaires où les programmes peuvent être conservés et quelqu'un pourrait vous jouer un tour, y mettre son propre programme pour que vous puissiez l'exécuter.

    Vous pouvez modifier la PATHvariable temporairement, en utilisant

    export PATH="$PATH:/path/to/your/executable"
    

    ( faites attention à ce qui $PATH suit = ), ou de façon permanente en ajoutant la ligne ci-dessus à votre .bashrcfichier (en supposant que vous l'utilisiez bash).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.