Ändern Sie die Standardversion von Nano unter Mac OS X

1508
Michael Nielsen

Ich habe in meinem Mac OS X-Terminal standardmäßig Nano 2.0.6 bei der Ausführung installiert nano. Ich habe Nano 2.9.1 in /usr/local/Cellar/nano/2.9.1/bin/nano.

Wie ändere ich die Standardeinstellung nanoim Terminal auf Version 2.9.1?

Ich verwende Mac OS X 10.13.1.

1

3 Antworten auf die Frage

2
Kamil Maciorowski

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, $PATHwird 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 nanosofort verwenden möchten .)

Dieser Ansatz hat folgende Vorteile:

  • Ihre $PATHAufenthalte 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 $PATHVerzeichnisses. Jedes Verzeichnis kann viele ausführbare Dateien enthalten, die Sie jedoch unbedingt lskennen 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/.profileenthä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 ~/.profilewurde als Kopie von erstellt /etc/skel/.profile, daher ist der Code von Anfang an dabei. Dies bedeutet, dass jede neue Shell-Sitzung ihre $PATHprivate Version einbezieht bin/. Ich musste nur das Verzeichnis erstellen.


Hinweis 2: $PATHDenken 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 hashdafür integrierte Funktionen. Verwenden Sie hash -rwenn nötig.

Wenn Sie $PATHganz am Anfang einer Shell-Sitzung anpassen (wie in .profile), gibt es kein solches Problem.

Unter macOS passt ~ / Library / bin etwas besser in die Home-Ordner-Organisation. ~ / Library ist ein versteckter Ordner, der Dinge enthält, auf die automatisch zugegriffen wird (z. B. durch Aufnahme in `$ PATH`), anstatt sie manuell auszuwählen (z. B. in einem Dialogfeld" Öffnen "). Gordon Davisson vor 6 Jahren 0
@ GordonDavisson Vielen Dank. Meine Antwort erwähnt dies jetzt. Kamil Maciorowski vor 6 Jahren 0
2
fd0

Sie können einen symbolischen Link von /usr/local/Cellar/nano/2.9.1/bin/nanobis erstellen/usr/local/bin

ln -s /usr/local/Cellar/nano/2.9.1/bin/nano /usr/local/bin/nano 

oder Sie könnten einen Alias ​​erstellen.

alias nano=/usr/local/Cellar/nano/2.9.1/bin/nano 
1
Michael Nielsen

Scheint:

export PATH="/usr/local/Cellar/nano/2.9.1/bin:$PATH" 

macht den Trick