Diese andere Antwort ist gut, vor allem als temporäre Außerkraftsetzung. Der Vollständigkeit halber ist dies der Hauptpunkt davon:
export PATH="/usr/local/Cellar/nano/2.9.1/bin:$PATH"
Das Problem ist: Wenn Sie eine dauerhafte Lösung für mehrere Werkzeuge benötigen, $PATH
wird Ihr Wille unnötig aufgebläht.
So vermeiden Sie dies (unter Debian; die Frage ist für Mac OS X, aber ich glaube, dass die Lösung auch anwendbar ist oder leicht angepasst werden kann). Erstelle deine eigene bin/
:
mkdir ~/bin/
(Bearbeiten: Unter macOS ~/Library/bin/
passt die Heimordnerorganisation etwas besser. Ich habe mich jedoch entschlossen, meine Antwort nicht zu ändern, sondern diesen Pfad an Ihre Bedürfnisse anzupassen.)
Nächstes ändern Sie Ihre $PATH
:
PATH=~/bin:"$PATH"
(Siehe Hinweis 1 unten, wenn Sie es dauerhaft machen möchten.)
Dann verknüpfen Sie die gewünschte nano
(und jede andere Binärdatei) mit Ihrem Benutzer bin/
:
ln -s /usr/local/Cellar/nano/2.9.1/bin/nano ~/bin/
(Siehe Hinweis 2 unten, wenn Sie dies nano
sofort verwenden möchten .)
Dieser Ansatz hat folgende Vorteile:
- Ihre
$PATH
Aufenthalte sind relativ kurz und sauber. - Mit können
ls -l ~/bin/
Sie leicht feststellen, welche Tools Sie mit was überschreiben; Dies ist viel besser als die Analyse eines aufgeblähten$PATH
Verzeichnisses. Jedes Verzeichnis kann viele ausführbare Dateien enthalten, die Sie jedoch unbedingtls
kennen müssen. - Einen Symlink zu entfernen, ihn neu zu erstellen, ist viel einfacher als das Modifizieren
$PATH
, insbesondere innerhalb eines Skripts. - Sie können auch Ihre eigenen Skripte einfügen
~/bin/
.
Anmerkung 1: In meinem Debian /etc/skel/.profile
enthält der folgende Code:
# set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi
My ~/.profile
wurde als Kopie von erstellt /etc/skel/.profile
, daher ist der Code von Anfang an dabei. Dies bedeutet, dass jede neue Shell-Sitzung ihre $PATH
private Version einbezieht bin/
. Ich musste nur das Verzeichnis erstellen.
Hinweis 2: $PATH
Denken Sie daran, dass sich die Shell beim Ändern während einer Sitzung (z. B. um meine Lösung zu testen) an den alten Speicherort aller ausführbaren Dateien erinnert, die sie bereits nach dem alten gesucht hat $PATH
. Gewöhnliche Schalen verwenden hash
dafür integrierte Funktionen. Verwenden Sie hash -r
wenn nötig.
Wenn Sie $PATH
ganz am Anfang einer Shell-Sitzung anpassen (wie in .profile
), gibt es kein solches Problem.