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

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

export DISPLAY=:0

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



답변

당신은 예를 들어, 쉘 설정 파일에 추가 할 수 있습니다 $HOME/.bashrc이상 세계에서 /etc/environment. 이러한 라인을 추가 한 후에는 GUI 기반 시스템에서 변경 사항이 즉시 반영되지 않습니다. 터미널을 종료하거나 새 터미널을 생성하고 서버에서 세션을 로그 아웃하고 로그인하여 변경 사항을 반영해야합니다.


답변

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

  • ~ / .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
      

    # 2에 대한 자세한 내용은 Ask Ubuntu answer를 확인하십시오
    . 참고 : # 3은 우분투 권장 사항이지만 실제 환경에서는 보안 문제가있을 수 있습니다.


    답변

    특정 예 : Java 7 및 Java 6이 설치되어 있으며 6으로 일부 빌드를 실행하고 7로 다른 빌드를 실행해야합니다. 따라서 JAVA_HOMEmaven이 각 빌드에 대해 원하는 것을 선택하도록 동적으로 변경해야합니다 . 나는 다음을 수행했다.

    • j6.sh단순히 내보내는 스크립트 생성JAVA_HOME=... j6 설치로 경로를 …
    • 그런 다음 위의 주석 중 하나에서 제안한 것처럼 빌드에 J6이 필요할 때마다 j6.sh해당 명령 터미널에서 소스 를 실행합니다 . 기본적으로 my JAVA_HOME는 J7로 설정되어 있습니다.

    도움이 되었기를 바랍니다.


    답변

    누구에게나 적합한 경우 환경 변수를 영구적으로 추가하기위한 간단한 지침이 있습니다.

    vi ~/.bash_profile
    

    파일에 변수를 추가하십시오.

    export DISPLAY=:0
    export JAVA_HOME=~/opt/openjdk11
    

    모든 변경 사항을 즉시 적용하십시오.

    source ~/.bash_profile
    

    출처 : https://www.serverlab.ca/tutorials/linux/administration-linux/how-to-set-environment-variables-in-linux/


    답변