이 사이트는 질문이라기보다는 불만에 가깝기 때문에 이 문제를 해결하기에는 적합한 사이트가 아닐 수도 있지만 여기에 있습니다.
오늘 저는 컴퓨터를 Mint 15에서 Debian 7.6으로 업데이트했습니다. 이렇게 하면 내 컴퓨터는 기존의 모든 파일 이름이 UTF-8 대신 ISO-8859-1로 인코딩된 것으로 생각합니다. 예를 들어 "à"가 포함된 파일 이름은 이제 "à" 등으로 표시됩니다.
알고보니 내 시스템에 말해야 했어분명히export LANG=en_US.UTF-8
.bashrc 파일을 넣으면 파일 시스템이 UTF-8을 사용합니다.
문제는 왜인가? 2014년이라는 시대에 왜 이런 일이 필요한가? 분명히 Mint의 기본값은 UTF-8입니다. 데비안은 왜 달라야 합니까? 내가 원하는 로케일을 설치할 때 지시했고 /etc/locale.gen에는 그것이 en_US.UTF8 UTF8
유일한 (주석 처리되지 않은) 행으로 포함되어 있음에도 불구하고 데비안이 이렇게 모호하고 오래된 기본값을 사용하는 이유는 무엇입니까? 내보내기 라인을 편집하려면 지금부터 만드는 모든 새 사용자 계정에 대해 .bashrc 파일을 편집해야 합니까?
답변1
이것데비안의 기본 로케일적어도 천명음 이후에는 UTF-8로 인코딩되어 있습니다(언제 전환했는지 기억이 나지 않습니다). 따라서 설치 중에 기본이 아닌 일부 설정을 선택했어야 합니다.
내보내기를
LANG=en_US.UTF-8
내 .bashrc 파일에 넣습니다.
그건 안 되니까.bashrc
잘못된 파일입니다. 여기에 정의된 환경 변수는 터미널에서 실행되는 프로그램에만 적용됩니다.
이 환경 변수를 정의하는 올바른 위치는 시스템 설정 또는 사용자별 설정 /etc/environment
으로 만드는 것 입니다. ~/.pam_environment
두 파일 모두로그인한 상태에서 읽기(모든 로그인 방법을 통해).
특정한로케일 변수문자 인코딩의 경우 LC_CTYPE
.settings 를 포함한 LANG
모든 설정이 있습니다.LC_COLLATE
놀라운 결과를 가져올 수도 있다. 를 설정하면 됩니다 LC_CTYPE
.
LANG
따라서 설정에서 제거 .bashrc
하고 LC_CTYPE=en_US.utf8
해당 위치(예: /etc/environment
또는 ) 에 추가하세요 ~/.pam_environment
.
답변2
첫째, Mint 15를 Debian 7.6으로 업데이트할 수 있다는 사실에 놀랐습니다. 결국 그들은 다른 분포입니다.
나는 당신이 유럽에 있고 로케일에 관한 몇 가지 질문에 대답했기 때문에 데비안이 ISO 8859.1을 사용하기로 결정했다고 가정합니다.
답변3
내보내기 라인을 편집하려면 지금부터 만드는 모든 새 사용자 계정에 대해 .bashrc 파일을 편집해야 합니까?
이 경우 가장 좋은 방법은 시스템 전체 파일에 넣는 것입니다. 먼저 어딘가에 이미 설정되어 있는지 확인하세요.
grep -R LANG /etc
거기에서 아무것도 변경하고 싶지 않을 수도 있습니다.
자일스의 대답아마도 이것을 설정하는 가장 효율적인 장소가 있을 것입니다. 그러나 "로그인 시 읽기(모든 로그인 방법을 통해)"의 의미를 설명하기 위해 일부를 여기에 남겨두겠습니다.
ZZ-local.sh
파일을 생성하여 에 넣을 수 있습니다 /etc/profile.d
. 사용자가 로그인하면 해당 파일은 사전순으로 가져오므로 ZZ
이전 내용을 덮어써야 합니다. 파일은 실행 가능하거나 shebang을 포함할 필요가 없으므로 한 줄이면 export LANG=...
됩니다.
일부 GUI 로그인 디스플레이 관리자아니요읽기 - 예를 들어, lightdm(이에 대한 인기 있는 내용 중 하나를 발견했을 수 있습니다 .profile
. lightdm은 init 스크립트에서 내보내집니다.) 이 경우 WRT에 대해 설명한 것과 동일한 작업을 수행해야 하지만 실제로는 다음을 수행해도 문제가 되지 않습니다.grep
$LANG
/etc/profile.d
/etc/X11/Xsession.d
ln -s /etc/profile.d/ZZ-local.sh /etc/X11/Xsession.d/ZZ-local
두 파일 모두에 대한 심볼릭 링크를 만듭니다. 이는 소스를 두 번 연속으로 가져오는 것을 의미할 수 있다는 점을 명심하세요. 비록 설정만 했다면 $LANG
괜찮습니다.