
bash
no se obtendrá .bashrc
desde una terminal interactiva a menos que lo ejecute manualmente bash
desde una terminal:
$ bash
o obtenerlo manualmente:
$ source ./.bashrc
o corriendo:
$ st -e bash
Aquí hay algunos resultados útiles, espero:
$ echo $TERM
st-256color
$ echo $SHELL
/bin/sh
$ readlink /bin/sh
bash
$ shopt login_shell
login_shell off
Estoy en CRUX Linux 3.0 y uso dwm
y st
. Intenté usarlo .bash_profile
y .profile
sin éxito.
¿Algunas ideas?
Respuesta1
En .bash_profile asegúrese de tener lo siguiente:
# .bash_profile
# If .bash_profile exists, bash doesn't read .profile
if [[ -f ~/.profile ]]; then
. ~/.profile
fi
# If the shell is interactive and .bashrc exists, get the aliases and functions
if [[ $- == *i* && -f ~/.bashrc ]]; then
. ~/.bashrc
fi
Respuesta2
¿Por qué lo conseguiría? Su shell predeterminado no es bash, pero sh
:
$ echo $SHELL
/bin/sh
En la mayoría de los sistemas modernos, sh
es un enlace simbólico a un shell básico. En mi Debian por ejemplo:
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Aug 1 2012 /bin/sh -> dash
En su caso, sh
es un enlace a bash
pero, como se explica en man bash
:
Si se invoca bash con el nombre sh, intenta imitar el comportamiento de inicio de las versiones históricas de sh lo más fielmente posible, al mismo tiempo que cumple con el estándar POSIX. [...] Cuando se invoca como un shell interactivo con el nombre sh, bash busca la variable ENV, expande su valor si está definido y usa el valor expandido como el nombre de un archivo para leer y ejecutar. Desdeun shell invocado como sh no intenta leer ni ejecutar comandos de ningún otro archivo de inicio, la opción --rcfile no tiene ningún efecto.
y
--norc
No lea ni ejecute el archivo de inicialización de todo el sistema /etc/bash.bashrc ni el archivo de inicialización personal ~/.bashrc si el shell es interactivo. Esta opción está activada de forma predeterminada si el shell se invoca como sh.
Entonces, dado que su shell predeterminado es sh
, .bashrc
no se lee. Simplemente configure su shell predeterminado para bash usando chsh -s /bin/bash
.