세션 전체 환경 변수 및 PATH를 설정하는 방법은 무엇입니까?

세션 전체 환경 변수 및 PATH를 설정하는 방법은 무엇입니까?

인터넷에서 다른 사람들도 이 문제를 겪는 것을 보았지만 해결책이 결정적이지 않았기 때문에 다시 한 번 이 문제에 대해 알리고 싶었습니다.

우분투 위키의 이 페이지에 따르면: https://help.ubuntu.com/community/EnvironmentVariables 세션 전체 환경 변수를 설정하는 권장 방법은 ~/.pam_environment를 수정하는 것입니다.

내 목표는 다음과 같습니다.

  1. 내 홈 폴더의 특정 위치에 대한 경로를 값으로 갖는 환경 변수 ANDROID_HOME을 만들고 싶습니다.
  2. PATH에 두 개의 폴더를 추가하고 싶습니다.

내가 한 일은 다음과 같습니다. ~/.pam_environment 파일이 존재하지 않아서 파일을 만들고 다음 줄을 추가했습니다.

ANDROID_HOME=${HOME}/Android/Sdk
PATH DEFAULT=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools

로그아웃했다가 다시 로그인했습니다.

결과는 예상되지 않습니다. 터미널을 열고 $ANDROID_HOME을 에코했는데 그게 내가 얻은 것입니다.

${HOME}/Android/Sdk

${HOME}내 홈 폴더 경로로 대체되지 않은 것 같습니다 . 왜 이렇게이다?

$ANDROID_HOME에 대한 -ing을 관찰합니다 cd(Android/Sdk는 실제로 내 홈 폴더에 존재합니다).

anvar@crazymachine:~$ cd $ANDROID_HOME
bash: cd: ${HOME}/Android/Sdk: No such file or directory

또한 $PATH를 에코하면 다음이 제공됩니다.

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:${HOME}/Android/Sdk/tools:${HOME}/Android/Sdk/platform-tools

변수가 논리적으로 가정할 수 있는 값으로 대체되지 않는 이유는 무엇입니까? 특히 앞서 언급한 사이트의 예에서 변수가 값 내부에서 사용될 수 있다는 인상을 주었을 때 더욱 그렇습니다.

GUI 프로그램도 액세스할 수 있는 세션 전체 환경 변수를 설정하는 올바른 방법은 무엇입니까?

답변1

의 예위키를 통해 세션 변수를 설정하는 경우 ~/.pam_environment메모에 다음과 같이 명시되어 있습니다.

변수 확장이 작동하려면 PATH 수정에 사용되는 구문(스크립트 파일과 다른 구문)이 필요합니다.

따라서 첫 번째 행은 다음과 같아야 합니다.

ANDROID_HOME DEFAULT=${HOME}/Android/Sdk

답변2

두 가지 제안:

첫째 - 환경 선언문의 형식은 다음과 같아야 합니다.

ANDROID_HOME=$HOME/Android/Sdk
PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

둘째, 새 환경 설명을~/.profile

답변3

export HOME경로 변수를 설정한 후에 필요할 수도 있다고 생각합니다 (~/.bashrc에서 수행합니다).

관련 정보