Wenn ich echo $PATH
die doppelte Ausgabe ausführesnap/bin:/snap/binerscheint am Ende und scheint ungewöhnlich.
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
Ist diese Duplizierung unerwünscht? Wenn ja, wie kann dies geändert werden?
Antwort1
Wahrscheinlich gibt es in Ihrer ~/.bashrc
oder in Ihrem einen Befehl, der das hinzufügt , ohne vorher zu prüfen, ob es sich noch im befindet .~/.profile
/snap/bin
$PATH
$PATH
Bedenken Sie, dass doppelte Einträge in der $PATH
Variable keine Auswirkungen haben, wenn Sie einen Befehl ausführen, der sich in Ihrer befindet $PATH
. Eine Verlangsamung kann jedoch auftreten, wenn Sie einen Befehl ausführen, der sich nicht in befindet $PATH
(weil die Befehlssuche nutzlos zwei oder mehr Mal ausgeführt wird, wenn doppelte Einträge vorhanden sind), obwohl ich denke, dass diese Verlangsamung schwer wahrnehmbar ist. Doppelte Einträge sind auch ein wenig ärgerlich, wenn Sie Ihre $PATH
Variable visuell überprüfen möchten.
Wenn Sie doppelte Einträge in Ihrer vermeiden möchten $PATH
, können Sie diesen Befehl in Ihre ~/.profile
Datei einfügen (das heißtder beste Standort für Umgebungsvariablen):
# remove duplicated paths in PATH variable
PATH="$(printf "%s" "$PATH" | awk -v RS=':' '!a[$1]++ {if (NR > 1) printf RS; printf $1}')"
Dieser Befehl dient awk
dazu, jedes Element in der $PATH
Variable zu identifizieren (sie werden durch das :
Zeichen getrennt) und die $PATH
Variable neu zu erstellen, ohne dass doppelte Ordner erneut hinzugefügt werden müssen. Außerdem bleibt die ursprüngliche Sortierung der Ordner innerhalb der $PATH
Variable erhalten.
Sie können ~/.profile
es mit Ihrem bevorzugten Texteditor öffnen. Wenn Sie es über ein Terminal öffnen, brauchen Sie es nicht, sudo
da es Ihrem Benutzer gehört.