Linux – commande introuvable

Sous Linux, si vous avez le message commande introuvable alors que vous pensez qu’elle est bien installée.

Exemple sous Debian 10 avec la commande pwck :

pwck -r
 bash: pwck : commande introuvable

On peut effectuer une recherche de la commande, ici pwck, avec whereis :

whereis pwck
 pwck: /usr/sbin/pwck /usr/share/man/man8/pwck.8.gz

On voit ici que la commande pwck se trouve sous /usr/sbin, à noter que l’on voit également où se trouvent les pages de manuel.

Si le système ne trouve pas la commande pwck, c’est que son chemin d’accès /usr/bin est absent de la variable d’environnement PATH.

Si l’on veut consulter le contenu de la variable PATH (en respectant la casse) :

echo $PATH
 /home/dominique/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Je vois que /usr/sbin ne figure pas dans la variable.

Pour la durée de la session

Pour ajouter /usr/sbin à la variable PATH :

export PATH=$PATH:/usr/sbin

Si je contrôle à nouveau le contenu de la variable PATH, /usr/sbin doit s’y trouver.

Ma commande pwck -r est maintenant fonctionnelle à condition d’être administrateur, root, sous Debian ou avec sudo sous Ubuntu (dans son cas).

Pour modifier PATH de façon permanente

Voir l’article :

Recherche des fichiers sous Linux et la variable PATH

Recherche des fichiers sous Linux et la variable PATH

locate et updatedb

updatedb

En administrateur.

updatedb

ou

sudo updatedb

Pour mettre à jour la base d’indexation utilisée par la commande locate.

locate

locate sources.list
 /etc/apt/sources.list
 /etc/apt/sources.list.d
 /etc/apt/sources.list.d/official-package-repositories.list
 /usr/share/doc/apt/examples/sources.list
 /usr/share/man/de/man5/sources.list.5.gz
 /usr/share/man/fr/man5/sources.list.5.gz
 /usr/share/man/it/man5/sources.list.5.gz
 /usr/share/man/ja/man5/sources.list.5.gz
 /usr/share/man/man5/sources.list.5.gz
 /usr/share/man/nl/man5/sources.list.5.gz
 /usr/share/man/pt/man5/sources.list.5.gz
 /var/lib/dpkg/info/mintsources.list
 /var/lib/dpkg/info/python3-pkg-resources.list

Pour effectuer une recherche rapide d’un chemin.

Si les commandes locate et updatedb ne sont pas présentes, on installe le paquet mlocate. Vous pouvez exécuter updatedb (en administrateur ou avec sudo) avant locate si nécessaire.

find

Recherche de fichiers depuis un répertoire de départ et sa descendance avec la commande find (en administrateur ou avec sudo).

find /etc -name sources.list ou sudo find /etc -name sources.list
 /etc/apt/sources.list
find /var/log/ -name "syslog" ou sudo find /var/log/ -name "syslog"
 /var/log/syslog
 /var/log/installer/syslog

Avec le caractère jockers * qui correspond à 0 ou n caractères pour rechercher par exemple tous les fichiers .png.

find -name ".png" ou sudo find -name ".png"
 ./Images/test.png
 ….

which

Les commandes externes sont fournies par des fichiers, which permet de les retrouver (pas besoin d’être administrateur).

which python
 /usr/bin/python
which bash
 /bin/bash
which pwd
 /bin/pwd

whereis

whereis localise l’exécutable (comme which) , les sources et la page de manuel d’une commande (pas besoin d’être administrateur).

whereis python
 python: /usr/bin/python /usr/bin/python2.7-config /usr/bin/python3.7m-config /usr/bin/python3.7m /usr/bin/python3.7-config /usr/bin/python2.7 /usr/bin/python3.7 /usr/lib/python2.7 /usr/lib/python3.7 /etc/python /etc/python2.7 /etc/python3.7 /usr/local/lib/python2.7 /usr/local/lib/python3.7 /usr/include/python3.7m /usr/include/python2.7 /usr/include/python3.7 /usr/share/python /usr/share/man/man1/python.1.gz
whereis -m bash    -m pour les pages de manuel
 bash: /usr/share/man/man1/bash.1.gz

La variable d’environnement PATH

