Estou usando o Ubuntu Desktop 14.04 e, como tal, estou usando o shell que não é de login. Quando abro o terminal da GUI, primeiro as sessões do shell sem logon leem os seguintes arquivos de inicialização:
/etc/bash.bashrc
~/.bashrc
Os shells sem logon herdam o ambiente do processo pai, que é um shell de logon, portanto, a sessão também lê os seguintes arquivos de inicialização:
/etc/profile
~/.bash_profile
No entanto, não consigo encontrar o $PATH
para caminhos de todo o sistema como /bin
, /sbin
, /usr/bin
, /usr/sbin
, jogo em qualquer um desses arquivos. Onde está o $PATH
conjunto desses diretórios?
command-line
bash
Donato
fonte
fonte
$PATH
é herdado pelo shell de login pai ou se é recarregado por cadabash
instância?$HOME
variável. Por exemplo, adicionar$HOME/.composer/vendor/bin
aoPATH
in/etc/environment
não permite que os binários neste diretório sejam executados sem um prefixo de caminho. O uso~/.composer/vendor/bin
também não funciona. Eu estou achando que é necessário adicionar o caminho absoluto, por exemplo:/home/vagrant/.composer/vendor/bin
. Este parece estar relacionada (embora não explica este comportamento): askubuntu.com/questions/402353/.../etc/environment
(e~/.pam/environment
) é lido pelopam_env
módulo PAM, não pelo shell ou qualquer outra coisa que entenda as variáveis de ambiente / shell; o mesmo vale para~
expansão. Então, você precisa usar o caminho absoluto lá.