Aujourd'hui, je voulais exécuter la commande ss -tpla
pour voir les connexions réseau. À ma grande surprise, j'ai error: unknown option -t
. Puis j'ai vérifié l'emplacement de la commande ss
:
~$ whereis ss
ss: /bin/ss /usr/local/bin/ss /usr/share/man/man8/ss.8.gz
Comme vous le voyez, j'ai deux commandes ss
, une dans /bin/ss
et l'autre dans /usr/local/bin/ss
.
J'aurais peut-être installé une autre application portant le même nom à partir du code source dans /usr/local/bin/ss
. Je ne me souviens pas quand ni de son utilisation, mais ce n'est pas la commande que je veux exécuter. Chose étrange, c'est que quand je cours
ss -tpla
il redirige la commande vers /usr/local/bin/ss
je peux exécuter la commande réelle ss
avec
/bin/ss -tpla
Je pensais que /bin
avait la priorité sur les autres chemins.
Ma question est de savoir ce qui détermine les priorités des chemins système et comment je peux les remplacer.
Vous pouvez donner la priorité à /bin/ss
en créant un lien symbolique avec ce dernier.
Sudo mkdir /opt/ss
Sudo ln -s /bin/ss /opt/ss/
et ajoutez /opt/ss
à votre chemin avant/usr/local/bin
export PATH=/opt/ss:$PATH
$ echo $PATH
/opt/ss:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
pour rendre ce permanent, ajoutez à la fin de ~/.profile
PATH=/opt/ss:$PATH
Votre chemin fait.
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:
/bin:/usr/games:/usr/local/games
et s'il vous plait, ne changez pas simplement le chemin (cela changera probablement plus que "ss"). Utilisation
/bin/ss -tpla