Tutoriales

Solucione el error «comando no encontrado» al usar sudo

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.

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/binEsta 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 
Lista de variables de entorno de Linux

Por ejemplo, la ruta absoluta al binario del comando ls es /usr/bin/ls.

$ ls -l /usr/bin/ls
Compruebe la ruta del comando ls
Compruebe la ruta del comando ls

Este $PATH la variable puede ser ejecutada ls comando como:

$ ls

reemplazar:

$ /usr/bin/ls
ejemplo de comando ls
ejemplo de comando 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
Ejecutar scripts en Linux
Ejecutar scripts en Linux

Sin embargo, incluso usando sudo da como resultado el error:

$ onescript.sh
or
$ sudo onescript.sh
error de comando no encontrado
error de comando no encontrado

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
Establezca la variable PATH en el script
Establezca la variable PATH en el script

Sin embargo, ejecutar el script como el usuario sudoer todavía da como resultado «Comando relacionado no encontrado» error.

$ sudo onescript.sh 
error de comando sudo no encontrado
error de comando sudo no encontrado

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).

Agregue la variable PATH a Sudoer
Agregue la variable PATH a Sudoer

Guarde el archivo y vuelva a ejecutar nuestro script con sudo:

$ sudo onescript.sh 
Ejecutar scripts con Sudo en Linux
Ejecutar scripts con Sudo en Linux

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.

LEER  ¿Qué son las rutas absolutas y relativas y por qué las usamos?

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba