¿Cómo se agrega un script bash a su variable PATH utilizando enlaces simbólicos?

Tengo un server de juegos llamado PocketMine. Así que, básicamente, tengo una carpeta en mi directory de inicio que tiene un script bash para ejecutar el server: ~/PocketMine/start.sh

Cada vez que quiero ejecutar el server, o bien ./start.sh en la carpeta y ./start.sh o PocketMine/./start.sh

Quiero saber cómo agrego un enlace simbólico llamado pocketmine en /usr/local/sbin (una gran cantidad de progs con enlaces simbólicos va aquí) que ejecutará start.sh y usará los contenidos de su directory.

/usr/local/sbin/pocketmine = ~/PocketMine/./start.sh

Llámame flojo pero estoy cansado de grabar en la carpeta y ejecutar el guión en lugar de simplemente escribir un command.

En realidad, no necesita ningún enlace simbólico, solo edite su ~/.bashrc y agregue la siguiente statement:

 PATH=$PATH:$HOME/PocketMine 

Esto evita contaminar su sistema de files con un desorder innecesario como los enlaces simbólicos. Si es un usuario csh / tcsh en lugar de un usuario bash, edite ~/.cshrc y añada

set path = ($ ruta ~ / PocketMine)

Personalmente, daría un paso más en la organización. Crearía un directory ~/bin , y pondría tu script de inicio allí, quizás con un nombre más distintivo como pmstart (no es significativo que sea un script de shell, ¿verdad? Tal vez algún día quieras volver a implementarlo en Python o algo así. Basta con los files ejecutables, por lo general, es una mala idea porque estás exponiendo y codificando un detalle de implementación (el lenguaje de implementación) que a los usuarios finales no les importa, y en el process comprometerte con ese detalle de implementación innecesariamente).

Es probable que $ $ PATH ya incluya $ HOME / bin, pero si no puede agregarlo de manera similar.

Finalmente, hay convenciones históricas / mejores prácticas sobre qué cosas van en los directorys sbin y qué cosas van en los directorys bin . sbin generalmente se reserva para herramientas para administradores, mientras que bin es para utilidades generales del usuario final.

Si solo quiere tener una forma más corta de ejecutar ~/PocketMine/start.sh , puede crear un alias para ello. Agregue la siguiente línea en ~/.bashrc y llame a pm para ejecutar ese script:

 alias pm=~/PocketMine/start.sh 

Si necesita cambiar primero al directory del script, configúrelo como una function:

 function pm ( cd ~/PocketMine && exec ./start.sh "$@" ) 

Si desea poder invocar este atajo desde otro script y no solo desde un shell interactivo, establezca el acceso directo en un script que coloque en cualquiera de los directorys en $PATH . La secuencia de commands debe ser un file ejecutable (por ejemplo, chmod a+rx ~/bin/pm ) y contiene

 #!/bin/sh cd ~/PocketMine && exec ./start.sh "$@"