Variável PATH permanente

38

Como tornarei essa /media/De Soft/mongodb/binvariável PATH permanente?

Todo mundo está dizendo " export PATH=$PATH:media/De\ Soft/mongodb/binpara o seu ~/.profile, ou .bashrc, ou .zshenvdependendo do seu shell".

Não sei o que é ~/.profile, ou .bashrc, ou .zshenv. O que eles fazem realmente?

Como vou adicionar export PATH=$PATH:my/pathao meu .profile / .bashrc / .zshenv?

Estou usando o Ubuntu 14.04 LTS de 64 bits com terminal padrão.

Towhid
fonte

Respostas:

70

Eles são arquivos de configuração. Mão única:

  • Abra uma janela do terminal usando Ctrl + Alt + T
  • Execute o comando gedit ~/.profile
  • Adicione a linha

    export PATH=$PATH:/media/De\ Soft/mongodb/bin

    para o fundo e salve

  • Sair e entrar novamente

Editar:

Uma maneira mais segura é usar aspas. Isso é necessário se um ou mais diretórios no original PATHcontiverem espaços. Tão:

export PATH="$PATH:/media/De Soft/mongodb/bin"
Gunnar Hjalmarsson
fonte
@GunnarHjalmarsson, eu realmente preciso exportar PATH var? Talvez, isso seja feito por padrão em algum outro script? Tenho verificado por ~ / .profile e um caminho var está lá, mas não é explicitamente exportado: PATH = ~ / .local / bin: $ JAVA_HOME / bin: $ PATH
yuranos87
4
@ yuranos87: ​​Não, você está certo; quando se modifica PATHem ~/.profile, exportação é redundante, uma vez que PATHjá é uma variável ambiente.
Gunnar Hjalmarsson 26/03
11
Você não precisa sair e fazer login novamente. Use source ~/.profile.
timbó
11
@timbo: Isso não disponibiliza a variável para os processos já iniciados na sessão (exceto o terminal atual).
Gunnar Hjalmarsson
11
Você não precisa de aspas na string como em export PATH="$PATH:/media/De\ Soft/mongodb/bin"? É opcional?
Bruno Bentzen
4

Digite o seguinte em uma janela do terminal

export PATH=/media/De\ Soft/mongodb/bin:$PATH 

Feche o terminal e reinicie o computador. O caminho deve incluir / media / De \ Soft / mongodb / bin quando você digita isso no terminal:

echo $PATH
Nivedita Velagaleti
fonte
13
Isso funciona apenas para a sessão atual do terminal. Ele precisa estar dentro ~/.profile(ou ~/.bashrcem distros comuns do GNU / Linux ... até ~/.bash_profile) para ser executado em cada carregamento do console.
Alejandro Iván
acordado. mas após a reinicialização do sistema, ele é carregado na variável de caminho.
Nivedita Velagaleti
10
@NiveditaVelagaleti: Não, não é, a menos que você o torne persistente por meio de um arquivo de configuração. O comando terminal não modifica PATHpersistentemente.
Gunnar Hjalmarsson 26/03
2

Para alterar permanentemente, PATHvocê precisa fazer alterações no /etc/environmentarquivo. Faça um backup antes de editar:

sudo cp /etc/environment /etc/environment.bak
sudo nano /etc/environment

saída de amostra:

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

Caminhos são delimitados por :assim adicionar um novo caminho dizer x/y/zesta vontade como os nossos /etc/environmentse parece com:

PATH="x/y/z:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Xaqron
fonte