web-dev-qa-db-fra.com

Je ne trouve pas .bash_profile dans Ubuntu

Je ne trouve pas .bash_profile dans Ubuntu 14.04 dans mon répertoire /home/user. J'ai utilisé la commande ls -a pour afficher le .bash_profile, mais ce fichier n'existe pas.

57
Roledenez

Ubuntu utilise ~/.profile.

vous pouvez créer votre .bash_profile dans Ubuntu mais alors .profile ne sera pas lu.

Si nous lisons le contenu .profile:

cat ~/.profile

sortie

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

Donc, utilisez ~/.profile au lieu de ~/.bash_profile

74
nux

Cela signifie que le fichier n'existe pas. Cependant, vous pouvez créer le fichier et bash exécute/source le fichier si bash est appelé en tant que shell de connexion. Donc, chaque heure que vous vous connectez via un shell (par exemple, avec ssh).

Si vous souhaitez que le contenu soit exécuté à chaque fois que vous ouvrez un terminal, vous devez plutôt modifier le fichier .bashrc.

5
chaos

Lors de l'appel d'un login, bash recherchera ses fichiers de configuration dans cet ordre:

[0] ~/.bash_profile
[1] ~/.bash_login
[2] ~/.profile

Après avoir trouvé le premier, il cesse de rechercher les autres. Ainsi, s'il existe un .bash_profile dans mon $HOME bash ne recherchera plus ni .bash_login ni .profile.

À partir de ces trois noms de fichier, Ubuntu utilise par défaut .profile. Vous pouvez le renommer en .bash_profile si vous aimez:

mv ~/.profile ~/.bash_profile

Désormais, si nous ouvrons un nouveau shell bash à l'aide de bash -l, su - $USER, Sudo -u $USER -i ou de toute autre commande exécutant bash en tant que shell de connexion, ~/.bash_profile sera obtenu.

Important à noter:

Ce dont j'ai parlé jusqu'à présent ne concerne que Bash lui-même. Lorsque vous vous connectez au système à partir d'une interface graphique, le gestionnaire d'affichage est responsable de la recherche des fichiers appropriés.

Ubuntu utilise gdm3 en tant que gestionnaire d’affichage. Si nous examinons: /etc/gdm3/Xsession, nous pouvons voir qu’aucun des fichiers ne sera acheté, à l’exception de: .profile:

# First read /etc/profile and .profile
for file in /etc/profile "$HOME/.profile"; do
  if [ -f "$file" ]; then
    source_with_error_check "$file"
  fi
done

par conséquent, si vous utilisez une interface graphique pour vous connecter, conservez le fichier sous le nom .profile sinon vous risqueriez de perdre certaines variables et certains paramètres dans vos environnements.

Je suppose que la meilleure option est de créer un lien symbolique vers .profile:

ln -s ~/.profile ~/.bash_profile

Désormais, vos données résident dans .profile, gdm ne manque de rien, bash charge .bash_profile qui correspond en fait à .profile et, en les modifiant, vous obtenez le même résultat.

Manquant .profile?

Si vous n'avez pas .profile, récupérez-en une copie à partir d'ici:

cp /etc/skel/.profile ~/.profile

ou

# Remember the note above
cp /etc/skel/.profile ~/.bash_profile
3
Ravexina

La meilleure réponse à utiliser ~/.profile au lieu de ~/.bash_profile n'a pas fonctionné pour moi.

Modification de .bashrc travaillé

Juste:

vim ~/.bashrc

Note: J'utilise Ubuntu WSL.

2
cryanbhu

Si vous voulez parler du .bashrc, vous le trouverez dans votre dossier personnel. S'il ne s'y trouve pas, vous pouvez le copier du dossier/etc/skel dans votre dossier personnel.

Si vous avez besoin de plus d’informations à ce sujet, veuillez visiter la page stefaan lippens.

http://stefaanlippens.net/bashrc_and_others

0
Lie