GNU/Linux >> Tutoriels Linux >  >> Linux

Commande introuvable dans Bash corrigé

Chaque administrateur système a eu cette erreur au moins une fois dans un shell :"bash :command not found ".

Cependant, vous étiez à peu près sûr d'avoir correctement écrit la commande ou d'avoir installé l'outil que vous essayez réellement d'exécuter.

Alors pourquoi obtenez-vous cette erreur ?

Le "bash :commande introuvable ” Une erreur peut se produire pour diverses raisons lors de l'exécution de commandes dans un terminal Bash.

Aujourd'hui, nous examinons les différentes façons de résoudre le problème "commande introuvable ” erreur dans Bash.

Concepts Bash et PATH

Avant de commencer avec la solution, il est important d'avoir quelques concepts sur ce que la variable d'environnement PATH est et comment il est lié aux commandes que vous exécutez.

PATH est une variable d'environnement qui répertorie les différents répertoires que votre terminal bash visitera afin de trouver des utilitaires sur votre système.

Pour jeter un œil à votre variable d'environnement PATH, utilisez simplement le "echo ” commande avec le CHEMIN variables.

$ echo $PATH

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

Comme vous pouvez le voir, PATH est défini par une liste de différents chemins système délimités par des deux-points.

Ce sont les différents chemins visités par mon interpréteur pour exécuter des commandes.

Si je devais supprimer une entrée du PATH, ou supprimer le PATH tous ensemble, vous ne seriez pas en mesure d'exécuter des commandes dans le bash sans spécifier le chemin complet vers le binaire.

C'est un point important à comprendre car ne pas pouvoir exécuter une commande ne signifie pas que votre binaire a été supprimé sur le système.

Maintenant que vous comprenez comment les variables d'environnement sont liées à votre interpréteur bash, voyons comment vous pouvez résoudre votre erreur.

Vérifiez que le fichier existe sur le système

La première étape pour résoudre cette erreur consiste à vérifier que la commande que vous recherchez existe réellement sur le système.

Il n'y a vraiment aucun intérêt à aller plus loin si vous avez mal orthographié la commande ou si vous ne l'avez pas du tout installée.

Disons par exemple que vous ne pouvez pas exécuter le "ls " commande.

Vérifiez que le binaire existe réellement en le recherchant sur le système.

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

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

Avec la commande find, vous pouvez localiser le binaire avec le répertoire où il est stocké.

C'est assez important car nous devrons ajouter ce chemin à notre variable d'environnement PATH plus tard.

Vérifiez votre variable d'environnement PATH

La plupart du temps, vous rencontrerez le message "bash :commande introuvable ” après avoir modifié votre environnement PATH afin d'ajouter de nouvelles entrées.

Tout d'abord, vérifiez que le chemin que vous avez recherché auparavant est répertorié dans votre variable d'environnement PATH.

$ echo $PATH

/home/user/custom:/home/user

Comme vous pouvez le voir ici, le répertoire "/bin" n'est pas listé dans ma variable d'environnement PATH.

Par défaut, le PATH est défini dans le fichier "/etc/environment" pour tous les utilisateurs du système.

Si votre variable d'environnement PATH est différente de celle définie dans le fichier d'environnement, c'est que vous avez remplacé le PATH.

Maintenant que vous avez deux choix :soit vous savez où vous avez exporté la variable PATH, soit vous ne le savez pas.

Correction de vos scripts de profil :bashrc, bash_profile

Dans la plupart des cas, vous avez modifié le .bashrc ou le .bash_profile fichier afin d'ajouter votre remplacement PATH.

Pour rechercher où vous avez exporté votre PATH , exécutez la commande suivante

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

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

Cette commande renvoie le fichier où le PATH a été exporté ainsi que le numéro de ligne.

Modifiez ce fichier et ajoutez le chemin de la première section à la déclaration d'exportation.

$ nano /home/user/.bashrc

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

