Ejecuté el siguiente comando para crear un archivo de alias en CentOS 7.9:
echo 'alias ll="ls -alhF --color=auto"' > /etc/profile.d/alias-ll.sh
Luego, una vez que reinicié el shell, "escriba ll" indicó que este alias no funcionaba. Pensé que esto podría deberse a que otro archivo en /etc/profile.d sobrescribía el alias, así que cambié el nombre del archivo a "z-alias-ll.sh". Luego reinicié Shell y esta vez, "escriba ll" indicó que el alias había funcionado correctamente.
Sin embargo, cuando hago lo mismo en Ubuntu 20.04, "escriba ll" indica que no funciona. Había algunos nombres de archivos como "Z99-cloud-locale-test.sh" y "Z99-cloudinit-warnings.sh" en /etc/profile.d en Ubuntu, así que probé estos:
echo 'alias ll="ls -alhF --color=auto"' > /etc/profile.d/Z99-alias-ll.sh
echo 'alias ll="ls -alhF --color=auto"' > /etc/profile.d/ZZ99-alias-ll.sh
echo 'alias ll="ls -alhF --color=auto"' > /etc/profile.d/Z99-z-alias-ll.sh
echo 'alias ll="ls -alhF --color=auto"' > /etc/profile.d/ZZ99-z-alias-ll.sh
echo 'alias ll="ls -alhF --color=auto"' > /etc/profile.d/Z99Zalias-ll.sh
Sin embargo, cuando reinicio la terminal, "escriba ll" todavía dice "ll tiene el alias de `ls -alF'".
Si hago otro archivo de alias:
echo 'alias lltest="ls -alhF --color=auto"' > /etc/profile.d/alias-lltest.sh
Luego, después de reiniciar la terminal, "escriba lltest" indica que se está obteniendo este archivo. Entonces, creo que los archivos de alias en /etc/profile.d se están obteniendo, pero el alias de "ll" se está sobrescribiendo en alguna parte.
Desde que intenté poner el prefijo "ZZ99", etc., no creo que sea un problema de clasificación de cadenas, como con CentOS 7.9, donde tuve que agregar el prefijo "z-" al nombre del archivo para evitar otro archivo /etc/profile.d. de tener prioridad. Sin embargo, no estoy 100% seguro.
¿Qué archivo, script, etc. podría tener prioridad sobre los archivos de alias que creé en /etc/profile.d? ¿Qué tiene prioridad sobre /etc/profile.d en Ubuntu, en términos de definir variables de entorno?
Probé tanto en Ubuntu 20.04 como en Ubuntu 22.10, usando nuevas gotas de Digital Ocean.
Respuesta1
Generalmente, la configuración del usuario tiene prioridad sobre la configuración de todo el sistema. Esto también es válido para los alias. Los alias definidos por el usuario tienen prioridad sobre los alias definidos a nivel del sistema. De forma predeterminada en Ubuntu, alias ll='ls -alF'
se define en el archivo del usuario .bashrc
, anulando así cualquier alias que haya establecido en otro lugar.