Wie füge ich ~ / bin zu meinem Pfad hinzu?

73

Ich habe Probleme, meinen Pfad zu ändern, um Sublime Text 2 hinzuzufügen. Ich habe ein ~/binVerzeichnis hinzugefügt und diesen Befehl ausgeführt :

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

Der Sublink erscheint in ~/bin. Aber ich muss das ~/binVerzeichnis meinem Pfad hinzufügen . Ich bin ziemlich neu darin und weiß nicht, wo mein Weg ist. Ich habe umsah, und festgestellt , dass die wahrscheinlichen Dateien sind entweder .profile, .bash_profileoder.bashrc

Ich habe keine .bash_profile. Zu .profileund .bashrcich fügte hinzu

PATH=$PATH:~/bin/subl
export PATH

Ist das das Richtige? Und wenn ja, wo soll ich es hinzufügen?

Wenn echo $PATHich bekomme, bekomme ich:

/Users/<username>/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/bin:/Users/<username>/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/<username>/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/<username>/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Wenn ich tippe subl, bekomme ich:

-bash: subl: command not found

Vielen Dank!

ps Ich hatte zuvor Macports installiert, wodurch meine .profileDatei geändert wurde . Ich bin mir nicht sicher, ob dies etwas damit zu tun hat. Ich weiß jetzt nicht, wie die Standardeinstellung .profileaussieht.

Graeme
quelle
4
Ihr Titel und Ihr erster Absatz beziehen sich auf /binden Rest Ihrer Frage ~/bin.
Keith Thompson
1
Sie haben Recht - ein Zeichen meiner fast völligen Unkenntnis darüber, was ich mit Verzeichnispfaden mache. Ich habe einen Hack einer Problemumgehung gefunden, indem ich die subl-Datei in die .rvm / bin verschoben habe, die sich in meinem PATH befindet. Das ist alles, was ich jetzt tun musste. Ich werde verstehen, wie man es richtig macht, bis ich UNIX besser lerne.
Graeme
Fügen Sie die ausführbare Datei "subl" nicht in den Literalpfad ein. Geben Sie einfach den Speicherort ein, der ~ / bin ist. Schauen Sie auch in / etc / profile nach, um eine ~ / .bashrc-Quelle zu erhalten, wenn Sie Terminal.app starten.
Bojolais

Antworten:

89

Ich war genauso neu in diesem Bereich wie Sie, was bedeutet, dass ich nicht einmal sicher war, wie ich die Hälfte der Dinge lesen sollte, die mit dem Ändern von PATH zusammenhängen. Schließlich bin ich jedoch auf einen Weg gekommen, der es nicht erfordert, dass Sie subl in die .rvm / bin-Datei einfügen (da dies für etwas anderes bestimmt ist), sondern in das entsprechende Verzeichnis, das ~ / bin ist.

Gehen Sie zu Ihrem Terminal und geben Sie Folgendes ein:

open -a Finder /usr/bin

Dadurch wird Ihr Finder im Verzeichnis / usr / bin geöffnet. Wenn Sie dort sind, öffnen Sie einen neuen Finder, gehen Sie zu Anwendungen, klicken Sie mit der rechten Maustaste auf das Symbol für erhabenen Text und gehen Sie zu Paketinhalt anzeigen und dann zu Inhalt, SharedSupport, bin. Kopieren Sie die Subl-Datei und fügen Sie sie in den anderen Finder ein, der / usr / bin anzeigt

Das ist es! Sie sollten so eingestellt sein, dass Sie den folgenden Befehl verwenden:

subl . (or subl file.name)
Dgamba
quelle
1
Der einfachste Weg, dies zu tun, Requisiten für das Teilen
pbojinov
3
Informationen zur Verwendung eines Symlinks finden Sie in der Antwort von Igor weiter unten.
Obromios
Typing nur open /usr/binmacht das Gleiche wie das Terminal Finder öffnen standardmäßig , wenn Sie nicht über eine App angeben.
Bert
58

Instread aller hier kommentierten. Sie müssen Symlink hinzufügen, um sublime in /usr/local/bin. Es ist kein Root-Zugriff erforderlich. Und Sie müssen kein weiteres bin-Verzeichnis erstellen.

Für erhabenen Text 2

ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/

Für erhabenen Text 3

ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/
Igor A. Melekhine
quelle
2
+1 Das hat bei mir funktioniert - der Schlüssel ist, nicht die Sprachmarkierungen um /Applications...../bin/subl zu verwenden, wie in den Dokumenten von Sublime Text ( sublimetext.com/docs/2/osx_command_line.html ) angegeben.
WorkingMatt
ln: /usr/local/bin/: No such file or directory
Daniel Springer
Es erfordert Root-Zugriff. Ich bekomme , Permission deniedwenn zu schaffen versuchen , /binin/usr/local
Daniel Springer
@ DanielSpringer Sie können dies auf einem frischen Osx-System erleben. Dieses Verzeichnis stammt aus der UNIX-Welt, wird jedoch nicht von osx erstellt. Es wird angezeigt, nachdem einige Apps und Dienstprogramme installiert wurden, die es verwenden. Sie können es selbst erstellensudo mkdir -p /usr/local/bin
Igor A. Melekhine
@ IgorA.Melekhine keine Alternative zu Sudo? Wie Multi-User-freundliche Möglichkeiten? (Ich glaube, was ich letztendlich getan habe, ist ein / bin in ~ zu erstellen)
Daniel Springer
39

