En mi ~/.profile
tengo un último bloque que debería cargar mi personal bin/ directory
así:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Pero aparentemente no está cargado:
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
¿Por qué esto no funciona? (Mi caparazón es bash)
Editar para Tigger
echo $0 => bash
echo $HOME => /home/student
whoami => student
less /etc/*-release =>
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
.profile
, consulte askubuntu.com/questions/284640 .-x
bandera pasada a bash y ver dónde se restablece la RUTA. Además, debeexport PATH="$HOME/bin:$PATH"
proporcionarlo a los procesos posteriores.Respuestas:
Desde la parte superior de
~/.profile
:Entonces (si lo está utilizando
bash
como shell), supongo que~/.bash_profile
o~/.bash_login
está en su sistema. Seleccione uno y edítelo para incluir:Luego guarde
source ~/.bash_login
o cierre sesión y vuelva a iniciar sesión.Editar :
Dices eso
~/.bash_profile
y~/.bash_login
ambos faltan en tu$HOME
. Creo que necesitamos confirmar algunas cosas. Publique los resultados de lo siguiente en su pregunta original:Edición 2 :
Personalmente, no sé por qué
~/.profile
no se incluye en su caso en función de la información proporcionada y la documentación. Durante las pruebas, noté que mi~/.profile
escaneo se realiza cuando entro,ssh
pero no cuando inicio un nuevo terminal.Pero, hay una solución simple para permitir
$HOME/bin
que se incluya en su shell interactivo. Edite (cree si no está presente)~/.bashrc
y agregue la siguiente línea:Guardar, cerrar sesión y volver a iniciar sesión, o
source ~/.bashrc
.La
export
línea podría expandirse para verificar$HOME/bin
si existe si lo desea con:¿Por qué en
~/.bashrc
lugar de otro archivo? Preferencia personal y parece ser más confiable también.fuente
~/.bash_profile
nor~/.bash_login
. En mi~
solo hay.bash_history
y.bash_logout
(y por supuesto el.profile
).~/.profile
se omite.Las reglas para los archivos de inicio de shell de abastecimiento son complejas . Es probable que con su configuración,
.profile
no se incluya cuando abra un nuevo terminal dentro de una sesión X (intente poner unecho .profile
interior.profile
y ver si el mensaje aparece cuando inicia un shell).debería recargar el perfil manualmente.
Iniciar y cerrar sesión en X también debería hacer
.profile
que se cargue.Alternativamente, puede hacerlo
. $HOME/.profile
desde.bashrc
(mientras usa un protector basado en variables para evitar la doble inclusión) para asegurarse de que.profile
siempre se incluya cada vez que inicie un shell.(No debería necesitarlo,
export PATH
ya quePATH
es una variable exportada y modificar su valor no cambiará suexport
estado).fuente
[ -z "$has___profile" ] || return; has__profile=1
), así que no obtengo bucles infinitos y ambas.profile
y.bashrc
(solo si se define BASH_VERSION) sin importar cómo llegué allí.bash -l
cargará un simple.profile
(a menos que haya alguna configuración extraña). Además, la RUTA debe establecerse correctamente cuando el usuario inicia sesión. Eso significa que en el "administrador de pantalla" (dm) en uso: gnome, KDE, xfce, lxde, etc.Si desea
.profile
cargarse, todo lo que necesita es iniciar un shell de inicio de sesión:Eso debería ser suficiente para una sesión en ejecución. Puede comparar la RUTA antes y después de que se haya iniciado una sesión de inicio de sesión para confirmar la diferencia.
Para una solución más permanente, necesita que se inicie un shell de inicio de sesión en algún momento antes de que se inicie su terminal (consola). El inicio de sesión como usuario específico ocurre en algunos dm (administrador de pantalla) (gnome, kde, xfce, lxde, etc.). Debería ser el trabajo de cualquiera de ellos cambiar la variable de entorno PATH para que coincida con sus necesidades.
Por ejemplo, para xfce, la solución es cambiar
xinitrc
:Para gnome, parece que el archivo a cambiar es
~/.pam_environment
.Y para KDE, siga esta guía , para crear el archivo, puede usar este código:
fuente