GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo corregir un error de Comando no encontrado en Linux

Cuando intenta ejecutar un comando (con o sin sudo ) y recibe un mensaje de error que dice "Comando no encontrado", esto significa que el script o el archivo que intenta ejecutar no existe en la ubicación especificada por su variable PATH. ¿Qué es esta variable y cómo puede ejecutar comandos que no puede encontrar?

Comprender las variables de entorno

En informática, una variable es un marcador de posición para un valor que puede cambiar. Usas variables todos los días en el habla normal, aunque no piensas en ellas como tales. Cuando dices "mi computadora portátil", estás usando "laptop" como una variable genérica o marcador de posición para la computadora que llevas, sin importar si es una Lenovo, una Mac o una Raspberry Pi en un elegante estuche.

Variables de entorno son variables especiales que contienen información sobre su sesión de inicio de sesión. Muchas de estas variables se establecen de forma predeterminada durante la instalación o la creación de usuarios. Se almacenan para que el shell del sistema, las aplicaciones y los scripts los usen al ejecutar comandos.

Hay variables globales o definidas por el sistema y variables locales o definidas por el usuario.

Variables globales

Las variables globales vienen predefinidas en su shell de inicio de sesión, pero no son inmutables y se pueden modificar o eliminar según sus preferencias. Puedes usar el printenv o env comandos para mostrar las variables de entorno en su sistema:

$ env 
SHELL=/bin/bash 
SESSION_MANAGER=local/kiwi.homelinux.local:@/tmp/.ICE-unix/1906,unix/kiwi.homelinux.local:/tmp/.ICE-unix/19
06 
WINDOWID=153092103 
COLORTERM=truecolor 
XDG_CONFIG_DIRS=/home/tux/.config/kdedefaults:/etc/xdg:/etc/kde/xdg 
LESS=-XR 
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1 
HISTCONTROL=:ignorespace:ignoredups:ignorespace:ignoredups 
PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/share/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig 
[...]

El env El comando imprime todas las variables de entorno globales. Las variables distinguen entre mayúsculas y minúsculas y todas las distribuciones de Linux usan mayúsculas para los nombres de variables de entorno de forma predeterminada.

[ Tenga a mano sus comandos, alias y consejos favoritos de Git. Descarga la hoja de trucos de Git. ]

Variables locales

Una variable local existe solo dentro de un shell específico. Por lo tanto, cuando define una variable local, solo está disponible en su shell actual. No se propaga ni persiste en una nueva sesión de shell a menos que lo exporte como una variable global.

Las variables locales a menudo se definen en minúsculas para evitar sobrescribir una variable global con el mismo nombre.

La variable de entorno PATH

La variable de entorno global PATH enumera los directorios en los que su sistema busca comandos ejecutables válidos. De forma predeterminada, contiene directorios estándar que normalmente almacenan ejecutables como /usr/bin , /usr/local/bin , y así sucesivamente.

Cuando escribe un comando, como grep o vim , su sistema busca en todos los directorios enumerados en su variable PATH, en el orden en que aparecen, hasta que encuentra un archivo ejecutable con el mismo nombre. Si no encuentra uno, emite el error "Comando no encontrado".

$ printenv PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/tux/.local/bin:/home/tux/bin

$ env $PATH
env: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/tux/.local/bin:/home/tux/bin

5 formas de corregir los errores "Comando no encontrado"

Hay varias formas de solucionar este problema. Aquí hay cinco de ellos.

1. Incluir la ruta

No todo lo que desea ejecutar debe estar en su camino. Puede ejecutar archivos directamente especificando la ruta al archivo que desea ejecutar. Al identificar la ubicación del archivo, evita la necesidad de que su sistema busque su ruta.

Por ejemplo, suponga que tiene un script llamado hello que quieres correr. Está ubicado en su directorio de inicio y ya lo ha marcado como ejecutable con chmod +x :

$ ~/hello
hello world

Al decirle a su sistema la ubicación del archivo, la variable PATH nunca está involucrada y el archivo se ejecuta como se esperaba.

2. Agregar una nueva ruta

Alternativamente, puede agregar un nuevo directorio a su RUTA. Agregue sus archivos ejecutables a ese directorio y luego podrá ejecutarlos sin proporcionar manualmente una ruta:

$ cp ~/hello ~/.local/bin
$ export PATH=$PATH:$HOME/.local/bin
$ printenv PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/tux/.local/bin

Es posible que desee agregar las nuevas variables de entorno PATH a su shell de inicio de sesión incluyéndolas en su .bashrc archivo como nueva configuración.

3. Copie un archivo a una ubicación de ruta existente

Si desea ejecutar su archivo binario o secuencia de comandos, cópielo en cualquiera de las rutas de directorio ya enumeradas en la variable de entorno PATH:

$ sudo cp ~/hello /usr/local/bin/
$ hello
hello world

4. Dile a Bash dónde buscar

Probablemente la opción más simple, especialmente para scripts o aplicaciones únicas, es decirle a Bash que no considere la RUTA sino que "mire aquí". Haga esto colocando un punto y una barra inclinada delante del comando, secuencia de comandos o nombre de la aplicación. Para el hello secuencia de comandos, se ve así:

$ sudo ./hello
hello world

No se realizan cambios permanentes en el sistema. Esto puede ser útil si está escribiendo un script y desea probarlo antes de copiarlo o moverlo a su ubicación de almacenamiento normal (presumiblemente a lo largo de la RUTA).

5. Instalar un paquete

A veces, cuando intenta usar un comando y Bash muestra el error "Comando no encontrado", puede deberse a que el programa no está instalado en su sistema. Corrija esto instalando un paquete de software que contenga el comando. Por ejemplo, si no tiene instalado Nmap, entonces nmap el comando falla cuando lo escribes en una terminal:

$ nmap
nmap: command not found
$ sudo dnf install --assumeyes --quiet nmap
$ nmap
Nmap 7.92 ( https://nmap.org ) 
Usage: nmap [Scan Type(s)] [Options] {target specification}
[...]

[ ¿Quiere saber más? Regístrese para obtener una prueba gratuita de acceso completo al plan de estudios de Red Hat. ]

Apégate al camino

La variable PATH es una herramienta poderosa que puede usar para personalizar la forma en que su sistema responde a los comandos, así que tómese un tiempo para familiarizarse con ella. Se usa con frecuencia cuando se ejecutan comandos para encontrar el ejecutable del comando.

En este tutorial, aprendió cinco formas de corregir un error de "Comando no encontrado" en su terminal, tres de las cuales se basan en la variable PATH. Ahora que sabe qué son las variables y cómo se encuentran los ejecutables de los comandos, no se sentirá tan desconcertado cuando aparezca el error "Comando no encontrado" en su pantalla.


Linux
  1. Cómo reparar el error de óxido "linker 'cc' no encontrado" en Linux

  2. Cómo corregir el error de "comando de administración" no encontrado en CentOS

  3. Comando no encontrado en Bash arreglado

  4. envsubst:comando no encontrado

  5. comando de linux encontrado pero no encontrado al usar sudo

5 soluciones:cómo corregir el error "Comando Zsh no encontrado" en Linux o macOS

Cómo corregir el error "Comando Yum no encontrado" en Linux [Actualización 2022]

¿Hacer que el comando no se encuentre? Aquí está cómo solucionarlo

Solución de problemas del error "Bash:Comando no encontrado" en Linux

Cómo arreglar el comando Ifconfig no encontrado en CentOS 7

Cómo solucionarlo:el comando curl no encontró un error