1- Le .bash_profile va lancer .bashrc puis initialiser les variables d'environnement spécifiques à l'utilisateur (PATH par exemple) et les scripts. La définition de ll n'est donc pas attendue dans ce script.
2- Par défaut, le .bashrc va tester l'existence du script /etc/bashrc puis exécuter les alias et fonctions propres à l'utilisateur. L'alias ll pourrait donc être déclaré dans .bashrc mais de facto, il ne l'est (par défaut!).
3- /etc/bashrc teste la nature du shell (connexion ou non) et initialise les alias et fonctions valables pour tout le système. On notera que dans le cas où le shell n'est pas un shell de connexion, le script va exécuter l'ensemble des scripts du répertoire /etc/profile.d/
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
. $i
Et dans ce répertoire, on constate la présence innocente de
colorsls.sh, script dont on peut penser qu'il agit sur la ... coloration de ls et pourquoi pas, de ll.
On ouvre le script et on découvre la ligne suivante:
alias ll='ls -l' 2>/dev/null
La réponse à la question est donc là . ll est un alias qui est défini pour l'ensemble des utilisateurs du système et il est donc déclaré dans /etc/bashrc.
Si l'on veut le redéfinir pour un utilisateur, il faut placer l'alias dans .bashrc.