web-dev-qa-db-fra.com

Pourquoi le fichier .profile n’est-il pas créé lors de l’ouverture d’un terminal?

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?
35
B Seven
  1. Parce que les terminaux n'exécutent généralement pas de shells de connexion par défaut. Ils ont aussi généralement des options pour exécuter des shells de login, qui font .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é bin dans $HOME, le .profile par défaut pour Ubuntu l'ajoute à votre PATH. Étant donné que .profile est obtenu lors de la connexion (même avec une connexion à l’interface graphique), il doit faire partie de votre PATH pour les shells autres que de connexion démarrés après une nouvelle connexion. Il n’est pas faux si un répertoire apparaît deux fois dans PATH, voir cette question U & L pour plus de détails.
32
muru

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 login. Shell

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

enter image description here

8
Billious