linux - variáveis - variavel ps1




Como exportar permanentemente uma variável no Linux? (4)

Estou executando o RHEL6 e exportei uma variável de ambiente como esta:

export DISPLAY=:0

Essa variável é perdida quando o terminal é fechado. Como faço para adicionar permanentemente isso para que esse valor de variável sempre exista com um usuário específico?


Nos sistemas Ubuntu, use os seguintes locais:

  1. Variáveis ​​persistentes de todo o sistema no formato de JAVA_PATH=/usr/local/java store em

    /etc/environment
    
  2. Variáveis ​​persistentes de todo o sistema que referenciam variáveis ​​como
    export PATH="$JAVA_PATH:$PATH" store em

    /etc/.bashrc
    
  3. Variáveis ​​persistentes específicas do usuário no formato PATH DEFAULT=/usr/bin:usr/local/bin store em

    ~/.pam_environment
    

Para mais detalhes sobre # 2, verifique esta resposta Ask Ubuntu . NOTA: # 3 é a recomendação do Ubuntu, mas pode ter preocupações de segurança no mundo real.


Um exemplo específico: Eu tenho o Java 7 e o Java 6 instalados, preciso executar algumas compilações com 6, outras com 7. Por isso, preciso alterar dinamicamente o JAVA_HOME para que o maven pegue o que eu quero para cada compilação. Eu fiz o seguinte:

  • script j6.sh criado que simplesmente exporta JAVA_HOME=... caminho para o j6 install ...
  • então, como sugerido por um dos comentários acima, sempre que eu precisar do J6 para uma compilação, eu executo o source j6.sh no respectivo terminal de comando. Por padrão, meu JAVA_HOME está configurado para J7.

Espero que isto ajude.


Você precisa editar três arquivos para definir uma variável de ambiente permanente da seguinte forma:

  • ~ / .bashrc

    Quando você abre qualquer janela de terminal, este arquivo será executado. Portanto, se você deseja ter uma variável de ambiente permanente em todas as suas janelas de terminal, você deve adicionar a seguinte linha ao final deste arquivo:
    exportar DISPLAY = 0

  • ~ / .profile

  • O mesmo que bashrc você tem que colocar a linha de comando mencionada no final deste arquivo para ter sua variável de ambiente em cada login do seu sistema operacional.

  • / etc / environment

  • Se você quiser sua variável de ambiente em todas as janelas ou aplicativos (não apenas na janela do terminal), você deve editar este arquivo. Adicione o seguinte comando no final deste arquivo:
    DISPLAY = 0
    Note que neste arquivo você não precisa escrever o comando de exportação

Normalmente você precisa reiniciar o computador para aplicar essas alterações. Mas você pode aplicar alterações no bashrc e no perfil por esses comandos:

$ source ~/.bashrc
$ source ~/.profile

Mas para o / etc / environment você não tem escolha a não ser reiniciar (tanto quanto eu sei)

  • Uma solução simples

  • Eu escrevi um script simples para esses procedimentos para fazer todos esses trabalhos. Você só precisa definir o nome e o valor de sua variável de ambiente.

    #!/bin/bash
    echo "Enter variable name: "
    read variable_name
    echo "Enter variable value: "
    read variable_value
    echo "adding " $variable_name " to environment variables: " $variable_value
    echo "export "$variable_name"="$variable_value>>~/.bashrc
    echo $variable_name"="$variable_value>>~/.profile
    echo $variable_name"="$variable_value>>/etc/environment
    source ~/.bashrc
    source ~/.profile
    echo "do you want to restart your computer to apply changes in /etc/environment file? yes(y)no(n)"
    read restart
    case $restart in
        y) sudo shutdown -r 0;;
        n) echo "don't forget to restart your computer manually";;
    esac
    exit
    

    Salve essas linhas em um shfile, então torne-a executável e apenas execute-a!


    adicione a linha ao seu .bashrc ou .profile . As variáveis ​​configuradas em $HOME/.profile estão ativas para o usuário atual, aquelas em /etc/profile são globais. O .bashrc é puxado em cada início de sessão bash.





    redhat