사용자 환경 변수를 설정하는 방법은 무엇입니까? (영구, 비세션)

사용자 환경 변수를 설정하는 방법은 무엇입니까? (영구, 비세션)

이것은 나를 짜증나게 한다. 여러 가지 제안(모두 다른 파일과 구문을 사용함)을 보았지만 그 중 아무 것도 작동하지 않았습니다.

특정 사용자에 대한 환경 변수를 설정하는 방법은 무엇입니까? 저는 데비안을 쥐고 있습니다. 파일에 ABC = "123"을 넣어야 하는 정확한 구문은 무엇입니까?

답변1

셸의 초기화 파일에 선언을 넣어야 합니다.

  • bash, ash, ksh 또는 기타 Bourne 스타일 쉘을 사용하는 경우 다음을 추가할 수 있습니다.

    ABC="123"; export ABC
    

    .profile귀하의 파일( ) 에 있습니다 ${HOME}/.profile. 이는 대부분의 Unix 설치, 특히 Debian의 기본값입니다.

    .bash_profile로그인 쉘이 bash인 경우 ( ${HOME}/.bash_profile) 또는 대신 사용할 수 있습니다 .bash_login.

    노트:이러한 파일이 존재하고 로그인 셸이 bash인 경우 .profilessh나 텍스트 콘솔을 통해 로그인하면 파일을 읽을 수 없지만 .bash_profileGUI 문서에서 로그인하면 계속 읽을 수 있습니다. 또한 그렇지 않은 경우 .bash_profile사용하십시오 .bashrc.

  • zsh를 로그인 셸로 설정한 경우 ~/.zprofile대신 zsh를 사용하세요 ~/.profile.

  • tcsh를 사용하는 경우 다음을 추가하세요.

    setenv ABC "123"
    

    파일 .login( ${HOME}/.login)

  • 다른 쉘을 사용하는 경우 쉘 매뉴얼을 확인하여 환경 변수를 정의하는 방법과 쉘이 시작될 때 어떤 파일이 실행되는지 알아보십시오.

답변2

/etc/environment파일을 사용하여 환경 변수를 설정합니다. 그런 다음 파일에 다음 줄을 추가합니다 /etc/environment.

ABC="123"

지금알파벳모든 사용자 세션에서 변수에 액세스할 수 있습니다. 변수 출력을 테스트하려면 먼저 다음 명령을 사용하여 환경 변수를 새로 고치십시오.

source /etc/environment

그리고 실행하십시오 echo $ABC.

답변3

이는 거의 모든 쉘에서 사용할 수 있는 일반적인 절차입니다. 그럼에도 불구하고 사용자가 일반적으로 어떤 셸에서 로그인하는지 알아야 합니다.

path="$(grep $USER /etc/passwd | cut -d ':' -f 7)"
shell="$(basename -- "$path")"

그런 다음 이 쉘이 일반적으로 읽는 도트 파일을 파악해야 합니다.

man $shell

작동할 수 있는 지름길은 쉘 이름이 포함된 도트 파일을 나열하는 것입니다.

ls ~/.*${shell}*

로그인 중에 파일 중 하나가 실제로 읽혔는지 확인하려면 각 파일에서 파일 이름을 인쇄하면 됩니다. 예를 들면 다음과 같습니다.

echo .bashrc

로그인하면 어떤 파일을 읽고 있는지 확인한 다음 수정할 파일을 결정할 수 있습니다. echo "$0"값은 $0쉘이 도트 파일을 처리하는 방법에 따라 다르며 오해의 소지가 있을 수 있으므로 유사한 값을 사용하려고 시도해서는 안 됩니다 .

변수를 "영구적으로" 선언하는 경우 세션에만 적용된다는 점에 유의하세요. 변수의 값은 세션 없이는 액세스할 수 없으므로 세션 외부에서는 의미가 없습니다. "읽기 전용"을 의미하는 경우 이는 쉘에 따라 다르며불다당신은 그것을 사용할 수 있습니다 :

declare -r VAR

이미 값이 있는 경우 또는

declare -r VAR=value

할당하기도 합니다. 모든 쉘에 이 기능이 있는 것은 아닙니다.

대부분의 쉘에서 변수를 선언하려면 변수 이름( [A-Za-z_][A-Za-z0-9_]*) 뒤에 등호( 및공간 없음등호 주위), 그 뒤에 값이 옵니다(값이 단순하지 않은 한 따옴표로 묶는 것이 좋습니다 [A-Za-z0-9_]+). 예를 들어:

name="John Doe"
ip=127.0.0.1
HORRIBLE=1

답변4

정확한 명령은 다음과 같습니다.

echo 'export ABC = "123"' >> ~/.profile

관련 정보