Enregistrez votre fichier et quittez l'éditeur nano.

Pour que les modifications soient appliquées, vous devrez sourcer votre terminal bash actuel.

Cela garantira que le fichier .bashrc est exécuté à nouveau dans le terminal shell actuel.

$ source .bashrc

Pourquoi pouvez-vous exécuter la source sans avoir à spécifier le chemin complet ?

Parce que "source" est une commande intégrée du shell .

Essayez d'exécuter « source intégrée .bashrc » par exemple

Maintenant, vous pouvez essayer d'exécuter la commande que vous n'avez pas réussi à exécuter auparavant.

$ ls

file  devconnected  file2  directory1  swap file3

Génial !

Vous avez corrigé le "bash :commande introuvable ” erreur sous Linux !

Réinitialisez correctement la variable d'environnement PATH

Même si vous résolvez votre problème, vous devrez définir correctement votre variable d'environnement PATH si vous ne voulez pas modifier votre fichier bashrc tout le temps.

Tout d'abord, regardez la variable PATH définie dans le fichier "/etc/environment".

$ cat /etc/environment

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

Afin de réinitialiser votre variable d'environnement PATH sur votre environnement, exportez le PATH défini dans le fichier d'environnement.

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

Maintenant, modifiez votre fichier .bashrc mais utilisez la syntaxe $PATH afin d'ajouter vos chemins à la variable PATH existante.

$ sudo nano ~/.bashrc

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

Quittez le fichier et sourcez votre fichier bashrc pour que les modifications soient appliquées.

$ source ~/.bashrc

$ echo $PATH

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

Génial !

Vous avez bien réinitialisé votre variable d'environnement PATH, vous ne devriez pas obtenir le "bash :command not found ” erreur plus.

Exécutez la commande en tant que sudo

Dans certains cas, votre variable d'environnement PATH peut être parfaitement configurée mais vous devrez exécuter la commande en tant que sudo.

Vous pouvez obtenir cette erreur ou juste un simple "autorisation refusée ” erreur.

Dans tous les cas, assurez-vous d'abord que vous disposez des droits sudo avec la commande sudo.

$ sudo -l

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

Si tel est le cas, vous devriez pouvoir exécuter votre commande en tant que sudo.

$ sudo <command>

Félicitations !

Vous avez résolu le problème "bash :commande introuvable ” erreur sur votre système.

Vérifiez que le package est correctement installé

Dans certains cas, vous pensez que votre commande est installée mais vous ne l'avez pas installée pour commencer.

Disons par exemple que vous cherchez à exécuter le "htop ” mais vous ne pouvez pas le faire.

$ htop

bash : Command 'htop' not found

Pour vérifier si la commande est correctement installée, selon votre distribution, exécutez les commandes suivantes.

$ 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]

Dans tous les cas, vous devrez installer la commande si vous voulez l'exécuter correctement.

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

$ sudo yum install htop       [CentOS/RHEL]

Vous pouvez maintenant essayer d'exécuter la commande manquante.

$ htop

Conclusion

Dans ce tutoriel, vous avez appris comment résoudre le fameux "bash :command not found ” erreur que de nombreux administrateurs système rencontrent chaque jour.

Si vous résolvez votre problème avec une solution qui n'est pas décrit dans l'article, assurez-vous de laisser un commentaire afin d'aider les autres administrateurs.

Si vous êtes intéressé par l'administration système Linux, nous avons une section complète qui lui est consacrée sur le site Web, alors n'hésitez pas à y jeter un coup d'œil.


Linux
  1. bash :netstat :commande introuvable.

  2. ifrename :commande introuvable

  3. ln :commande introuvable

  4. Postgresql -bash :psql :commande introuvable

  5. bash - commande make introuvable

Dépannage de l'erreur "Bash :Commande introuvable" sous Linux

nc :commande introuvable

aws-shell :commande introuvable

rm :commande introuvable

mv :commande introuvable

bash sh - commande introuvable