/etc/environments 파일에 경로를 추가했는데 이제 다음과 같습니다.
mindaugas@Kali:~$ cat /etc/environment | tr ":" "\n"
PATH="/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/sbin"
로그아웃했다가 다시 로그인합니다. 하지만 내 것은 $PATH
변함이 없습니다.
mindaugas@Kali:~$ echo $PATH | tr ":" "\n"
/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games
우분투 14.04 변경 사항에서 동일한 단계를 수행하십시오 $PATH
.
궁금해요 - 왜 그럴까요?
답변1
Linux에서는 /etc/environment
일반적으로 읽기가 수행됩니다.
pam_env.so로그인 중 모듈. 모듈이 최소 시스템에 설치되지 않거나, /etc 파일을 읽지 않도록 구성되거나, 로그인 프로세스 중에 호출되도록 /etc/pam.d/*에 구성되지 않을 수 있습니다. 바라보다 man pam_env pam
.
답변2
대부분의 쉘에는 인코딩을 로드할 의무가 없습니다 /etc/environment
.
셸이 찾는 정확한 파일과 해당 파일을 로드하려고 시도하는 순서는 사용하는 실제 셸에 따라 다르지만 일반적으로 신뢰할 수 있는 유일한 파일은 /etc/shellnamerc
. ~/.shellnamerc
자세한 내용은 선호하는 셸의 맨페이지를 참조하세요.
특정 우분투의 경우, 선호하는 셸은 구성 파일 /etc/
및/또는 생성 시 계정에 제공된 구성 파일을 로드하며, 이러한 구성 파일 중 하나는 해당 내용이 존재하는 경우 /etc/skel/
찾아서 로드하도록 지시합니다 ./etc/environment
예, 어떤 경우에는 편리한 기능이지만 보편적이지는 않습니다...그리고 솔직히 말해서할 수 없다하나는 쉘마다 환경 변수를 설정하는 방법이 다를 수 있기 때문입니다. 예를 들어 /etc/environment
Bourne 유형 쉘( bash
, sh
, ) 의 a는 dash
C 쉘( csh
, )에 적용되지 않습니다.tcsh
긴 이야기 짧게: /etc/environment
일반적이지만 보편적인 선택 기능은 아닙니다. 칼리가 부족한 것은 실수가 아니다.