Raspbian에서 LXDE의 $PATH가 수정되지 않았습니다.

Raspbian에서 LXDE의 $PATH가 수정되지 않았습니다.

home/pi에 bin 디렉토리가 있습니다. .profile을 통해 로그인하면 $PATH에 추가되지만 LXDE로 이동하여 LXTerminal을 사용하면 bin 디렉토리가 더 이상 $PATH에 추가되지 않습니다.

답변1

대부분의 설정에서 ~/.profile로그인 시 읽기환경 변수를 설정하는 일반적인 위치입니다. 불행하게도 배포판, 디스플레이 관리자(그래픽 로그인 방법) 및 데스크탑 환경의 일부 조합에서는 이 파일을 건너뜁니다. 사용 중인 디스플레이 관리자(lxdm?)를 지정하지 않았지만 ~/.profileX 세션이 시작될 때 읽기를 예약하지 않는 것 같습니다.

나는 Raspbian이 이를 지원한다고 믿습니다 ~/.pam_environment. 각 로그인 방법은 pam_env골동품이 아닌 이 파일을 읽습니다.폴리아크릴아미드인증 또는 세션 부분. 나는 이것이 Raspbian의 경우라고 생각합니다( 언급된 줄을 확인 /etc/pam.d/common-session하거나 포함하십시오 ). 에서 환경 변수를 정의할 수 있지만 가능성은 에서보다 제한적입니다 . 쓰기만 가능 하고 다른 변수를 사용하거나 변수의 기존 값에 추가할 수는 없습니다. 따라서 in 처럼 쓸 수 없으며 철자를 써야 합니다./etc/pam.d/lxdmpam_env.so~/.pam_environment~/.profileVARIABLE=VALUEPATH=$HOME/bin:$PATH~/.profile

PATH=/home/pi/bin:/usr/local/bin:/usr/bin:/bin

환경 변수를 설정하지 않는 것이 좋습니다..bashrc. 서브쉘을 시작할 때마다 기존 값을 덮어쓰게 되며 변수는 터미널에서 쉘을 통해 시작된 프로그램에서만 정의됩니다.GUI에서 직접 시작된 프로그램에는 없음.

답변2

에서 man bash:

bash를 다음과 같이 사용할 때인터렉티브로그인껍데기, 또는 --login 옵션을 사용하여 먼저 /etc/profile 파일(파일이 있는 경우)에서 명령을 읽고 실행하는 비대화형 셸로 사용합니다. 파일을 읽은 후 ~/.bash_profile, ~/.bash_login 및~/.프로필, 해당 순서대로 존재하고 읽을 수 있는 첫 번째 명령부터 명령을 읽고 실행합니다. 이 동작은 셸을 시작할 때 --noprofile 옵션을 사용하여 비활성화할 수 있습니다.

언제로그인 쉘종료 시 bash는 ~/.bash_logout 및 /etc/bash.bash_logout 파일이 있는 경우 해당 파일에서 명령을 읽고 실행합니다.

언제 대화형 쉘이것은 로그인이 아닙니다껍데기시작된 후 bash는 명령을 읽고 실행합니다.~/.bashrc, 파일이 존재하는 경우.

"대화형 쉘"은 터미널의 전경에서 실행되는 쉘이지만 반드시 그럴 필요는 없습니다.로그인껍데기.

로그인 쉘매개변수 0의 첫 번째 문자는 -이거나 --login 옵션으로 시작됩니다.

GUI 터미널은 이 작업을 수행하지 않습니다.

그렇기 때문에 일반적으로 .profile소스 에는 원하는 내용이 포함될 수 있습니다 .bashrc..bashrc모두쉘 및 .profile로그인 쉘에 불과한 모든 것. 때로는 (대화형 프롬프트)가 정의되었는지 .profile확인하여 대화형 프롬프트만 포함되도록 한정합니다. 한 가지 이유는 비대화형(예: 스크립트 실행) 셸에서 특정 별칭을 사용하지 않기 위해서입니다.$PS1.bashrc

따라서 $PATH 정의를 넣고 그것이 또는 ~/.bashrc에서 유래하는지 확인하세요 .~/.profile~/bash_profile

관련 정보