Si vous avez installé un paquet, une commande, que le système ne trouve pas, vous pouvez la localiser avec whereis et ajouter le chemin d’accès de son dossier à la variable PATH.

Pour voir le contenu de la variable PATH (pas besoin d’être administrateur) :

 echo $PATH

Exemple, pour ajouter /usr/sbin à la variable d’environnement PATH (pas besoin d’être administrateur) :

export PATH=$PATH:/usr/sbin

Voir un cas dans l’article suivant :

Iftop surveiller le trafic réseau depuis un terminal sous Ubuntu ou Linux Mint et Debian

À la déconnexion PATH reprendra sa valeur par défaut, donc /usr/sbin n’existera plus dans PATH.

Pour modifier PATH de façon permanente

On peut éditer le fichier de configuration du Shell de connexion. Pour le Shell BASH il s’agit de /home/user/.bashrc.

Attention, vous devez remplacer user par votre nom d’utilisateur !

On peut utiliser un éditeur de texte ou utiliser la commande suivante :

echo 'export PATH=$PATH:/usr/sbin' >> /home/user/.bashrc

La ligne est ajoutée à la fin du fichier. Pour que la modification soit prise en compte, vous devez redémarrer votre ordinateur.

Plus d’informations

Si vous travaillez sur un système sans interface graphique, il peut être nécessaire de modifier la variable PATH pour la session afin d’avoir accès aux commandes permettant de redémarrer le système et de modifier également la variable PATH de façon permanente pour que cela soit pris en compte après le redémarrage.

J’ai dû modifier la variable PATH sous Debian 10.


Fichiers systèmes

Les fichiers systèmes que j’ai déjà eu l’occasion de modifier ou de consulter.

Quelques fichiers systèmes sous Linux

Iftop surveiller le trafic réseau depuis un terminal Sous Ubuntu ou Linux Mint et Debian

La commande iftop permet de visualiser rapidement le trafic sur vos interfaces réseau. On utilise la commande iftop en administrateur, précédée de sudo sous Ubuntu et Linux Mint.

Pour installer iftop sous Linux Mint ou Ubuntu depuis un terminal :

sudo apt-get install iftop

Depuis un terminal sous Debian en administrateur root  (avec su) :

su
apt-get install iftop

Pour lancer iftop  sous Ubunru et Linux Mint et écouter la première interface disponible :

sudo iftop

Sous Debian en administrateur :

iftop

Pour afficher une vue dynamique du trafic r réseau passant par l’interface nommée enp0s3 sous Ubuntu et Linux Mint :

sudo iftop -i enp0s3

Sous Debian en administrateur :

iftop -i enp0s3

Pour afficher les adresses IP sous Ubuntu et Linux Mint :

sudo iftop -n

Sous Debian en admdinistrateur :

iftop -n

Pour afficher les ports sous Ubuntu et Linux Mint :

sudo iftop -P

Sous Debian en administrateur :

iftop -P

Pour afficher l’aide pendant l’utilisation [H].

Pour quitter iftop [Q]


Pour obtenir le nom de vos interfaces réseau sous Ubuntu, Linux Mint :et Debian

ifconfig ou ip address


Pour afficher l’aide

man iftop ou iftop ?


Problèmes rencontrés pour l’installation du paquet iftop sous Debian 10

Si l’on installe le paquet iftop sous Debian 10 et que l’on a le message « bash : iftop : commande introuvable ». C’est que le système ne trouve pas iftop qui est sous /usr/sbin (ce que vous pouvez vérifier avec la commande locate si elle est installée ou avec la commande whereis). La cause est l’absence de ce chemin d’accès dans la variable d’environnement PATH.

Pour voir le contenu de la variable PATH (pas besoin d’être administrateur) :

echo $PATH

Pour ajouter /usr/sbin à la variable PATH (pas besoin d’être administrateur) :

export PATH=$PATH:/usr/sbin

Plus d’informations

On peut chercher l’existence d’une commande en utilisant whereis.

Exemple :

whereis iftop
 iftop: /usr/sbin/iftop /usr/share/man/man8/iftop.8.gz

Si vous voulez aller plus loin, vous pouvez utiliser une application comme Wireshark :

Wireshark

La page de mon site consacrée aux commandes Shell et le réseau :

Les commandes Shell et le réseau