Os caminhos /etc/paths
e /etc/paths.d/*
geralmente são adicionados PATH
por path_helper . path_helper
é executado a partir de /etc/profile
, portanto, é executado quando o bash é chamado como um shell de logon interativo, mas não quando o bash é chamado como um shell que não é de login ou um shell não interativo.
/etc/paths
contém /usr/local/bin
no final por padrão e /etc/paths.d/
está vazio por padrão.
O Terminal e o iTerm 2 abrem novos shells como shells de login por padrão, e o shell aberto quando você faz o ssh no seu computador também é um shell de login. Muitos emuladores de terminal em outras plataformas, tmux
eo modo de shell no Emacs abrem novos shells como shells sem login.
Eu adicionei esta linha a /etc/launchd.conf
:
setenv PATH ~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin
Ele altera o valor do PATH
processo raiz launchd. O valor é herdado por todos os outros processos, incluindo processos de inicialização por usuário. Você pode aplicar alterações /etc/launchd.conf
reiniciando ou executando launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.conf
e reiniciando processos.
No OS X, ~/.profile
não é lido quando você faz login graficamente. Se ambos ~/.bash_profile
e ~/.profile
existirem, o bash também não lê ~/.profile
.
~/.MacOSX/environment.plist
parou de funcionar em 10.8.
/etc/profile
script é usado principalmente pelo bash? Não tenho experiências com outras conchas, mas presumo que elas sigam uma estrutura diferente?