
bash
사용된 셸( 및 ) 과 별도로 사용자별로 영구 환경 변수를 설정하려면 어떻게 해야 합니까 zsh
?fish
답변1
편집 : 따라환경 변수를 설정하는 가장 좋은 distro/shell 독립적 방법은 무엇입니까?, 이에 대한 가장 좋은 해결책은 다음과 같습니다.~/.pam_environment
~/.profile
편집: 모든 쉘에서 읽히지 않기 때문에 해킹 솔루션으로 되돌아갔습니다 .
모든 쉘 소스 /etc/profile
.
즉 /etc/profile
, 에 다음과 같은 줄을 넣을 수 있다는 뜻입니다.
. $HOME/.custom-profile
~/.custom-profile
그런 다음 각 사용자에 대해 변수를 추가할 수 있습니다.
답변2
모든 쉘은 서로 다른 사용자별 프로필 파일을 읽습니다(zsh: ~/.profile, bash: ~/.bash_profile, csh에는 rc 파일만 있는 등). 따라서 이러한 잠재적 후보를 모두 변경해야 합니다.
그러나 최소한 대부분의 쉘은 ~/.profile 읽기로 돌아가므로(이 점을 지적해 주신 @terdon에게 감사드립니다!) 내보내기를 여기에 넣을 수 있습니다.
"로그인"은 일반적으로 uid 및 gid를 변경할 수 있는 프로세스(일반적으로 루트로 실행되는 로그인 관리자)에 의해 수행되므로 생성된 프로그램(예: 셸)에 대한 환경을 정의하는 것은 이러한 프로그램에 달려 있습니다.
하지만 로그인 관리자가 두 개 이상 있고(GDM/lightdm/KDM/... 시각적 로그인 관리자, getty, logind/loginct, ssh, getty...) 서로 다른 파일에서 구성을 읽으므로 일관된 방법이 없습니다. 거기, 어느 쪽이든.