Casi todos los usuarios de Linux pueden superar los dolores de cabeza relacionados con errores»Comando relacionado no encontrado” siempre que intente ejecutar un script o archivo en una terminal de Linux como usuario sudoer.
Este error simplemente significa que la secuencia de comandos o el archivo que intenta ejecutar no existe en su sistema, o que la variable PATH no conoce su ubicación no especificada.
Esta guía de artículos nos guiará a través del diagnóstico y la solución de esto»Comando relacionado no encontrado«Errores relacionados con sudo.
Tabla de Contenidos
Variables de entorno de Linux
Para los usuarios con cierta experiencia en programación de software, una variable no es más que un marcador de posición mutable para un valor. Por ejemplo, cuando usa el término «Mi computadora«para describir la computadora que está usando, el término»Mi computadora” se utiliza como marcador de posición/variable genérico, ya que puede ser Lenovo, Hp, Mac o Raspberry Pi en un momento dado.
Las variables de entorno de Linux son las únicas variables asociadas con la información de la sesión de inicio de sesión del usuario del sistema. Configuración de estas variables; en la mayoría de los casos esto sucede por defecto durante la creación del usuario y/o la instalación del paquete.
Son útiles porque los scripts, las aplicaciones y el shell del sistema los necesitan para ejecutar de manera efectiva el comando que se está ejecutando. Estas variables pueden ser globales (definidas por el sistema) o locales (definidas por el usuario).
Variable de $PATH de Linux
Al ejecutar comandos en el entorno de terminal del sistema operativo Linux, el sistema Linux tiende a buscar $PATH
Cambiando.
Por ejemplo, en un sistema Linux recién instalado, $PATH
las variables reciben valores predeterminados /usr/bin:/usr/local/bin
Esta instancia le dice al sistema Linux que consulte dos ubicaciones de archivos binarios (/usr/bin
y /usr/local/bin
) antes de ejecutar cualquier comando.
$ echo $PATH
Por ejemplo, la ruta absoluta al binario del comando ls es /usr/bin/ls
.
$ ls -l /usr/bin/ls
Este $PATH
la variable puede ser ejecutada ls comando como:
$ ls
reemplazar:
$ /usr/bin/ls
añadir otros directorios a $PATH
variables, podemos referirnos a los siguientes comandos:
$ PATH=”$PATH:/path/to/this/directory:/path/to/that/directory”.
Uso de archivos de script en Linux
Por ejemplo, suponga que existe el siguiente archivo de script.
$ nano onescript.sh
El contenido del archivo de script.
#!/bin/bash echo "Welcome to LinuxShellTips!"
Guardemos el archivo y hagámoslo ejecutable:
$ chmod u+x onescript.sh
Cuando ejecutamos el script anterior mientras señalamos su ubicación, deberíamos obtener una respuesta:
$ ./onescript.sh
Sin embargo, incluso usando sudo da como resultado el error:
$ onescript.sh or $ sudo onescript.sh
Solucione el error «comando no encontrado» en Linux
si apuntamos a $PATH
Variables para el script anterior clave (directorio de trabajo principal), deberíamos poder ejecutarlo fácilmente sin encontrar «Comando relacionado no encontrado» error.
$ PATH="$PATH:$HOME" $ onescript.sh $ which onescript.sh
Sin embargo, ejecutar el script como el usuario sudoer todavía da como resultado «Comando relacionado no encontrado» error.
$ sudo onescript.sh
arreglo permanente»Comando relacionado no encontrado«Error, necesitamos modificar manualmente /etc/sudoer documento.
Primero, vamos a mover el archivo de script a $HOME/bin
Tabla de contenido:
$ mkdir -p $HOME/bin $ mv onescript.sh $HOME/bin
Ahora vamos a modificar /etc/sudoer documento.
$ sudo nano /etc/sudoer
identificarse con ruta_segura predeterminada y agregue la ruta a la ubicación de su script (en mi caso:$HOME/bin
Esto se traduce en /home/dnyce/bin
).
Guarde el archivo y vuelva a ejecutar nuestro script con sudo:
$ sudo onescript.sh
Finalmente nos deshicimos»Comando relacionado no encontrado” error al usar sudo.
Editando manualmente la variable ruta_segura /etc/sudoers archivo y apuntarlo a basura La ubicación de los archivos binarios donde puede acceder a sus scripts y ejecutables de aplicaciones globalmente sin usar sus rutas absolutas.