나는 gnome을 실행하기 위해 zsh와 gdm을 사용하고 있습니다. 얼마 전에 변수가 올바르게 설정되지 않은 것을 발견했습니다. 예를 들어 LANG/LC_ALL은 올바르지 않습니다( ""
대신 en_GB.UTF-8
).
와 .zshrc
로 나누어 보겠습니다 . 후자에서는 환경 변수를 설정했는데 세션이 시작되기 전에 변수를 어떻게 설정합니까? 몇 가지 옵션( , ) 을 시도했지만 아무 것도 작동하지 않는 것 같습니다..zshrc
.profile
.xinitrc
.xsessionrc
편집하다명확히하기 위해 - 나는 사용 .profile
했고수동출처를 밝히세요 .zshrc
. 어쨌든 문제는 바뀌지 않습니다.
답변1
쉬운 방법은 타임머신을 발명하고 쉘 시작 파일을 설계한 다양한 사람들을 방문하여 세 가지를 명확하게 구별하라고 말하는 것입니다.
- 환경 변수와 같은 세션 설정
- 세션 시작, 즉 명령줄 셸이나 창 관리자를 시작하거나
startx
; - 별칭, 프롬프트, 키 바인딩과 같은 쉘 초기화.
이식 가능한 방식으로 세션 및 쉘 정확성을 얻는 것은 그리 어렵지 않습니다. 로그인 시 초기화는 .profile
(or .zprofile
, or )에 들어가고 쉘 초기화는 or .login
에 들어갑니다 . 나는 이전에 대략 글을 쓴 적이 있다..bashrc
.zshrc
.bash_profile
,zsh 및 기타 쉘,이식성에 대한 추가 정보(주로 bash에 관한 것),읽는 사람에 대한 추가 정보.profile
.
남은 문제는 세션 설정과 세션 시작을 구별하는 것입니다. 대부분의 경우 ~/.profile
이는 로그인할 때 실행되며 두 가지를 모두 수행할 수 있지만 예외가 있습니다.
- 로그인 셸이 (t)csh 또는 zsh 이고
~/.login
소스~/.zprofile
가~/.profile
.bash~/.bash_profile
가 아닌 경우에도 마찬가지이지만 .~/.profile
~/.bash_profile
- 로그인한 경우디스플레이 관리자(xdm, gdm, kdm, ...),
~/.profile
읽을지 여부는 프로그램 버전, 배포판(Linux 또는 기타) 및 선택한 세션 유형에 따라 다릅니다.- 세션을 시작하기 위해 디스플레이 관리자를 사용하는 경우
.profile
환경 변수를 설정해야 하지만 세션(예: 창 관리자)을 시작해서는 안 됩니다. - X 세션의 기존 구성 파일은
~/.xsession
세션 설정 및 세션 시작을 수행합니다. 따라서 파일은 본질적으로. ~/.xsession; . ~/.xinitrc
.일부 배포 소스는~/.profile
이전에 였습니다~/.xsession
.최신 배포판은~/.xsession
디스플레이 관리자에서 "사용자 정의" 세션을 선택할 때만 소스를 제공하며 이러한 세션을 항상 사용할 수 있는 것은 아닙니다. - 세션 관리자는 환경 변수를 설정하는 고유한 방법을 가질 수 있습니다. (이것은 구성 파일을 통해 또는 로그인 시 세션 유형을 선택하여 선택한 데스크탑 환경의 선택적 부분입니다. 사용자 아래에서 실행되는 디스플레이 관리자가 제공하는 세션 시작 스크립트와 혼동하지 마십시오. 시스템 범위 선택 예, 엉망입니다.)
- 세션을 시작하기 위해 디스플레이 관리자를 사용하는 경우
요약하면 ~/.profile
환경 변수의 위치가 정확합니다. 읽히지 않으면 거기에서 가져오거나 ~/.xsession
(그리고 거기에서 X 프로그램을 실행하십시오) 시스템별 방법을 찾으십시오(이는 배포판, 디스플레이 관리자(있는 경우), 세션 유형에 따라 다를 수 있습니다) (디스플레이 관리자가 있는 경우) 및 데스크톱 환경 또는 세션 관리자도 포함됩니다.
답변2
Gentoo 문서에 기사가 있습니다.젠투 리눅스 현지화 가이드.3 장로케일 설정에 관한 것입니다.
대부분의 경우 사용자는 전역적으로 LANG 변수만 설정합니다. 이 예는 유니코드 독일어 로케일에 대한 것입니다.
코드 목록 3.1: 기본 시스템 로케일 설정
/etc/env.d/02locale
LANG="en_GB.UTF-8"
내 젠투에서는 LANG
이 파일이 설정되어 있고 모든 것이 잘 작동합니다...
pbm@tauri ~ $ cat /etc/env.d/02locale
LANG="pl_PL.UTF-8"
pbm@tauri ~ $ locale
LANG=pl_PL.UTF-8
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=