En mi ~/.profiletengo un último bloque que debería cargar mi personal bin/ directoryasí:
# 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 .-xbandera 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
bashcomo shell), supongo que~/.bash_profileo~/.bash_loginestá en su sistema. Seleccione uno y edítelo para incluir:Luego guarde
source ~/.bash_logino cierre sesión y vuelva a iniciar sesión.Editar :
Dices eso
~/.bash_profiley~/.bash_loginambos 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é
~/.profileno se incluye en su caso en función de la información proporcionada y la documentación. Durante las pruebas, noté que mi~/.profileescaneo se realiza cuando entro,sshpero no cuando inicio un nuevo terminal.Pero, hay una solución simple para permitir
$HOME/binque se incluya en su shell interactivo. Edite (cree si no está presente)~/.bashrcy agregue la siguiente línea:Guardar, cerrar sesión y volver a iniciar sesión, o
source ~/.bashrc.La
exportlínea podría expandirse para verificar$HOME/binsi existe si lo desea con:¿Por qué en
~/.bashrclugar de otro archivo? Preferencia personal y parece ser más confiable también.fuente
~/.bash_profilenor~/.bash_login. En mi~solo hay.bash_historyy.bash_logout(y por supuesto el.profile).~/.profilese omite.Las reglas para los archivos de inicio de shell de abastecimiento son complejas . Es probable que con su configuración,
.profileno se incluya cuando abra un nuevo terminal dentro de una sesión X (intente poner unecho .profileinterior.profiley 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
.profileque se cargue.Alternativamente, puede hacerlo
. $HOME/.profiledesde.bashrc(mientras usa un protector basado en variables para evitar la doble inclusión) para asegurarse de que.profilesiempre se incluya cada vez que inicie un shell.(No debería necesitarlo,
export PATHya quePATHes una variable exportada y modificar su valor no cambiará suexportestado).fuente
[ -z "$has___profile" ] || return; has__profile=1), así que no obtengo bucles infinitos y ambas.profiley.bashrc(solo si se define BASH_VERSION) sin importar cómo llegué allí.bash -lcargará 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
.profilecargarse, 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