Tengo un ejecutable Quiero ejecutar el ejecutable en la terminal con el nombre solo como otros comandos.
Puedo poner mi en el ejecutable /usr/local/bino podría sumar su PATHa ~/.bashrc. Ambos funcionarán.
¿Qué es mejor? ¿Hay alguna diferencia?
Tengo un ejecutable Quiero ejecutar el ejecutable en la terminal con el nombre solo como otros comandos.
Puedo poner mi en el ejecutable /usr/local/bino podría sumar su PATHa ~/.bashrc. Ambos funcionarán.
¿Qué es mejor? ¿Hay alguna diferencia?
Respuestas:
Por ejemplo, déjame asumir que tienes un ejecutable myscript. Necesitas ejecutarlo desde una terminal como,
/path/to/myscript
Cambio de nivel de usuario
Si agrega el PATHejecutable a ese ~/.bashrc, puede ejecutar el ejecutable con el nombre solo desde cualquier lugar ( ya se mencionó Avinash Raj ), como
myscript
Pero el cambio se verá afectado en el nivel de usuario . Eso significa que si tiene algún otro usuario, no podrá acceder al ejecutable solo con su nombre. Si tienen el permiso adecuado, necesitan ejecutar el ejecutable como,
/path/to/myscript
Además, no podrá ejecutar el script como sudo, ya que no está en la PATHraíz. Para ejecutarlo como sudonecesita,
sudo /path/to/myscript
cambio de nivel del sistema
Si coloca su script /usr/local/bin, puede acceder a todo el sistema y para todos los usuarios. En ese caso, cualquier usuario puede ejecutar su ejecutable como (sujeto a tener los permisos adecuados)
myscript
En ese caso, puede ejecutar el ejecutable como sudotambién,
sudo myscript
Ahora elija una forma dependiendo de su necesidad.
Agregar la ubicación del archivo a su $PATHvariable en su ~/.bashrcarchivo solo le permitirá ejecutarlo desde cualquier ubicación, mientras que ponerlo dentro /usr/bin/permitirá a todos los usuarios en su sistema ejecutar ese archivo desde cualquier ubicación.
¿Porqué es eso? Porque su ~/.bashrcarchivo solo es visible para usted como usuario. Por lo tanto, todos los cambios variables realizados se limitan a usted. Mientras que agregar ese archivo a /usr/binpermitirá que el archivo permanezca allí para todos los usuarios y dado que /usr/binestá presente en la $PATHvariable a menos que alguien lo elimine, permitirá que todos los usuarios lo ejecuten desde cualquier ubicación.
Si coloca el archivo ejecutable en /usr/bino /usr/local/bin, podrá ejecutar ese programa solo especificando el nombre (en your-programlugar de /usr/local/bin/your-program).
Si en su lugar agrega el directorio que contiene el programa al ~/.bashrcarchivo PATH, entonces cualquier archivo ejecutable presente en ese directorio puede iniciarse simplemente escribiendo su nombre.
Solo como complemento a la respuesta de @souravc ...
Para el "Cambio de nivel de usuario", en lugar de editar el ~/.bashrcarchivo, simplemente puede crear el directorio $HOME/bin/y colocar sus scripts allí.
El directorio se agregará automáticamente a PATH(al menos desde Ubuntu 12.04), lo que significa que podrá ejecutar todos los scripts / ejecutables dentro de ese directorio con un simple:
myscript
Solo mis 2 centavos. :)
PD: intenté publicar esto como un comentario a la respuesta de @souravc, pero no tenía suficiente reputación. :-(