Como adicionar um diretório ao PATH?

603

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

    
por justingrif 22.07.2009 / 22:42

18 respostas

385

Usando ~ / .profile para definir $ PATH

Um caminho definido em .bash_profile será definido apenas em um shell de login do bash ( bash -l ). Se você colocar seu caminho em .profile , ele estará disponível para sua sessão completa de desktop. Isso significa que até mesmo a metacity irá usá-lo.

Por exemplo, ~/.profile :

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

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

Nota:

bash como um shell de login não analisa .profile se .bash_profile ou .bash_login existir. De man bash :

  

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

Veja as respostas abaixo para obter informações sobre .pam_environment ou .bashrc para shells interativos que não são de login ou defina o valor global para todos os usuários, colocando um script em /etc/profile.d/ ou use /etc/X11/Xsession.d/ para afetar a sessão de gerentes de exibição.

    
por ko-dos 23.07.2009 / 00:04
240

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

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

Você precisará originar seu .bashrc ou logout / login (ou reiniciar o terminal) para que as mudanças entrem em vigor. Para obter o seu .bashrc , simplesmente digite

$ source ~/.bashrc
    
por Ophidian 22.07.2009 / 22:45
99

O local recomendado para definir as variáveis de ambiente permanentes, todo o sistema , aplicáveis a todos os usuários está em:

/etc/environment

(que é onde o padrão PATH é definido)

Isso funcionará em desktop ou console, gnome-terminal ou TTY, faça chuva ou faça sol;)

  • Para editar, pressione Alt + F2 e digite:

    gksudo gedit /etc/environment
    

    (ou abra o arquivo usando sudo no seu editor de texto favorito)

Para efetuar as alterações, execute . /etc/environment . Como esse arquivo é apenas um script simples, ele será executado e atribuirá o novo caminho à variável de ambiente PATH . Para verificar a execução env e ver o valor PATH na listagem.

Relacionado:

por ish 31.07.2012 / 05:49
52

Eu acho que o caminho canônico no Ubuntu é:

  • crie um novo arquivo em /etc/profile.d/

    sudo vi /etc/profile.d/SCRIPT_NAME.sh
    
  • adicione lá:

    export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
    
  • e dê permissão de execução

    sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
    
por woto 09.01.2010 / 02:31
44

Para novatos completos (como eu) que se sentem mais confortáveis com a GUI:

  1. Abra a pasta $HOME .
  2. Vá para Visualizar Mostrar arquivos ocultos ou pressione Ctrl + H .
  3. Clique com o botão direito do mouse em .profile e clique em Abrir com editor de texto .
  4. Role até o final e adicione PATH="$PATH:/my/path/foo" .
  5. Salvar.
  6. Efetue logout e login novamente para aplicar as alterações (deixe o Ubuntu carregar .profile ).
por dain 25.10.2011 / 00:05
38

Para variáveis de ambiente persistentes disponíveis apenas para usuários específicos. Eu recomendo altamente a documentação oficial do Ubuntu.

link

Consultando a documentação acima, eu configurei minhas ferramentas de caminho do Android SDK por:

  1. criando o arquivo ~/.pam_environment no diretório inicial.
  2. cujo conteúdo é PATH DEFAULT=${PATH}:~/android-sdk-linux/tools .
  3. o caminho do usuário personalizado adicional pode ser adicionado ao separar os caminhos com dois pontos (:) .
  4. isso exige login novamente , o que significa que você precisa fazer logout e fazer login novamente no ambiente de área de trabalho.
por Eduardo B. 09.12.2012 / 00:07
24

Coloque essa linha no seu arquivo ~/.bashrc .

Ele é originado sempre que você abre um terminal

EDITAR : Baseado nos comentários abaixo, para uma configuração mais geral que se aplicará a todos os shells (incluindo quando você pressionar Alt - F2 no Unity), adicione a linha ao seu arquivo ~/.profile . Provavelmente não deve fazer os dois no entanto, já que o caminho será adicionado duas vezes ao seu ambiente PATH se você abrir um terminal.

    
por Ian B. 31.07.2012 / 03:08
14

Para definir todo o sistema, anexe a linha export PATH=/path/you're/adding:$PATH ao final de /etc/profile .

Para adicionar o diretório apenas para o usuário que efetuou login, anexe a mesma linha a ~/.bash_profile .

    
por ennuikiller 23.07.2009 / 01:20
13

