간단한 방법은 타임 머신을 발명하고 셸 시작 파일을 고안 한 다양한 사람들을 방문하여 세 가지를 명확하게 구분하도록 지시하는 것입니다.
- 세션 설정, 예를 들어 환경 변수;
- 세션 시작, 즉 명령 줄 쉘 또는 창 관리자 시작 또는 실행
startx
;
- 쉘 초기화 (예 : 별명, 프롬프트, 키 바인딩)
이식 가능한 방식으로 세션 대 셸을 올바르게 얻는 것은 그리 어렵지 않습니다. 로그인 시간 초기화가 .profile
(또는 .zprofile
, 또는 .login
), 셸 초기화가 .bashrc
또는으로 이동 .zshrc
합니다. 내가 이전에 대해 서면으로 작성했습니다 .bash_profile
, zsh을 대 다른 조개 , (대부분의 bash에 대한) 이동성에 대한 더 , 더 읽는 사람에 대해.profile
.
나머지 문제는 세션 설정과 세션 시작을 구별하는 것입니다. 대부분의 경우 ~/.profile
로그인시 실행되며 두 가지로 두 배로 증가 할 수 있지만 예외는 있습니다.
- 로그인 쉘 (t) CSH 또는 zsh을하고, 경우
~/.login
와 ~/.zprofile
대신에 공급된다 ~/.profile
. bash와 Ditto는 ~/.bash_profile
소싱 ~/.profile
을 통해 쉽게 해결할 수 있습니다 ~/.bash_profile
.
- 당신이 아래에 로그인하는 경우 디스플레이 관리자 (XDM, GDM, KDM, ...), 당신의 여부
~/.profile
IS 읽고 배포판 (리눅스 또는 기타)에, 프로그램의 버전에 따라 다릅니다 및 세션 유형 당신은 무엇을 선택합니다.
- 디스플레이 관리자를 통해 세션을 시작하는 경우
.profile
환경 변수를 설정해야하지만 세션을 시작하지 않아야합니다 (예 : 창 관리자).
- X 세션의 기존 구성 파일은
~/.xsession
세션 설정과 세션 시작을 모두 수행하는 것입니다. 따라서 파일은 본질적으로있을 수 있습니다 . ~/.xsession; . ~/.xinitrc
. 일부 배포판은 ~/.profile
이전 소스 ~/.xsession
입니다. 최신 배포 ~/.xsession
는 디스플레이 관리자에서 "사용자 정의"세션을 선택할 때만 발생하며 이러한 세션을 항상 사용할 수있는 것은 아닙니다.
- 세션 관리자에는 자체 환경 변수 설정 방법이있을 수 있습니다. (이것은 구성 파일을 통해 또는 로그인 할 때 세션 유형을 선택하여 데스크탑 환경의 선택적 부분입니다. 사용자가 실행하지만 디스플레이 관리자가 제공하는 세션 시작 스크립트와 혼동하지 마십시오. 시스템 전체에 따라 선택됩니다 (예, 엉망입니다).
요약하면 ~/.profile
환경 변수에 적합한 곳입니다. 읽지 않은 경우 소스를 소싱 ~/.xsession
하거나 X 프로그램을 시작하거나 배포판, 디스플레이 관리자 (있는 경우), 디스플레이 관리자 인 경우 세션 유형 및 데스크톱 환경 또는 세션 관리자).
.profile
전혀로드되지, 또는 뭔가 다른 로케일 변수를 덮어 쓰기한다? (같은 다른 변수를 설정하십시오export MACIEJ_PROFILE=yes
확인.set -x
에서.profile
실행되고 있으며, 후 내용을 확인할 수있는 좋은 방법이 될 수 있습니다.profile
, 그것은 전혀 읽은 경우입니다.) 소싱 아무 소용이 없습니다.profile
에서가.zshrc
.