GNU/Linux >> Tutoriales Linux >  >> Linux

Comando no encontrado en Bash arreglado

Cada administrador del sistema recibió este error al menos una vez en un shell:“bash:comando no encontrado “.

Sin embargo, estaba bastante seguro de que escribió el comando correctamente o de que instaló la herramienta que realmente está tratando de ejecutar.

Entonces, ¿por qué recibes este error?

El “bash:comando no encontrado El error ” puede ocurrir por varias razones cuando se ejecutan comandos en un terminal Bash.

Hoy vamos a echar un vistazo a las diferentes formas de resolver el "comando no encontrado ” error en Bash.

Conceptos de Bash y PATH

Antes de comenzar con la solución, es importante tener algunos conceptos sobre lo que la variable de entorno PATH es y cómo se relaciona con los comandos que ejecuta.

RUTA es una variable de entorno que enumera los diferentes directorios que su terminal bash visitará para encontrar utilidades en su sistema.

Para echar un vistazo a su variable de entorno PATH, simplemente use el "echo ” con el comando RUTA variables.

$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Como puede ver, PATH se define mediante una lista de diferentes rutas del sistema delimitadas por dos puntos.

Son los diferentes caminos visitados por mi intérprete para ejecutar comandos.

Si tuviera que eliminar una entrada de la RUTA, o eliminar la RUTA por completo, no podría ejecutar comandos en bash sin especificar la ruta completa al binario.

Es un punto importante de entender porque no poder ejecutar un comando no significa que su binario haya sido eliminado en el sistema.

Ahora que comprende cómo se relacionan las variables de entorno con su intérprete bash, veamos cómo puede resolver su error.

Verificar que el archivo existe en el sistema

El primer paso para solucionar este error es verificar que el comando que busca realmente existe en el sistema.

Realmente no tiene sentido seguir adelante si escribió mal el comando o si no lo instaló en absoluto.

Digamos, por ejemplo, que no puede ejecutar el "ls " dominio.

Verifique que el binario realmente exista buscándolo en el sistema.

$ /usr/bin/find / -name ls 2> /dev/null

/bin/ls
/usr/lib/klibc/bin/ls

Con el comando de búsqueda, puede ubicar el binario junto con el directorio donde está almacenado.

Es bastante importante porque necesitaremos agregar esta ruta a nuestra variable de entorno PATH más tarde.

Verifique su variable de entorno PATH

La mayoría de las veces, se encontrará con el mensaje “bash:comando no encontrado ” después de cambiar su entorno PATH para agregar nuevas entradas.

Primero, verifique que la ruta que buscó antes esté listada en su variable de entorno PATH.

$ echo $PATH

/home/user/custom:/home/user

Como puede ver aquí, el directorio "/bin" no enumerado en mi variable de entorno PATH.

De forma predeterminada, la RUTA se define en el archivo "/etc/environment" para todos los usuarios del sistema.

Si su variable de entorno PATH es diferente de la definida en el archivo de entorno, es porque ha anulado la RUTA.

Ahora que tiene dos opciones:o sabe dónde exportó la variable PATH o no.

Corregir las secuencias de comandos de su perfil:bashrc, bash_profile

En la mayoría de los casos, modificó el .bashrc o el .bash_profile para agregar su anulación de PATH.

Para buscar donde exportaste tu PATH , ejecuta el siguiente comando

$ /usr/bin/grep -rn --color "export PATH" ~/. 2> /dev/null

./.bashrc:121:export PATH="/home/devconnected"

Este comando devuelve el archivo donde se exportó la RUTA, así como el número de línea.

Edite este archivo y agregue la ruta desde la primera sección a la declaración de exportación.

$ nano /home/user/.bashrc

export PATH="/home/devconnected:/bin"

Guarde su archivo y salga del editor nano.

Para que se apliquen los cambios, deberá obtener su terminal bash actual.

Esto asegurará que el archivo .bashrc se ejecute nuevamente en el terminal de shell actual.

$ source .bashrc

¿Por qué puede ejecutar la fuente sin tener que especificar la ruta completa?

Porque "fuente" es un comando integrado de shell .

Pruebe a ejecutar "incorporado fuente .bashrc" por ejemplo

Ahora, puede intentar ejecutar el comando que no pudo ejecutar antes.

$ ls

file  devconnected  file2  directory1  swap file3

Impresionante !

Reparaste el “bash:comando no encontrado ” error en Linux!

Restablecer la variable de entorno PATH correctamente

Incluso si resuelve su problema, deberá definir su variable de entorno PATH correctamente si no desea modificar su archivo bashrc todo el tiempo.

Primero, eche un vistazo a la variable PATH definida en el archivo “/etc/environment”.

$ cat /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

Para restablecer su variable de entorno PATH en su entorno, exporte la PATH definida en el archivo de entorno.

$ export=PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

Ahora, modifique su archivo .bashrc pero use la sintaxis $PATH para agregar sus rutas a la variable PATH existente.

$ sudo nano ~/.bashrc

export PATH="$PATH:/home/devconnected"

Salga del archivo y obtenga su archivo bashrc para que se apliquen los cambios.

$ source ~/.bashrc

$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/devconnected

Impresionante !

Ha restablecido con éxito su variable de entorno PATH, no debería obtener el "bash:comando no encontrado ” error más.

Ejecutar el comando como sudo

En algunos casos, tu variable de entorno PATH puede estar perfectamente configurada pero tendrás que ejecutar el comando como sudo.

Puede recibir este error o simplemente un simple "permiso denegado ” error.

En cualquier caso, primero asegúrese de tener derechos sudo con el comando sudo.

$ sudo -l

User user may run the following commands on ubuntu:
    (ALL : ALL) ALL

Si este es el caso, debería poder ejecutar su comando como sudo.

$ sudo <command>

Felicitaciones !

Has resuelto el “bash:comando no encontrado ” error en su sistema.

Verifique que el paquete esté correctamente instalado

En algunos casos, cree que su comando está instalado pero no lo instaló para empezar.

Digamos, por ejemplo, que está buscando ejecutar el "htop ” pero no puedes hacerlo.

$ htop

bash : Command 'htop' not found

Para verificar si el comando está correctamente instalado, según su distribución, ejecute los siguientes comandos.

$ dkpg -s htop     [Ubuntu/Debian]

dpkg-query: package 'htop' is not installed and no information is available
Use dpkg --info (= dpkg-deb --info) to examine archive files,
and dpkg --contents (= dpkg-deb --contents) to list their contents.

$ rpm -qa | grep htop    [CentOS/RHEL]

En cualquier caso, deberá instalar el comando si desea ejecutarlo correctamente.

$ sudo apt-get install htop   [Ubuntu/Debian]

$ sudo yum install htop       [CentOS/RHEL]

Ahora puede intentar ejecutar el comando que faltaba.

$ htop

Conclusión

En este tutorial, aprendiste cómo puedes resolver el famoso “bash:comando no encontrado ” error que muchos administradores de sistemas encuentran todos los días.

Si resuelve su problema con una solución que no descrito en el artículo, asegúrese de dejar un comentario para ayudar a otros administradores.

Si está interesado en la administración del sistema Linux, tenemos una sección completa dedicada a ella en el sitio web, así que asegúrese de echarle un vistazo.


Linux
  1. ifrename:comando no encontrado

  2. rm:comando no encontrado

  3. mv:comando no encontrado

  4. ln:comando no encontrado

  5. bash sh - comando no encontrado

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

aws-shell:comando no encontrado

w:comando no encontrado

df:comando no encontrado

du:comando no encontrado

Postgresql -bash:psql:comando no encontrado