Salut à tous, j’ai besoin d’exécuter un programme stocké dans ./local/bin. Pour celà j’ajoute dans .bashrc la ligne export PATH="$PATH:~/.local/bin".
Le problème est quand j’ouvre un terminal je fais
$ env | grep -i "path"
MOZ_GMP_PATH=/usr/lib64/mozilla/plugins/gmp-gmpopenh264/system-installed
DEBUGINFOD_IMA_CERT_PATH=/etc/keys/ima:
PATH=/usr/local/bin:/usr/bin
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
ma ligne path est incorrecte. Donc je suis obligé de passer par la commande source
$ source .bashrc
$ env | grep -i "path"
MOZ_GMP_PATH=/usr/lib64/mozilla/plugins/gmp-gmpopenh264/system-installed
DEBUGINFOD_IMA_CERT_PATH=/etc/keys/ima:
PATH=/usr/local/bin:/usr/bin:~/.local/bin
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
Et là c’est correcte. Si je ferme le terminal, je suis obligé de refaire une commande source.
J’utilise le terminal ptyxis fourni par défaut dans F42. J’ai testé dans un tty et même soucis. Pourquoi le fichier .bashrc n’est pas chargé automatiquement ?
$ ls -l .bashrc
-rw-r--r--. 1 *** *** 2671 18 mai 18:46 .bashrc
$ cat .bashrc
# /etc/bashrc
# System wide functions and aliases
# Environment stuff goes in /etc/profile
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
# Prevent doublesourcing
if [ -z "$BASHRCSOURCED" ]; then
BASHRCSOURCED="Y"
# are we an interactive shell?
if [ "$PS1" ]; then
if [ -z "$PROMPT_COMMAND" ]; then
case $TERM in
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
else
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
fi
;;
screen*)
if [ -e /etc/sysconfig/bash-prompt-screen ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
fi
;;
*)
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
;;
esac
fi
# Turn on parallel history
shopt -s histappend
# Turn on checkwinsize
shopt -s checkwinsize
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
# You might want to have e.g. tty in prompt (e.g. more virtual machines)
# and console windows
# If you want to do so, just add e.g.
# if [ "$PS1" ]; then
# PS1="[\u@\h:\l \W]\\$ "
# fi
# to your custom modification shell script in /etc/profile.d/ directory
fi
if ! shopt -q login_shell ; then # We're not a login shell
# Need to redefine pathmunge, it gets undefined at the end of /etc/profile
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
# Set default umask for non-login shell only if it is set to 0
[ `umask` -eq 0 ] && umask 022
SHELL=/bin/bash
# Only display echos from profile.d scripts if we are no login shell
# and interactive - otherwise just process them to set envvars
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
if [ "$PS1" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
unset i
unset -f pathmunge
fi
fi
# vim:ts=4:sw=4
export PATH="$PATH:~/.local/bin"
edit: j’ai bien bash défini par défaut selon /etc/passwd. Si je tape bash dans le terminal, il charge bien .bashrc. Je ne comprends pas pourquoi ça le fait pas au lancement.
Chose étrange si je renomme en .bashrc.old le $PS1 est coloré comme en tant normal, si je source ou lance bash, j’ai juste “bash-5.2$”.
Donc je me pose la question d’où est chargé un profile bash par défaut ?