Pourquoi .profile n’est-il pas source lors de l’ouverture d’un terminal?

36

Je viens d'installer Ubuntu 14.04.1 LTS.

Selon .profile,

# ~/.profile: executed by the command interpreter for login shells. 
# This file is not read by bash, if ~/.bash_profile or ~/.bash_login exists.

Il n'y a ni ~ / .bash_profile ni ~ / .bash_login.

Il ne semble pas que le fichier .profile soit à la source lors de l’ouverture d’un terminal.

  1. Pourquoi ne pas source .profile lors de l’ouverture d’un terminal?
  2. Pourquoi .profile existe-t-il s’il n’est pas recherché?
  3. Comment savoir / contrôler les sources lorsqu'un nouveau terminal est ouvert?
  4. Quand un nouveau terminal est ouvert, fait-il un "login"?
  5. Où est le bon endroit pour ajouter $ HOME / bin à mon chemin? .bashrc? Cela posera-t-il un problème car .profile a le même code?
B Seven
la source

Réponses:

34
  1. Parce que les terminaux n'exécutent généralement pas de shells de connexion par défaut. Ils ont également généralement des options pour exécuter des shells de connexion, qui font source .profile.
  2. Pour contrôler le comportement des shells de connexion.
  3. Dépend de la coquille. Pour bash, voir l'ensemble des fichiers de démarrage .
  4. Pas dans un certain sens (mise à jour des enregistrements de connexion, par exemple).
  5. Si vous avez un dossier appelé bindans $HOME, la valeur par défaut .profilepour Ubuntu ne l' ajouter à votre PATH. Étant donné que la .profilesource provient de la connexion (même avec une connexion via une interface graphique), il devrait faire partie de votre programme PATHpour les shells autres que la connexion démarrés après une nouvelle connexion. Ce n’est pas faux si un répertoire apparaît deux fois PATH, consultez cette question U & L pour plus de détails.
muru
la source
3
OK, maintenant c'est logique. Besoin de vous reconnecter à l'interface graphique pour voir les modifications apportées au .profile.
B Seven
1
@BSeven vous pouvez toujours le rechercher manuellement pour chaque shell de ligne de commande: . .profileou source .profile.
muru
. .profileC'est cool et je ne l'ai jamais vu auparavant. Impossible de trouver beaucoup d’informations sur la commande period. Pouvez-vous fournir une référence et des liens vers d'autres raccourcis utiles? Merci!
B Seven
1
@BSeven pour les commandes shell comme .ou source, vous pouvez utiliser help: help .par exemple. En général, voir le Guide du débutant TLDP Bash, Chapitre 3 . Le Guide du débutant Bash est un peu démodé à certains endroits, mais bon comme point de départ. Ou voir d'autres liens dans l' une de mes autres réponses .
muru
8

J'ai trouvé que je devais modifier le profil par défaut. Dans le terminal, cliquez sur Préférences> Profils> Modifier> Commande> Exécuter la commande en tant que shell de connexion.

Ensuite, les nouveaux terminaux devraient générer le script .profile .

entrez la description de l'image ici

Billious
la source
1
Il s'agit d'un hack, car normalement .profile est censé avoir été recherché avant de démarrer le terminal GUI et il est redondant de le source à chaque fois que vous ouvrez une fenêtre de terminal.
Mu Mind