Programming

Linux에서 변수를 영구적으로 내보내는 방법?

procodes 2020. 6. 28. 20:04
반응형

Linux에서 변수를 영구적으로 내보내는 방법?


RHEL6을 실행 중이며 다음과 같은 환경 변수를 내보냈습니다.

export DISPLAY=:0

터미널이 닫히면 해당 변수가 손실됩니다. 이 변수 값이 항상 특정 사용자에게 존재하도록이를 영구적으로 추가하려면 어떻게해야합니까?


당신은 예를 들어, 쉘 설정 파일에 추가 할 수 있습니다 $HOME/.bashrc이상 세계에서 /etc/environment.


다음과 같이 영구 환경 변수를 설정하려면 세 개의 파일을 편집해야합니다.

  • ~ / .bashrc

    터미널 창을 열면이 파일이 실행됩니다. 따라서 모든 터미널 창에서 영구 환경 변수를 사용하려면이 파일 끝에 다음 줄을 추가해야합니다.
    export DISPLAY = 0

  • ~ / .profile

  • bashrc 와 마찬가지로 OS의 모든 로그인에서 환경 변수를 가지려면이 파일의 끝에 언급 된 명령 줄을 넣어야합니다.

  • / etc / 환경

  • 터미널 창뿐만 아니라 모든 창 또는 응용 프로그램에서 환경 변수를 원하면이 파일을 편집해야합니다. 이 파일의 끝에 다음 명령을 추가하십시오.
    DISPLAY = 0
    이 파일에서는 내보내기 명령 을 작성할 필요가 없습니다.

일반적으로이 변경 사항을 적용하려면 컴퓨터를 다시 시작해야합니다. 그러나 다음 명령으로 bashrc프로파일변경 사항을 적용 할 수 있습니다 .

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

그러나 / etc / environment의 경우 다시 시작할 수밖에 없습니다 (내가 아는 한)

  • 간단한 해결책

  • 이 절차가 모든 작업을 수행 할 수 있도록 간단한 스크립트를 작성했습니다. 환경 변수의 이름과 값만 설정하면됩니다.

    #!/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
    

    이 줄을 shfile에 저장 한 다음 실행 가능하게 만들고 실행하십시오!


    .bashrc또는에 줄을 추가하십시오 .profile. 설정 한 변수 $HOME/.profile는 현재 사용자 대해 활성화 되어 있으며 변수 /etc/profile는 전역입니다. .bashrc각각의 bash 세션 시작에 당겨진다.


    우분투 시스템에서 다음 위치를 사용하십시오.

    1. JAVA_PATH=/usr/local/java상점 형식의 시스템 전체 지속 변수

      /etc/environment
      

    2. export PATH="$JAVA_PATH:$PATH"저장 과 같은 변수를 참조하는 시스템 전체 지속 변수

      /etc/.bashrc
      
    3. PATH DEFAULT=/usr/bin:usr/local/bin상점 형식의 사용자 고유 지속 변수

      ~/.pam_environment
      

    For more details on #2, check this Ask Ubuntu answer. NOTE: #3 is the Ubuntu recommendation but may have security concerns in the real world.


    A particular example: I have Java 7 and Java 6 installed, I need to run some builds with 6, others with 7. Therefore I need to dynamically alter JAVA_HOME so that maven picks up what I want for each build. I did the following:

    • created j6.sh script which simply does export JAVA_HOME=... path to j6 install...
    • then, as suggested by one of the comments above, whenever I need J6 for a build, I run source j6.sh in that respective command terminal. By default, my JAVA_HOME is set to J7.

    Hope this helps.

    참고URL : https://stackoverflow.com/questions/13046624/how-to-permanently-export-a-variable-in-linux

    반응형