wake-up-neo.com

Terminal: Wo befindet sich die Shell-Startdatei?

Ich folge einem Tutorial namens Starten eines Django 1.4-Projekts in die richtige Richtung , das Anweisungen zur Verwendung von Virtualenv und Virtualenvwrapper enthält.

Es gibt einen Abschnitt, der lautet: 

Wenn Sie Pip zum Installieren von Paketen verwenden (und ich kann nicht erkennen, warum Sie dies nicht tun würden), können Sie sowohl virtualenv als auch virtualenvwrapper erhalten, indem Sie einfach Letzteres installieren.

   $ pip install virtualenvwrapper

Fügen Sie nach der Installation der Shell-Startdatei der Shell (.zshrc, .bashrc, .profile usw.) die folgenden Zeilen hinzu.

   export WORKON_HOME=$HOME/.virtualenvs
   export PROJECT_HOME=$HOME/directory-you-do-development-in
   source /usr/local/bin/virtualenvwrapper.sh

Laden Sie Ihre Startdatei (z. B. Quelle .zshrc) erneut, und Sie können loslegen.

Ich verwende Mac OSX und kenne mich im Terminal nicht so gut aus. Was genau meint der Autor mit Shell's start-up file (.zshrc, .bashrc, .profile, etc)? Wo finde ich diese Datei, damit ich diese drei Zeilen hinzufügen kann?

Was meint er auch mit reload your start up file (e.g. source .zshrc)?

Ich würde mich über eine ausführliche Antwort für OSX freuen.

29
sgarza62

Provavelmente você está usando bash, basta adicionar essas três linhas a ~/.bash_profile:

$ cat >> ~/.bash_profile
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/directory-you-do-development-in
source /usr/local/bin/virtualenvwrapper.sh
^D

onde ^D significa que você digitaControl+D(EOF).

Então feche sua janela de terminal e abra uma nova, ou você pode "recarregar" seu .bash_profile assim:

$ source ~/.bash_profile
36
Paul R

Wenn Sie bash verwenden, bedeutet dies normalerweise ~/.bash_profile.

In Terminal und iTerm sind neue Shells standardmäßig Login-Shells, daher wird ~/.bashrc überhaupt nicht gelesen. Wenn Anweisungen für eine andere Plattform geschrieben werden, die Sie dazu auffordern, etwas zu .bashrc hinzuzufügen, müssen Sie es stattdessen häufig zu .bash_profile hinzufügen.

Wenn sowohl ~/.profile als auch ~/.bash_profile vorhanden sind, wird nur .bash_profile gelesen. .profile wird auch von anderen Shells gelesen, aber viele der Dinge, die Sie zu .bash_profile hinzufügen würden, würden mit ihnen nicht funktionieren.

Von /usr/share/doc/bash/bash.html:

Wenn bash als interaktive Login-Shell oder als nicht interaktive Shell mit der Option --login aufgerufen wird, werden zuerst Befehle aus der Datei /etc/profile gelesen und ausgeführt, sofern diese Datei vorhanden ist. Nach dem Lesen dieser Datei sucht sie in dieser Reihenfolge nach ~/.bash_profile, ~/.bash_login und ~/.profile und liest und führt Befehle aus dem ersten vorhandenen Befehl aus, der lesbar ist.

[...]

Wenn eine interaktive Shell gestartet wird, die keine Login-Shell ist, liest und führt bash Befehle von ~/.bashrc aus, sofern diese Datei vorhanden ist.

6
Lri

Ich habe Anaconda installiert, also füge ich diese 3 Zeilen zu ~/.bash_profile hinzu

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Documents/Python
source /Users/Username/anaconda3/bin/virtualenvwrapper.sh 

und dann das Profil erneut laden durch:

$ source ~/.bash_profile
1
Dmitry Lysenko

Ich verwende einen Ansatz, von dem ich denke, dass er leicht zu warten ist .. __ Es funktioniert auch gut, wenn Sie manchmal Ubuntu-Systeme verwenden, jedoch werde ich sicher die OSX-Anforderung des OP in meiner Antwort berücksichtigen.

  1. Erstellen Sie eine .aliases-Datei mit Ihren Alias ​​(en) in Ihrem Home-Verzeichnis, z. ~/.aliases

  2. Führen Sie diese Datei aus Ihrer .bashrc-Datei (dies wird jedes Mal für einen neuen Shell-Prozess ausgeführt) mit source ~/.aliases aus. Das ist alles, was Sie tatsächlich für Ubuntu tun müssen.

  3. Rufen Sie unter OSX .bashrc aus Ihrer ~/.profile-Datei auf, d. H. ~/.bash_profile enthalten: source ~/.bashrc

0
Michael Durrant