Como faço para adicionar um diretório ao $PATH
Ubuntu e tornar as alterações permanentes?
Como faço para adicionar um diretório ao $PATH
Ubuntu e tornar as alterações permanentes?
Respostas:
Um caminho definido .bash_profile
somente será definido em um shell de login do bash ( bash -l
). Se você colocar o seu caminho, .profile
ele estará disponível para toda a sessão da área de trabalho. Isso significa que até a metacidade o usará.
Por exemplo ~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Aliás, 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, usegrep -z "^PATH" /proc/[pid]/environ
bash
como um shell de logon não analisa .profile
se existe .bash_profile
ou .bash_login
existe. De man bash
:
procura por ~ / .bash_profile, ~ / .bash_login e ~ / .profile, nessa ordem, e lê e executa comandos do primeiro que existe e é legível.
Consulte as respostas abaixo para obter informações sobre .pam_environment
, ou .bashrc
sobre shells interativos sem logon, ou defina o valor globalmente para todos os usuários, colocando um script /etc/profile.d/
ou sendo usado /etc/X11/Xsession.d/
para afetar a sessão dos gerenciadores de exibição.
PATH="$HOME/bin:$PATH"
Então, adiciono-o?
Edite .bashrc
no seu diretório pessoal e adicione a seguinte linha:
export PATH="/path/to/dir:$PATH"
Você precisará obter seu .bashrc
logout / logon (ou reiniciar o terminal) para que as alterações entrem em vigor. Para obter sua fonte .bashrc
, basta digitar
$ source ~/.bashrc
.bashrc
"? Como você "reinicia o terminal"?
.bashrc
não é o lugar certo para definir variáveis de ambiente. Eles devem entrar .profile
ou .pam_environment
. Veja mywiki.wooledge.org/DotFiles
. .bashrc
não .bashrc
:) ou source .bashrc
para que o assunto
O local recomendado para definir variáveis de ambiente permanentes em todo o sistema que se aplicam a todos os usuários está em:
/etc/environment
(onde PATH
é definido o padrão )
Isso funcionará em desktop ou console, terminal gnome ou TTY, faça chuva ou faça sol;)
Para editar, pressione Alt+ F2e digite:
gksudo gedit /etc/environment
(ou abra o arquivo usando sudo
no seu editor de texto favorito)
Para efetuar alterações, execute . /etc/environment
. Como esse arquivo é apenas um script simples, ele será executado e atribuirá o novo caminho à PATH
variável de ambiente. Para verificar executar env e ver o PATH
valor na listagem.
Palavras-chave:
source /etc/environment
para recarregar as mudanças
Eu acho que a maneira canônica no Ubuntu é:
crie um novo arquivo em /etc/profile.d/
sudo vi /etc/profile.d/SCRIPT_NAME.sh
adiciona lá:
export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
e dê permissão para executar
sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
Para iniciantes completos (como eu sou) que estão mais à vontade com a GUI:
$HOME
pasta..profile
e clique em Abrir com o Editor de texto .PATH="$PATH:/my/path/foo"
..profile
).$PATH:
pouco que inclui a definição PATH existente
Para variáveis de ambiente persistentes disponíveis apenas para usuários específicos. Eu recomendo a documentação oficial do Ubuntu.
https://help.ubuntu.com/community/EnvironmentVariables
Referindo-me à documentação acima, configurei minhas ferramentas de caminho do SDK do Android :
~/.pam_environment
arquivo no diretório inicial.PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
.Coloque essa linha no seu ~/.bashrc
arquivo.
Ele é adquirido sempre que você abre um terminal
EDIT : Com base nos comentários abaixo, para uma definição mais geral que se aplica a todos os shells (incluindo quando você bate Alt- F2em Unity), adicione a linha ao seu ~/.profile
arquivo. Provavelmente não deve fazer as duas coisas, pois o caminho será adicionado duas vezes ao seu PATH
ambiente se você abrir um terminal.
$HOME/.profile
para configurações pessoais ou /etc/profile
para todos os usuários. Mas se for necessário apenas para o bash, suponho que ambos funcionem.
~/.bashrc
, ele estará disponível apenas nos terminais que você abrir. Por exemplo, se você pressionar Alt + F2 e tentar executar um comando desse diretório, ele não o encontrará. Se você configurá-lo ~/.profile
ou ~/.pam_environment
, a sessão do gnome (ou o DE que você usar) o herdará. Anexar PATH ~/.bashrc
também tem a desvantagem de que, se você abrir / executar o bash interativamente a partir de outro shell do bash interativo, ele será anexado várias vezes.
~/.profile
é correto para caminhos pessoais; é aí que o Ubuntu adiciona o ~/bin
diretório. E confesso que exagerei um pouco no número de maneiras - só um pouco.
~/.profile
esse caso.
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 conectado, anexe a mesma linha a ~/.bash_profile
.
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 é um pouco diferente do RedHat e dos clones.
.bashrc
, cole-o em seu .bashrc
lugar. Os terminais GUI no Ubuntu não são shell de login, portanto .bash_profile
não serão executados.
.bash_profile
. Se o bash não encontrar um .bash_profile
(quando você fizer logon interativamente), ele procurará .profile
e o utilizará. Por padrão, você terá um .profile
e .bashrc
no Ubuntu. E .profile
é o local correto para definir variáveis de ambiente se desconsiderarmos pam_env.
No terminal, cd
parathe_directory_you_want_to_add_in_the_path
echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc
Não foi ideia minha. Eu encontrei este caminho para exportar o caminho neste blog aqui .
sudo vi /etc/profile.d/SCRIPT_NAME.sh
adiciona lá
export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
sudo nano /etc/profile.d/SCRIPT_NAME.sh
é mais fácil para iniciantes.
gksu gedit /etc/profile.d/SCRIPT_NAME.sh
é ainda mais fácil.
Sempre que "instalo" minha pasta de scripts BASH, sigo o padrão do teste para uma $HOME/bin
pasta que está na maioria dos arquivos .profile nas versões recentes do Ubuntu. Eu defino um teste que se parece
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
Funciona quase 100% do tempo e me deixa livre para alterá-lo em um editor de texto da GUI com um rápido "Substituir tudo", caso eu decida mudar para /scripts
algum lugar mais perto da minha $HOME
pasta. Eu não fiz isso em 6 instalações do Ubuntu, mas há "sempre amanhã". S
BZT
A maneira recomendada de editar o seu PATH
é do /etc/environment
arquivo
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"
Em seguida, reinicie o seu PC.
Variáveis de ambiente em 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 específico) é / etc / environment. Uma alternativa é criar um arquivo para esse fim no diretório /etc/profile.d.
/ etc / environment
Este arquivo é destinado especificamente para 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 variável não funciona no / etc / environment.
Mais informações podem ser encontradas aqui: EnvironmentVariables
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.
Mesmo que os scripts do sistema não usem isso, em qualquer um dos casos em que se queira 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 anexar (em vez de PATH="$HOME/bin:$PATH"
).
Isso evita o cólon $PATH
inicial / final espúrio quando está inicialmente vazio, o que pode ter efeitos indesejados.
Consulte, por exemplo, https://unix.stackexchange.com/questions/162891/append-to-path-like-variable-without-creating-leading-colon-if-unset
Para o Ubuntu, edite ~/.bashrc
e adicione a seguinte linha.
. ~/.bash_profile
Em seguida, edite seu .bash_profile conforme necessário .....
.bash_profile
que você precisa". O que exatamente eu preciso fazer para o .bash_profile
?
.profile
ou .bash_profile
deve fonte .bashrc
. Não o contrário.