Update für zsh Aus irgendeinem Grund funktionierte "~ / bin" in meinem Pfad nicht, als ich kürzlich von bash zu zsh / prezto wechselte. Ich habe es in "/ Users / myusername / bin" geändert und es funktioniert wieder einwandfrei. Ich werde nach einem Grund suchen und aktualisieren, wenn ich es finde. Bitte kommentieren Sie, wenn Sie eine bessere Lösung haben.

Ich weiß, dass dies ein alter Beitrag ist, dachte aber, ich würde eine Lösung für alle anderen dokumentieren, die versuchen, die Anweisungen von sublimetext für die wörtliche Arbeit mit sublime über die OSX-Befehlszeile zu befolgen . Update für Sublime Text 3 Sublime Text 3-Dokumentation

1) Erstellen Sie ein Verzeichnis mit dem Namen "bin" in Ihrem Home-Verzeichnis "~ /"

mkdir ~/bin

2) Erstellen Sie in dem soeben erstellten neuen Verzeichnis einen symbolischen Link zu Ihrer großartigen Text-2-App

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

Das Update für den App-Pfad von Sublime Text 3 unterscheidet sich geringfügig:

ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" ~/bin/subl

3) Befolgen Sie die Anweisungen von Ryan Hoffman zum einfachen Hinzufügen zum Pfad in OSX: Hinzufügen zum Pfad unter Mac OSX Fügen Sie das neu erstellte "~ / bin" mithilfe seiner Technik zum Pfad hinzu. Ihre / etc / path-Datei sieht ungefähr so ​​aus, wenn Sie fertig sind (beachten Sie ~ / bin am Ende):

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
~/bin

4) Öffnen Sie ein neues Terminalfenster, um subl über die Befehlszeile zu verwenden.

Shawn
quelle
3
Dies ist die richtige Antwort, es hat perfekt für mich funktioniert (Mac OSX 10.8.4)
AntonioOtero
Ich habe es an diesen Teil meiner .zshrc-Datei angehängt und es hat funktioniert. # Benutzerkonfiguration export PATH="/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/username/bin"
Will Farley
Möglicherweise muss das Terminal neu gestartet werden.
Kilmazing
Warum sagen so viele Antworten, um ein binIn zu erstellen /usr/local? Diese Antwort funktionierte
Daniel Springer
11

Das musst du nicht tun PATH=$PATH:~/bin/subl. Stattdessen PATH=$PATH:~/binist ausreichend. Auf diese Weise weisen Sie die Shell an, nach ~/binBinärdateien zu suchen . Mit Ihrem Befehl haben Sie die Shell angewiesen, im "Ordner" ~/bin/sublnach Binärdateien zu suchen , was nicht funktioniert. Außerdem müssen Sie die Befehle nicht in zwei Dateien hinzufügen. Fügen Sie sie einmal in Ihre .bashrc. Ich bin kein bashExperte, aber ich kann empfehlen, diesen Blog-Beitrag zu lesen, um weitere Erklärungen zu den verschiedenen Startdateien zu erhalten.

Gnosophilon
quelle
Dieser Blog-Beitrag war nützlich, danke. Ich habe das Problem immer noch nicht richtig gelöst, aber ich habe eine Problemumgehung gefunden, indem ich die subl-Datei in ein Verzeichnis eingefügt habe, das sich in meinem Pfad befindet.
Graeme
7

Ich möchte eine alternative Lösung für dieses Problem vorschlagen. Verwenden Sie ein Verzeichnis, das sich bereits in Ihrem Pfad befindet. So was:

$ sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

tl; dr

Ich bin in Yosemite (OS X 10.10) auf dasselbe Problem gestoßen, bei dem bei einer Neuinstallation des Betriebssystems das Verzeichnis ~ / bin nicht vorhanden ist und sich nicht in Ihrem Pfad befindet. Es gibt jedoch bereits viele nützliche Stellen auf Ihrem Weg, an denen Sie den Symlink zu Sublime platzieren können.

Zum Beispiel sind hier die Elemente, die sich derzeit in meinem Pfad befinden (verwenden Sie $ echo $PATH, um eine Liste zu erhalten):

/Applications/Postgres.app/Contents/Versions/9.3/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin:/usr/local/bin
/usr/local/mysql/bin

Sie können ganz einfach das Skript ändern , um einen Standort zu verwenden bereits in Ihrem Weg durch den Teil zu ändern , die sagt ~/bin/sublzu/usr/local/bin/subl

