web-dev-qa-db-fra.com

Comment puis-je remplacer la priorité entre les chemins de / bin et / usr / local / bin?

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.

2
kenn

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
2
Tom Piccirello

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
2
Rinzwind