[bash] bashrc/bash_profile
[bash] bashrc/bash_profile
Bonjour,
Je configure mon .bashrc et mon .bash_profile,
Dans mon bashrc j'ai mis les alias et les fonctions pour bash, et dans le bash_profile j'ai ajouté les variables LS, PATH, les couleurs pour les man, je voulais savoir si c'était mieux de faire ainsi, ou de tout mettre dans le bashrc ?
Je configure mon .bashrc et mon .bash_profile,
Dans mon bashrc j'ai mis les alias et les fonctions pour bash, et dans le bash_profile j'ai ajouté les variables LS, PATH, les couleurs pour les man, je voulais savoir si c'était mieux de faire ainsi, ou de tout mettre dans le bashrc ?
Re: [bash] bashrc/bash_profile
Il y a pas mal de documentation, exemple: tapeKarxo a écrit : ↑mar. 27 août 2019, 01:01 Je configure mon .bashrc et mon .bash_profile,
Dans mon bashrc j'ai mis les alias et les fonctions pour bash, et dans le bash_profile j'ai ajouté les variables LS, PATH, les couleurs pour les man, je voulais savoir si c'était mieux de faire ainsi, ou de tout mettre dans le bashrc ?
file:///usr/share/doc/bash/bashref.html
dans ton navigateur...J'ai, comme indiqué dans ce texte, un
.bash_profile
qui renvoie à .bashrc
: Code : Tout sélectionner
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc
.bashrc
.Mais j'ai bien séparé les alias dans un fichier
.bash_aliases
et les fonctions dans .bash_functions
et passé les instructions suivantes dans .bashrc pour les inclure : Code : Tout sélectionner
#renvoi au fichier d'alias
[ -f ~/.bash_aliases ] && source ~/.bash_aliases
#renvoi au fichier des fonctions
[ -f ~/.bash_functions ] && source ~/.bash_functions
.bashrc
Il y a aussi
.profile
, le mien : Code : Tout sélectionner
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# if running zsh
if [ -n "$ZSH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.zshrc" ]; then
. "$HOME/.zshrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
.zsh_aliases
et .bash_aliases
par exempleRe: [bash] bashrc/bash_profile
Bonjour,
Les configurations perso je les ajouterais toutes dans bashrc de cette façon tu es sûr qu'elles seront actives aussi bien pour les login shell que les non-login shell vu que par défaut sur Arch le .bash_profile exécute aussi le .bashrc.
-
- Chu Ko Nu
- Messages : 404
- Inscription : dim. 19 juin 2011, 18:53
- Localisation : dans le neuf trois
Re: [bash] bashrc/bash_profile
Bonjour,
Les profiles sont sourcés ou exécutés à l'ouverture de session.
Ils contiennent tout ce qui a un sens pour une session (variables d'environnement, actions à exécuter au démarrage d'une session, ... ).
les shells rc sont exécutés au lancement d'un script.
Ils contiennent tout ce qui a un sens pour l'exécution d'un script (alias, fonctions, ...).
Comme lxdm, certains ( tous ?) gestionnaires de connexion n'utilisent pas le fichier ~/.bash_profile.
Il est donc préférable d'utiliser le fichier ~/.profile.
Pour couvrir tous les cas de figure et notamment l'ouverture de session depuis un tty, on ajoute la ligne ci-dessous au shell_profile adéquat.
En procédant de cette façon les variables d'environnement sont définis à un seul endroit pour toute la session, indépendamment du shell utilisé.
Sourcé des shells rc dans ~/.profile, comme le fait waintsea, doit être évité.
Les profiles sont sourcés ou exécutés à l'ouverture de session.
Ils contiennent tout ce qui a un sens pour une session (variables d'environnement, actions à exécuter au démarrage d'une session, ... ).
les shells rc sont exécutés au lancement d'un script.
Ils contiennent tout ce qui a un sens pour l'exécution d'un script (alias, fonctions, ...).
Comme lxdm, certains ( tous ?) gestionnaires de connexion n'utilisent pas le fichier ~/.bash_profile.
Il est donc préférable d'utiliser le fichier ~/.profile.
Pour couvrir tous les cas de figure et notamment l'ouverture de session depuis un tty, on ajoute la ligne ci-dessous au shell_profile adéquat.
Code : Tout sélectionner
[[ -f ~/.profile ]] && . ~/.profile
Sourcé des shells rc dans ~/.profile, comme le fait waintsea, doit être évité.
Re: [bash] bashrc/bash_profile
Merci pour votre aide, du coup .bash_profile n'est lu que depuis la connexion d'un tty c'est ça ?
Le contenu de mon .bash_profile j'ai jute à le transférer dans .profile et de sourcer .profile avec .bash_profile
Donc en ce qui concerne les alias, fonctions... PS1 etc, j'ai tout mis dans mon bashrc
Par contre tout ce qui est par exemple :
export EDITOR=vim, ou le path, les couleurs des ls, vous l'auriez plutôt mis dans le bashrc ou dans le profile ?
Le contenu de mon .bash_profile j'ai jute à le transférer dans .profile et de sourcer .profile avec .bash_profile
Donc en ce qui concerne les alias, fonctions... PS1 etc, j'ai tout mis dans mon bashrc
Par contre tout ce qui est par exemple :
export EDITOR=vim, ou le path, les couleurs des ls, vous l'auriez plutôt mis dans le bashrc ou dans le profile ?
-
- Chu Ko Nu
- Messages : 404
- Inscription : dim. 19 juin 2011, 18:53
- Localisation : dans le neuf trois
Re: [bash] bashrc/bash_profile
ce n'est pas ce que j'ai écrit. Notamment signifie entre autre. Je ne connais pas tous les gestionnaires de connexion.
notes issues de ma documentation personelle
Code : Tout sélectionner
LXDM, GDM, XDM, LIGHTDM :
exécute/source /etc/r[lx,g,x,light]dm/Xsession et n'utilise pas /bin/bash -login
voir /etc/r[lx,g,x,light]dm/Xsession pour connaitre les fichiers sourcés.
kdm(kde4) fait probablement la même chose
SLIM :
n'a pas de dossier /etc/slim, tout est dans le fichier slim.conf
il est recommandé d'utiliser exec /bin/bash -login /etc/X11/Xsession %session comme login_cmd.
Lit et exécute tout d'abord /etc/profile s'il existe. Après lecture de ce fichier,
recherche ~/.bash_profile, ~/.bash_login, et ~/.profile, dans cet ordre,
puis exécute les commandes se trouvant dans le premier fichier existant et accessible en lecture.
Si ~/.bash_profile existe, y sourcer ~/.profile.
Conclusion :
avoir uniquement un .profile dans son $HOME devrait fonctionner avec tous les display manager.
pour xdm qui exécute .xinitrc, on y sourcera .profile.
export EDITOR peut être utilisée ailleurs que dans bash, donc profile, idem pour le path.
pour ls j'utilise l'alias ls='ls -Aplth --color=auto --group-directories-first', donc bashrc.
Re: [bash] bashrc/bash_profile
avi3000 a écrit : ↑mar. 27 août 2019, 19:10En fait je n'utilise pas de gestionnaire de connexion, si j'aurais utilisé lightdm si je suis tes recommendations j'aurais mis tout ce que je dois mettre dans .bash_profile, dans .profile, vu qu'ils sourcent profile, c'est ça ?
Dans mon cas, j'utinise xinitrc, c'est pour ça que je me demandais si il fallait les mettre dans le .bash_profile, il me semblait qu'il vérifiait .bash_profile
Pour t'aiguiller, voilà le contenu de mes fichiers :
.bashrc
.bash_profile
.xinitrc
Tu aurais mis le contenu d'un fichier plutôt dans un autre ?