Adicioná-lo ao .bashrc funcionará, mas acho que a maneira mais tradicional de configurar suas variáveis de caminho é no .bash_profile, adicionando as seguintes linhas.

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

De acordo com este tópico parece que o comportamento do Ubuntu é ligeiramente diferente do que o RedHat e os clones.

    
por 3dinfluence 22.07.2009 / 22:58
8
sudo vi /etc/profile.d/SCRIPT_NAME.sh

adicione lá

export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
    
por Clipping Path 13.01.2011 / 19:44
8

No terminal, cd to the_directory_you_want_to_add_in_the_path

echo "export PATH=$(pwd):${PATH}" >> ~/.bashrc

Isso não foi ideia minha. Eu encontrei este caminho para exportar caminho neste blog aqui .

    
por Vittorio Cecchetto 09.09.2012 / 00:44
6

Sempre que eu "instalo" minha pasta de scripts BASH, sigo o padrão do teste para uma pasta $HOME/bin que está na maioria dos arquivos .profile em versões recentes do Ubuntu. Eu defini um teste que parece

if [ -d "/usr/scripts" ]; then
   PATH="/usr/scripts:$PATH"
fi

Funciona apenas cerca de 100% do tempo e me deixa livre para alterá-lo em um editor de texto da GUI com um "Substituir tudo" rápido se eu decidir mover /scripts para perto da minha pasta $HOME . Eu não fiz isso em 6 instalações do Ubuntu, mas há "sempre amanhã". S

BZT

    
por Silversleevesx 29.12.2011 / 03:25
4

Abra seu terminal, digite gedit .profile e insira o seguinte:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$PATH:$HOME/bin"
fi

 #the following line add Bin where you dont have a Bin folder on your $HOME
    PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"

Feche e abra o terminal, ele deve estar funcionando.

    
por djavier 04.02.2013 / 20:09
2

A maneira recomendada de editar seu PATH é de /etc/environment file

Exemplo de saída de /etc/environment :

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Por exemplo, para adicionar o novo caminho de /home/username/mydir

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
  

Variáveis de ambiente de todo o sistema

     

Um arquivo adequado para configurações de variáveis de ambiente que afetam o sistema como um todo (em vez de apenas um usuário em particular) é o / etc / environment. Uma alternativa é criar um arquivo para o propósito no diretório /etc/profile.d.

     

/ etc / environment

     

Este arquivo é especificamente destinado a configurações de variáveis de ambiente em todo o sistema. Não é um arquivo de script, mas consiste em expressões de atribuição, uma por linha.

     

Nota: A expansão de variáveis não funciona em / etc / environment.

Mais informações podem ser encontradas aqui: EnvironmentVariables

    
por Benny 08.11.2016 / 10:04
1

Coloque-o no seu ~/.bashrc ou qualquer outro que você use rc (ou para o acima mencionado ~/.profile ) E ~/.xsessionrc para que ele também funcione no X (fora do shell).

    
por Mikaela 01.08.2012 / 11:40
1

link

Existe tudo o que você precisa saber. Descobri que muito da entrada aqui estava incorreta ou pelo menos o método não foi sugerido. Essa é uma ótima informação que permitirá que você descubra onde modificar sua variável de ambiente com base no motivo pelo qual você está fazendo e exatamente como fazer isso sem estragar tudo (como eu fiz depois de alguns dos conselhos ruins mencionados acima).

Até logo, e obrigado por todos os peixes!

    
por Bus42 12.06.2016 / 22:30
1

Mesmo que o script do sistema não use isso, em qualquer um dos casos em que alguém deseja adicionar um caminho (por exemplo, $HOME/bin ) à variável de ambiente PATH, deve-se usar

PATH="${PATH:+${PATH}:}$HOME/bin"

para anexar (em vez de PATH="$PATH:$HOME/bin" ) e

PATH="$HOME/bin${PATH:+:${PATH}}"

para prepending (em vez de PATH="$HOME/bin:$PATH" )

Isso evita o cólon inicial / final espúrio quando $PATH está inicialmente vazio, o que pode ter efeitos indesejados.

Ver, por exemplo, link

    
por sancho.s 05.01.2018 / 17:25
0

Para o Ubuntu edite o ~/.bashrc e adicione a seguinte linha.

. ~/.bash_profile

Em seguida, edite seu .bash_profile conforme necessário .....

    
por Vidula 19.11.2009 / 06:03