Je ne trouve pas .bash_profiledans Ubuntu 14.04 dans mon /home/userrépertoire. J'ai utilisé la ls -acommande pour voir le .bash_profile, mais il n'y a pas un tel fichier.
Il est assez courant que des fichiers de configuration (ou même des répertoires) manquent. Dans ce cas, le logiciel qui doit les lire utilise une configuration par défaut et / ou lit d'autres sources pour récupérer la configuration. Si vous souhaitez modifier un fichier de configuration inexistant, créez-le d'abord.
Bakuriu
Réponses:
84
Ubuntu utilise ~/.profile.
vous pouvez créer votre .bash_profiledans Ubuntu mais vous .profilene pourrez pas le lire.
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.
Alors utilisez ~/.profileau lieu de~/.bash_profile
.profile n'a pas fonctionné pour moi. Je devais modifier .bashrc vim ~/.bashrcpuis. ~/.bashrc
Nahid
L'utilisation de .bash_profile ne fonctionne pas sur Ubuntu. Il utilise Dash comme un shell de connexion graphique, pas Bash, donc bash_profile n'est pas lu.
Jonathan Hartley
Si vous modifiez votre fichier .profile, vous devez vous déconnecter puis vous reconnecter pour voir les modifications.
Jonathan Hartley
8
Lors de l'appel d'un shell de connexion, 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 chercher les autres , donc s'il y a un .bash_profiledans mon $HOMEbash ne cherchera pas .bash_loginet .profileplus.
À partir de ces trois noms de fichier, Ubuntu utilise par défaut, .profilevous pouvez le renommer .bash_profilesi vous le souhaitez:
mv ~/.profile ~/.bash_profile
Maintenant , si nous ouvrons un nouveau shell bash en utilisant bash -l, su - $USER, sudo -u $USER -iou toute autre commande qui fonctionne bash comme shell de connexion, ~/.bash_profileva se source.
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 gdm3comme gestionnaire d’affichage, si nous examinons: /etc/gdm3/Xsessionnous pouvons voir qu’aucun des fichiers ne sera acheté sauf .profile:
# First read /etc/profile and .profilefor file in/etc/profile "$HOME/.profile";doif[-f "$file"];then
source_with_error_check "$file"fidone
Par conséquent, si vous utilisez une interface graphique pour vous connecter, conservez le fichier sous le .profilenom, 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 sont stockées .profile, gdmil ne manque rien, des chargements bash .bash_profilesont en réalité .profile, et en modifiant chacun d’eux, vous obtenez le même résultat.
Manquant .profile?
Si vous n'en avez pas, .profilerécupérez-en une copie d'ici:
cp /etc/skel/.profile ~/.profile
ou
# Remember the note above
cp /etc/skel/.profile ~/.bash_profile
Mais si Bash recherche d’abord le fichier ~ / .bash_profile, comment se fait-il que ce ne soit pas le cas sous Ubuntu? Ubuntu a-t-il modifié Bash? Cela semble étrange. man bashsur Ubuntu décrit toujours comment il va chercher .bash_profile en premier.
Jonathan Hartley
Il cherche d' .bash_profileabord il ne peut pas le trouver (car il n'existe pas) puis cherche .bash_loginne peut pas le trouver à nouveau (car Ubuntu n'utilise pas ces deux noms) il le cherche finalement .profileet oui il est. Donc, si vous créez un .bash_profilein, ~vous écrasez celui d'Ubuntu ~/.profile, c'est le comportement par défaut de bash. Rien n'a été modifié ici.
Ravexina
Bon, c'est ce que je pensais au début aussi! Et ce que vous décrivez se produit sur RHEL. Mais sur Ubuntu, ce n'est pas le cas. Si je crée un .bash_profile, ce n'est pas lu. Je viens de me rendre compte que c'est parce qu'Ubuntu n'utilise plus 'Bash' en tant que shell de connexion graphique. Il utilise 'Dash' à la place. Je pense que cela est vrai depuis environ 18.04.
Jonathan Hartley
Vous manquez le point ici. En fait, nous parlons de la bash elle-même. Ce que je dis ici, c’est qu’Ubuntu crée «.profile» et non les autres. Par conséquent, si nous ouvrons un nouveau shell bash (login shell), c’est dans cet ordre que les fichiers sont lus, Peu importe la distribution que nous utilisons. :)
Ravexina
Si les lecteurs renomment .profile en .bash_profile comme votre réponse le suggère, le fichier ne sera pas lu pour les utilisateurs d’Ubuntu, ni lors de la connexion, ni lors de l’ouverture d’un terminal. Vous avez brisé leur système. Le fichier ne sera lu que s’ils lancent des sessions bash avec l’argument '--login' pour en faire explicitement un shell de connexion. Cela n'arrivera jamais automatiquement sur leur bureau.
Jonathan Hartley
5
Cela signifie que le fichier n'existe pas. Mais, vous pouvez créer le fichier et bashexécuter / sources le fichier s'il bashest appelé en tant que shell de connexion. Donc, tout le temps vous vous connectez via un shell (par exemple via ssh).
Si vous souhaitez que le contenu soit exécuté à chaque fois que vous ouvrez un terminal, vous devez .bashrcplutôt modifier le fichier.
Dans Linux authentique, le fichier .profile est appliqué lorsque vous vous connectez à l'interface graphique ou à distance, ou que vous vous connectez à la console, c'est-à-dire après avoir appuyé sur les touches ctrl + Maj + F2. Il est censé représenter l'heure à laquelle vous vous connectez à la machine pour la première fois, en créant un shell parent de tous les autres processus que vous avez créés par la suite. Je soupçonne que sur WSL, il n’existe aucune chose de telle sorte que votre .profile puisse ne jamais être lu.
Jonathan Hartley
pareil pour moi. ~/.profilejuste pas chargé par défaut dans Ubuntu 18.04
javapowered
0
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.
~/.profile
place.Réponses:
Ubuntu utilise
~/.profile
.vous pouvez créer votre
.bash_profile
dans Ubuntu mais vous.profile
ne pourrez pas le lire.Si nous lisons le contenu .profile:
sortie
Alors utilisez
~/.profile
au lieu de~/.bash_profile
la source
vim ~/.bashrc
puis. ~/.bashrc
Lors de l'appel d'un shell de connexion, bash recherchera ses fichiers de configuration dans cet ordre:
Après avoir trouvé le premier, il cesse de chercher les autres , donc s'il y a un
.bash_profile
dans mon$HOME
bash ne cherchera pas.bash_login
et.profile
plus.À partir de ces trois noms de fichier, Ubuntu utilise par défaut,
.profile
vous pouvez le renommer.bash_profile
si vous le souhaitez:Maintenant , si nous ouvrons un nouveau shell bash en utilisant
bash -l
,su - $USER
,sudo -u $USER -i
ou toute autre commande qui fonctionne bash comme shell de connexion,~/.bash_profile
va se source.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
comme gestionnaire d’affichage, si nous examinons:/etc/gdm3/Xsession
nous pouvons voir qu’aucun des fichiers ne sera acheté sauf.profile
:Par conséquent, si vous utilisez une interface graphique pour vous connecter, conservez le fichier sous le
.profile
nom, 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
:Désormais, vos données sont stockées
.profile
,gdm
il ne manque rien, des chargements bash.bash_profile
sont en réalité.profile
, et en modifiant chacun d’eux, vous obtenez le même résultat.Manquant .profile?
Si vous n'en avez pas,
.profile
récupérez-en une copie d'ici:ou
la source
man bash
sur Ubuntu décrit toujours comment il va chercher .bash_profile en premier..bash_profile
abord il ne peut pas le trouver (car il n'existe pas) puis cherche.bash_login
ne peut pas le trouver à nouveau (car Ubuntu n'utilise pas ces deux noms) il le cherche finalement.profile
et oui il est. Donc, si vous créez un.bash_profile
in,~
vous écrasez celui d'Ubuntu~/.profile
, c'est le comportement par défaut de bash. Rien n'a été modifié ici..bash_profile
, ce n'est pas lu. Je viens de me rendre compte que c'est parce qu'Ubuntu n'utilise plus 'Bash' en tant que shell de connexion graphique. Il utilise 'Dash' à la place. Je pense que cela est vrai depuis environ 18.04.Cela signifie que le fichier n'existe pas. Mais, vous pouvez créer le fichier et
bash
exécuter / sources le fichier s'ilbash
est appelé en tant que shell de connexion. Donc, tout le temps vous vous connectez via un shell (par exemple viassh
).Si vous souhaitez que le contenu soit exécuté à chaque fois que vous ouvrez un terminal, vous devez
.bashrc
plutôt modifier le fichier.la source
/etc/skel/
répertoire..bash_profile
est manquante (et ne fonctionne pas) sur Ubuntu dans des commentaires sur d'autres réponses.Top réponse à utiliser
~/.profile
au lieu de~/.bash_profile
n'a pas fonctionné pour moi.Modification a
.bashrc
travailléJuste:
Note: J'utilise Ubuntu WSL.
la source
~/.profile
juste pas chargé par défaut dans Ubuntu 18.04Si 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
la source