Como faço para adicionar um diretório ao $PATHUbuntu e tornar as alterações permanentes?
Como faço para adicionar um diretório ao $PATHUbuntu e tornar as alterações permanentes?
Respostas:
Um caminho definido .bash_profilesomente será definido em um shell de login do bash ( bash -l). Se você colocar o seu caminho, .profileele 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
bashcomo um shell de logon não analisa .profilese existe .bash_profileou .bash_loginexiste. 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 .bashrcsobre 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 .bashrcno seu diretório pessoal e adicione a seguinte linha:
export PATH="/path/to/dir:$PATH"
Você precisará obter seu .bashrclogout / 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"?
.bashrcnão é o lugar certo para definir variáveis de ambiente. Eles devem entrar .profileou .pam_environment. Veja mywiki.wooledge.org/DotFiles
. .bashrcnão .bashrc:) ou source .bashrcpara 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 sudono 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 à PATHvariável de ambiente. Para verificar executar env e ver o PATHvalor na listagem.
Palavras-chave:
source /etc/environmentpara 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:
$HOMEpasta..profilee 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_environmentarquivo no diretório inicial.PATH DEFAULT=${PATH}:~/android-sdk-linux/tools.Coloque essa linha no seu ~/.bashrcarquivo.
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 ~/.profilearquivo. Provavelmente não deve fazer as duas coisas, pois o caminho será adicionado duas vezes ao seu PATHambiente se você abrir um terminal.
$HOME/.profilepara configurações pessoais ou /etc/profilepara 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 ~/.profileou ~/.pam_environment, a sessão do gnome (ou o DE que você usar) o herdará. Anexar PATH ~/.bashrctambé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 ~/bindiretório. E confesso que exagerei um pouco no número de maneiras - só um pouco.
~/.profileesse caso.
Para definir todo o sistema, anexe a linha export PATH=/path/you're/adding:$PATHao 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 .bashrclugar. Os terminais GUI no Ubuntu não são shell de login, portanto .bash_profilenão serão executados.
.bash_profile. Se o bash não encontrar um .bash_profile(quando você fizer logon interativamente), ele procurará .profilee o utilizará. Por padrão, você terá um .profilee .bashrcno Ubuntu. E .profileé o local correto para definir variáveis de ambiente se desconsiderarmos pam_env.
No terminal, cdparathe_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/binpasta 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 /scriptsalgum lugar mais perto da minha $HOMEpasta. 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/environmentarquivo
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 .profilee 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 $PATHinicial / 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 ~/.bashrce adicione a seguinte linha.
. ~/.bash_profile
Em seguida, edite seu .bash_profile conforme necessário .....
.bash_profileque você precisa". O que exatamente eu preciso fazer para o .bash_profile?
.profileou .bash_profiledeve fonte .bashrc. Não o contrário.