Bonjour,

j'ai un petit problème pour configurer bash.
quand je modifie mon fichier bashrc (dans le répertoire $HOME)en rajoutant des alias, en tant que simple utilisateur cela ne marche pas.
en revanche si je modifie le bashrc (etc/bashrc), les alias sont prit en compte, mais seulement quand j'ouvre une console en mode super utilisateur...
comment arranger le probleme?

je vais faire des copié coller de tous les fichiers important :

Mon login est loicus...

merci d'avance pour votre aide...
pcq je ne vois vraiment pas pourquoi ca ne marche pas.

loic,

####################
/root/.bashrc
####################
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

#test
alias loicus='animate'

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
ls

####################
/root/.bash_profile
####################
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME

####################
/root/.bash_logout
####################
# ~/.bash_logout

clear

####################
/home/loicus/.bashrc
####################
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

alias loicus='animate'

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

####################
/home/loicus/.bash_profile
####################

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME

####################
/home/loicus/.bash_logout
####################
# ~/.bash_logout

clear



####################
/etc/bashrc
####################
# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile

# by default, we want this to get set.
# Even for non-interactive, non-login shells.
if [ "`id -gn`" = "`id -un`" -a `id -u` -gt 99 ]; then
umask 002
else
umask 022
fi

# are we an interactive shell?
if [ "$PS1" ]; then
case $TERM in
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
else
PROMPT_COMMAND='echo -ne "33]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}07"'
fi
;;
screen)
if [ -e /etc/sysconfig/bash-prompt-screen ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
PROMPT_COMMAND='echo -ne "33_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}33"'
fi
;;
*)
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
;;
esac
# Turn on checkwinsize
shopt -s checkwinsize
[ "$PS1" = "s-v$ " ] && PS1="[u@h W]$ "
fi

if ! shopt -q login_shell ; then # We're not a login shell
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
. $i
fi
done
unset i
fi

echo 'etc/bashrc/ -> loaded'
$HOME/.bash_profile


# vim:ts=4:sw=4

####################
/etc/profile
####################
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|🙂$1($|🙂" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}

# Path manipulation
if [ `id -u` = 0 ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi

pathmunge /usr/X11R6/bin after


# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"

HOSTNAME=`/bin/hostname`
HISTSIZE=1000

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
done

unset i
unset pathmunge

####################
/etc/profile.d
####################
list des fichiers :

[localhost] /etc/profile.d > ls
colorls.csh glib2.csh gnome-afs-profile.csh gnome-ssh-askpass.csh kde.csh krb5.csh lang.csh less.csh mc.csh qt.csh vim.csh which-2.sh zz_sue.sh zzz_hepix.sh
colorls.sh glib2.sh gnome-afs-profile.sh gnome-ssh-askpass.sh kde.sh krb5.sh lang.sh less.sh mc.sh qt.sh vim.sh zz_sue.csh zzz_hepix.csh
quand tu fais des modifications dans ton .bashrc, tu dois "sourcer" l'environnement pour quelles soient prises en compte immédiatement
. ~/.bashrc
.
Je pense que les définitions d'alias dans ton .bashrc devraient se situer **APRES** l'appel à /etc/bashrc, sinon les alias que tu charges risquent d'être écrasés .

déplace ces lignes :
lias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias loicus='animate'

après "fi"
ok, quand je les sources, ca marche... mais je dois le faire a chaque fois que j'ouvre mon shell...

or, j'aimerais bien qu'il source automatiquement au démarage du shell...
comment faire cela?
tu as juste à les mettre dans ton ~/.bashrc en dessous de ceux qui existent déjà.

quelques remarques :

Pour vérifier les alias accessibles tapes juste 'alias' dans ton shell.

la définition d'un alias susceptible d'être suivi d'un autre alias doit se terminer par un espace
exemple : alias ll='ls -l '

Pour que l'alias soit disponible pour les shells fils, il faut l'exporter
exemple : alias -x ll='ls -l '

Pour certaines commandes, on peut améliorer les performances en les transformant en alias. On parle d'alias pisté
exemple : alias -t find
celmir a écrit :
tu as juste à les mettre dans ton ~/.bashrc en dessous de ceux qui existent déjà.
bhen non ca marche pas justement,
ca marche quand je suis l'utilisateur root,
mais pas quand je suis l'utilisateur loicus,

donc a mon avis, il dois y avoir un endroit ou ca couille...
Au passage l'export d'alias doit être automatique sous fedora car -x ne semble pas fonctionner ...

Voici un ~/.bashrc original
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# User specific aliases and functions
Comme indiqué il suffit de mettre ses propres alias après le commentaire, exemple

avant
[usercel@loren ~]$
 alias
alias l.='ls -d .*'
alias ll='ls -l'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
modification de /home/usercel/.bashrc (je veux ajouter un alias pour cet utilisateur uniquement)
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# User specific aliases and functions
alias pwd='pwd -P '
après
[usercel@loren ~]$
 alias
alias l.='ls -d .*'
alias ll='ls -l'
alias pwd='pwd -P '
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
j'avais bien compris....
mais ca ne marche pas...

ca marche pour l'utilisateur root
mais pas pour les autres


je suis sous sientific linux cern 4, mais a mon avis c'est exactement pareil que sous fedora

d'ou peut venir le probleme?
.
en clair ce que tu entres dans ton ~/.bashrc ne concerne que toi

ce que tu entres dans /etc/bashrc concerne system wide

capito ?? et ca marche !
as-tu vérifié les droits sur ton fichiers .bashrc ?
ls -la ~/.bashrc
voici mes permission :

[localhost] /home/loicus > ls -la ~/.bashrc
-rw-r--r-- 1 loicus loicus 200 oct 1 18:24 /home/loicus/.bashrc
haaaaaaaaaaaaaa

j'ai résolu le probleme....

en faite quand je lance Konsole, par défault il ouvre un terminal standart, sans lancer bash ni rien du tout...
en revanche quand je dis a konsole de lancé une console linux, il lance bash et mes fichiers sont bien chargé...

je lui ai dis de lancé bash par défault...

enfin je sias pas si je m'exprime bien...
mais tout est reglé..

merci a vous tous...

PS : nouvo09 : faut pas prendre trop les gens pour des cons non plus...
j'avais déja dis 2 fois que ca ne marchait pas...
...il ouvre un terminal standart, sans lancer bash ni rien du tout...
Si forcément. Puisque bash c'est l'interpréteur de commande (sinon tu aurais une fenêtre vide, sans possibilité de frappe).

Simplement il ne l'ouvre pas en mode connexion (option --login) qui déclenche l'interprétation des scripts.
Donc tu ne dispose que de l'environnement global chargé au moment de la connexion graphique.

A+