Como posso adicionar um caminho para a variável de ambiente PATH?

11

Eu quero adicionar um caminho para a PATHvariável de ambiente?

Eu tentei com export PATH=/mypath:$PATHe funciona. Mas na próxima vez que eu iniciar o Terminal, meu novo caminho não será mais a PATHvariável de ambiente.

Como posso adicionar um caminho para a PATHvariável de ambiente? e deve estar lá também na próxima vez que eu iniciar o terminal.


Agora estou com problemas com isso novamente, o truque que funcionou antes não parece mais funcionar.

Eu tentei com:

echo 'export GRADLE_HOME=/Users/jonas/gradle-1.2/' >> ~/.profile
echo 'export PATH=GRADLE_HOME/bin:$PATH' >> ~/.profile

para adicionar duas variáveis ​​de ambiente. Então meu ~/.profilearquivo-tem este conteúdo:

export GRADLE_HOME=/Users/jonas/gradle-1.2/
export PATH=GRADLE_HOME/bin:$PATH

Mas quando inicio uma nova janela do Terminal e digito gradle(o comando ao qual adicionei PATH), recebo uma mensagem informando que o comando não existe. Se eu executar o comando, /Users/jonas/gradle-1.2/binele funcionará bem!

Jonas
fonte
Se acontecer de você parafuso algo para cima, veja também: Redefinir sua variável PATH
Jari Keinänen
11
A atribuição para PATH (segunda exportação) deve ser com $ GRADLE_HOME
nohillside

Respostas:

5

echo 'export PATH=/my/path:$PATH' >> ~/.bash_profile deve fazer o truque!

Se você usasse echo 'export PATH=/my/path:$PATH' > ~/.bash_profileou qualquer variação desse tipo, substituiria o conteúdo do seu perfil!

Yasyf
fonte
9

OSX lê os seguintes arquivos em ordem quando um terminal é aberto:

/etc/profile
~/.bash_profile
~/.bash_login   
~/.profile     

Portanto, coloque o seu caminho em um desses. Eu normalmente coloco adições em~/.bash_profile

robzolkos
fonte
2
Obrigado, eu useiecho 'export PATH=/mypath:$PATH' >> ~/.profile
Jonas
3

Além dos locais mencionados por @RobZolkos, o shell de login também pesquisa /etc/pathse os arquivos dentro /etc/paths.d/. Uma entrada de caminho por linha nesses arquivos.

Veja /etc/profilee a página de manual para path_helper.

Harald Hanche-Olsen
fonte
Ok, obrigada! mas o maior problema foi como adicionar o caminho. Mas eu encontreiecho 'export PATH=/mypath:$PATH' >> ~/.profile
Jonas
@ Jonas: Eu percebi que seu problema estava resolvido. Minha resposta foi planejada para o benefício de futuros leitores, para que eles possam ver todas as opções disponíveis para eles.
Harald Hanche-Olsen
2

Pergunta antiga, mas para usuários do MacOS X Catalina:

Criar / editar ~/.zshenv:

# comment for yourself
PATH="$PATH:to/your/path"

Observe que modificar PATHno ~/.zprofileou ~/.zshrcnão é correto, ele deve ser ~/.zshenv.

Se você precisar acrescentar algo PATH, crie / edite ainda mais ~/.zprofile:

# apply the prepend to PATH
[[ -r ~/.zshenv ]] && source ~/.zshenv
# remove duplicate in PATH
typeset -U PATH

Referência: http://zsh.sourceforge.net/Intro/intro_3.html

Chovendo
fonte
O que você quer dizer com "Se você precisa anexar ao PATH" e por que isso não pode ser feito .zshenvtambém?
nohillside
@nohillside: Desculpe pela minha gramática ruim, mas é uma boa pergunta. Se você tentar para preceder algo ao PATHem ~/.zshenvpelo PATH="to/your/path:$PATH", sem as linhas em ~/.zprofile, ele não vai funcionar. Alguma chamada path_helperirá movê-los /usr/local/bin/:/usr/bin:...para a frente PATH.
Chovendo
Em suma, é uma questão de ordem de carregamento. path_helperserá executado depois, ~/.zshenvmas antes ~/.zproflie. E do meu estudo de hoje, eu recomendaria usar o link simbólico em vez de modificar PATH, o que é muito mais simples.
Chovendo
0

Insira em .bashrc estas linhas de código:

function pathadd {              # Add new element to PATH
  if ! echo $PATH | egrep -q "(:|^)$1(:|$)"
  then if [ "$2" = "after" ]
       then PATH="$PATH:$1"
       else PATH="$1:$PATH"
       fi
  fi
}

digite um comando como: pathadd /opt/local/binou pathadd /opt/local/bin after.

Maurizio Loreti
fonte