web-dev-qa-db-fra.com

Terminal: Où se trouve le fichier de démarrage du shell?

Je suis un tutoriel appelé Démarrer un projet Django 1.4 dans le bon sens , qui explique comment utiliser virtualenv et virtualenvwrapper, entre autres.

Il y a une section qui se lit comme suit: 

Si vous utilisez pip pour installer des packages (et je ne vois pas pourquoi vous ne le feriez pas), vous pouvez obtenir à la fois virtualenv et virtualenvwrapper en installant simplement ce dernier.

   $ pip install virtualenvwrapper

Une fois installé, ajoutez les lignes suivantes au fichier de démarrage de votre shell (.zshrc, .bashrc, .profile, etc.).

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

Rechargez votre fichier de démarrage (par exemple, la source .zshrc) et vous êtes prêt.

J'utilise Mac OSX et je ne connais pas très bien le terminal. Que veut dire exactement l'auteur par Shell's start-up file (.zshrc, .bashrc, .profile, etc)? Où puis-je trouver ce fichier pour pouvoir ajouter ces trois lignes?

Aussi, que veut-il dire par reload your start up file (e.g. source .zshrc)?

J'apprécierais une réponse détaillée, spécifique à OSX.

29
sgarza62

Fournissez-vous une voix bash, cliquez ici pour obtenir des informations supplémentaires sur un ~/.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).

En savoir plus sur les terminaux et les ordinateurs neufs, ou encore "enregistrer" pour .bash_profile assimilé:

$ source ~/.bash_profile
36
Paul R

Si vous utilisez bash, cela signifie généralement ~/.bash_profile.

Dans Terminal et iTerm, les nouveaux shells sont des shells de connexion par défaut, donc ~/.bashrc n'est pas lu du tout. Si les instructions écrites pour une autre plate-forme vous demandent d'ajouter quelque chose à .bashrc, vous devez souvent l'ajouter à .bash_profile à la place.

Si ~/.profile et ~/.bash_profile existent, seul .bash_profile est lu. .profile est également lu par les autres shells, mais la plupart des éléments que vous ajouteriez à .bash_profile ne fonctionneraient pas avec eux.

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

Lorsque bash est appelé en tant que shell de connexion interactif ou non interactif avec l'option --login, il lit et exécute d'abord les commandes du fichier /etc/profile, si ce fichier existe. Après avoir lu ce fichier, il recherche ~/.bash_profile, ~/.bash_login et ~/.profile, dans cet ordre, puis lit et exécute les commandes de la première qui existe et qui est lisible.

[...]

Lorsqu'un shell interactif qui n'est pas un shell de connexion est démarré, bash lit et exécute les commandes à partir de ~/.bashrc, si ce fichier existe.

6
Lri

J'ai installé Anaconda, alors j’ajoute ces 3 lignes à ~/.bash_profile

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

puis rechargez le profil en:

$ source ~/.bash_profile
1
Dmitry Lysenko

J'utilise une approche qui, à mon avis, est facile à maintenir ... Cela convient également si vous utilisez parfois des systèmes Ubuntu, mais je ne manquerai pas de répondre aux exigences OS de l'OP dans ma réponse.

  1. Créez un fichier .aliases avec votre ou vos alias dans votre répertoire personnel, par exemple. ~/.aliases

  2. Exécutez ce fichier à partir de votre fichier .bashrc (il est exécuté à chaque fois pour un nouveau processus Shell) avec source ~/.aliases. C'est tout ce que vous devez réellement faire pour Ubuntu.

  3. Sur OSX, appelez .bashrc à partir de votre fichier ~/.profile, c’est-à-dire que ~/.bash_profile contient: source ~/.bashrc

0
Michael Durrant