Como adicionar um diretório ao PATH?

Como eu adiciono um diretório ao $PATH no Ubuntu e faço as mudanças permanentes?

Solução

Usando ~/.profile para definir $PATH

Um caminho definido em .bash_profile' só será definido em uma shell de login bash (bash -l'). Se você colocar seu caminho em `.profile' ele estará disponível para sua sessão desktop completa. Isso significa que até mesmo metacidades irão utilizá-lo.

Por exemplo ~/.perfil:

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi

Btw, você pode verificar a variável PATH de um processo olhando seu ambiente em /proc/[pid]/environ (substitua [pid] pelo número do ps axf). Por exemplo, use grep -z "^PATH" /proc/[pid]/environ.

Nota:

bash como uma shell de login não't parse .profile se ou .bash_profile ou .bash_login existe. A partir de man bash :

procura por ~/.bash_profile, ~/.bash_login, e ~/.profile, nesse ordena, e lê e executa comandos a partir do primeiro que existe e é legível.

Veja as respostas abaixo para informações sobre .pam_environment', ou.bashrc' para shells interativas não-login, ou defina o valor globalmente para todos os usuários colocando um script em /etc/profile.d/ ou utilize /etc/X11/Xsession.d/ para afetar a sessão dos gerenciadores de exibição.

Comentários (11)

Edite o .bashrc no seu diretório home e adicione a seguinte linha:

export PATH="/path/to/dir:$PATH"

Você precisará fazer a fonte do seu .bashrc' ou logout/login (ou reiniciar o terminal) para que as alterações tenham efeito. Para obter o código fonte do seu.bashrc', simplesmente digite

$ source ~/.bashrc
Comentários (8)

Adicioná-lo ao .bashrc vai funcionar, mas eu acho que a maneira mais tradicional de configurar as variáveis do seu caminho é em .bash_profile, adicionando as seguintes linhas.

PATH=$PATH:/my/path/foo
export PATH

De acordo com esta linha, parece que o comportamento do Ubuntu's é ligeiramente diferente do do RedHat e dos clones.

Comentários (5)