Wenn Sie also den folgenden Befehl ausführen, wird Ihr Ziel erreicht.

$ sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
Greg Hemphill
quelle
Das ist es! Dies ist die Antwort, die für OSX 10.10 und höher akzeptiert werden sollte. Der Schlüssel ist, das / usr / local / bin / subl mit sudo nano / etc / path zu Ihren Pfaden hinzuzufügen. Dann können Sie den Symlink ausführen.
Cgossain
1
Funktioniert hervorragend in El Capitan (OS X 10.11). Vielen Dank!
JuanBoca
3

Sie müssen zuerst einen symbolischen Link zu erstellen /usr/bin. Ein symbolischer Link - oder SymLink - ist ein Alias ​​oder eine Verknüpfung zu einem Verzeichnis. Gehen Sie wie folgt vor:

  1. Stellen Sie zunächst mithilfe der Terminal-Befehlszeile sicher, dass Sie sich in Ihrem Home-Verzeichnis befinden

    cd ~

  2. Erstellen Sie einen symbolischen Link zu Ihrem usr/binVerzeichnis.

    ln -s /usr/bin bin

    Wobei ln= Link erstellen, -s= symbolisch, gefolgt von [target diectory]und[name of link]

  3. Testen Sie Ihren neuen Link

    cd bin

    Dies sollte Sie zu Ihrem ~/bin- gleichen wie bringen /usr/bin. Das ~zeigt an, dass darin ein langer Pfad versteckt ist.

  4. Kehren Sie jetzt zu Ihrem Home-Ordner zurück, um den sublBefehl zu installieren

    cd ~

  5. Installieren Sie das Befehlszeilentool Sublime Text 2. Ich werde verwenden sudo, um alle Berechtigungsblöcke zu umgehen.

    sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

    Du solltest gut gehen! Testen Sie es, indem Sie einfach sublals Befehlszeile eingeben, und es sollte Sublime Text 2 vom Terminal aus starten.

mpaiva
quelle
2

Machen Sie es einfach auf dem Terminal:

sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/bin/subl

Dort wird mein Sublime gespeichert. Versuchen Sie, den Pfad zu Sublime einzugeben, da Ihre Version möglicherweise abweicht.

subl . 

Sollte gut funktionieren.

Cassioscabral
quelle
2

Ich hatte kürzlich mit diesem Problem zu kämpfen. Ich habe festgestellt, dass das ~nicht zu Ihrem Home-Verzeichnis im Pfad erweitert wird. Zumindest war es nichts für mich.

Das habe ich getan, damit es funktioniert.

export PATH=$PATH:$HOME/bin

Mein sublwurde aus dem Anwendungsverzeichnis mit meinen ~/binAnweisungen für das Aufbrühen von Fässern verknüpft . Leider wurde der Pfad nie aktualisiert.

EHLOVader
quelle
1

Hier sind die vollständigen Anweisungen dazu (für Sublime Text 3 ):

  1. Überprüfen Sie Ihren Systemintegritätsschutzstatus mit dem folgenden Befehl:

    $ csrutil status
    

    Wenn es aktiviert ist, gehen Sie bitte folgendermaßen vor:

    1. Starten Sie das Wiederherstellungsbetriebssystem von OS X, indem Sie den Computer neu starten und beim Start Befehlstaste + R gedrückt halten.

    2. Starten Sie Terminal über das Menü Dienstprogramme.

    3. Führen Sie den folgenden Befehl aus:

      $ csrutil disable
      $ reboot
      

    Dies ist auf eine Sicherheitsfunktion von OS X zurückzuführen, die als Systemintegritätsschutz bezeichnet wird und vor unbefugtem Zugriff auf Systemspeicherorte und -prozesse schützt. Wenn diese Funktion aktiviert ist , können Sie den Inhalt von / usr / bin nicht ändern.

  2. Erstellen Sie einen Symlink von / usr / bin zu ~ / bin :

    $ sudo ln -s /usr/bin ~/bin
    
  3. Erstellen Sie einen Symlink vom CLI-Tool Sublime Text 3 zu ~ / bin :

    $ sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl ~/bin
    
  4. Probier es aus.

    $ subl .
    
Birkhoff Lee
quelle
1
echo $PATH

und benutze einen der bereits vorhandenen Pfade. In diesem Beispiel "/ usr / local / bin"

sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

wenn das System zurückkehrt No such file or directory

sudo mkdir /usr/local/bin/
sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

Testen Sie, ob es funktioniert

subl

Dies ist für Sublime Text 3.

funkelnd
quelle
Ich folgte ein paar der oben genannten, nup. Ich habe das getan - ja. Danke Kumpel, nett und einfach.
Danjah
0

folgendes funktioniert bei mir. Ich habe Sublime Version 3 und poste es hier, wenn jemand Hilfe sucht:

sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /bin/subl
avi
quelle
0

Es scheint, als ob in Yosemite der Befehl tatsächlich für Sublime 3 ist, aber ich kann mich irren:

    ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/
William Koplitz
quelle