No meu ~/.profile
eu tenho um último bloco que deve carregar meu pessoal bin/ directory
como este:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Mas aparentemente não está carregado:
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Por que isto não está funcionando? (Meu shell é 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
sinalizador passado para o bash e vendo onde o PATH é redefinido. Além disso, você precisaexport PATH="$HOME/bin:$PATH"
fornecê-lo aos processos subseqüentes.Respostas:
Do topo de
~/.profile
:Então (se você estiver usando
bash
como seu shell), acho que está~/.bash_profile
ou~/.bash_login
está no seu sistema. Selecione um e edite-o para incluir:Em seguida, salve e
source ~/.bash_login
ou efetue logout e logon novamente.Editar :
Você diz que ambos
~/.bash_profile
e~/.bash_login
estão ausentes do seu$HOME
. Acho que precisamos confirmar algumas coisas. Poste os resultados a seguir na sua pergunta original:Edição 2 :
Pessoalmente, não sei por que
~/.profile
não está sendo incluído no seu caso com base nas informações e documentação fornecidas. Durante o teste, notei que o meu~/.profile
é digitalizado quando entrossh
, mas não quando inicio um novo terminal.Porém, existe uma solução simples para permitir
$HOME/bin
a inclusão no seu shell interativo. Edite (crie se não estiver presente)~/.bashrc
e adicione a seguinte linha:Salve, efetue logout e efetue login novamente, ou
source ~/.bashrc
.A
export
linha pode ser expandida para verificar$HOME/bin
se existe, se você gostar de:Por que ao
~/.bashrc
invés de outro arquivo? Preferência pessoal e também parece ser mais confiável.fonte
~/.bash_profile
nem~/.bash_login
. No meu~
há apenas.bash_history
e.bash_logout
(e, claro, o.profile
).~/.profile
está sendo ignorado.As regras para arquivos de inicialização do shell de origem são complexas . É provável que, com sua configuração,
.profile
não esteja sendo incluído quando você abre um novo terminal dentro de uma sessão X (tente colocar umecho .profile
interior.profile
e veja se a mensagem aparece quando você inicia um shell).deve recarregar o perfil manualmente.
Fazer login e sair do X também deve causar o
.profile
carregamento.Como alternativa, você pode fazer a
. $HOME/.profile
partir de.bashrc
(enquanto estiver usando uma proteção baseada em variável para evitar a inclusão dupla) para garantir que.profile
sempre esteja incluída sempre que você iniciar um shell.(Você não precisa,
export PATH
poisPATH
já é uma variável exportada e a modificação de seu valor não alterará seuexport
status.)fonte
[ -z "$has___profile" ] || return; has__profile=1
), então não recebo loops infinitos e ambas.profile
e.bashrc
(apenas se BASH_VERSION estiver definido), não importa como cheguei lá.bash -l
será carregado.profile
(a menos que haja alguma configuração estranha). Além disso, o caminho deve ser definido corretamente quando o usuário faz login Isso significa que no "display manager" (DM) em uso: Gnome, KDE, Xfce, LXDE, etc..Se você deseja ser
.profile
carregado, basta iniciar um shell de login:Isso deve ser suficiente para uma sessão em execução. Você pode comparar o PATH antes e depois de iniciar o bash de login para confirmar a diferença.
Para uma solução mais permanente, é necessário que um shell de login seja iniciado em algum momento antes do início do seu terminal (console). O login como um usuário específico acontece em alguns dm (gerenciadores de exibição) (gnome, kde, xfce, lxde, etc). Qualquer um deles deve ser o trabalho de alterar a variável de ambiente PATH para atender às suas necessidades.
Por exemplo, para xfce, a solução é mudar
xinitrc
:Para o gnome, parece que o arquivo a ser alterado é
~/.pam_environment
.E para o KDE, siga este guia , para criar o arquivo, você pode usar este código:
fonte