LANG/LANGUAGE

정승균·2020년 12월 8일
0

리눅스

목록 보기
5/29
post-thumbnail

Ⅰ. 환경변수

  • 하나의 프로세스 안에서 정의되는 시스템이 사용하는 변수들 (다른 프로세스에는 적용 X)
  • 언어 관련 환경 변수에는 LANG과 LANGUAGE가 있음

1. 환경 변수 보기

  • 전체 보기 : $ printenv 혹은 $ env
jsg@jsg-ubuntu:~$ printenv
XDG_VTNR=7
XDG_SESSION_ID=c2
CLUTTER_IM_MODULE=xim
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/jsg
SESSION=ubuntu
...
LESSOPEN=| /usr/bin/lesspipe %s
INSTANCE=
UPSTART_JOB=unity7
XDG_RUNTIME_DIR=/run/user/1000
DISPLAY=:0
XDG_CURRENT_DESKTOP=Unity
GTK_IM_MODULE=fcitx
LESSCLOSE=/usr/bin/lesspipe %s %s
XAUTHORITY=/home/jsg/.Xauthority
_=/usr/bin/printenv
  • 특정 변수 보기: $ printenv var_name 혹은 $ echo $var_name
jsg@jsg-ubuntu:~$ echo $LANG
ko_KR.UTF-8
jsg@jsg-ubuntu:~$ printenv LANG
ko_KR.UTF-8

2. 환경 변수 임시 적용

  • $ export var_name=value
  • 로그아웃하면 환경변수는 원상복귀 됨
jsg2@jsg-ubuntu:~$ date
2020. 12. 09. (수) 06:44:39 KST
jsg2@jsg-ubuntu:~$ export LANG=en_US.utf8
jsg2@jsg-ubuntu:~$ date
Wed Dec  9 06:44:59 KST 2020
  • 이미 존재하는 변수에는 export는 생략해도 괜찮음
jsg@jsg-ubuntu:~$ LANG=en_US.utf8
jsg@jsg-ubuntu:~$ echo $LANG
en_US.utf8

3. 환경 변수 영구 적용

  • 세션별 적용
    ~/.pam_environment 또는 ~/.profile 파일 수정해야 함
  • 시스템 전역 적용
    /etc/environment 또는 /etc/profile.d/*.sh 파일 수정해야 함
  • Locale의 경우
    # localectl set-locale LANG=locale_name

4. 환경 변수 해제

  • $ unset var_name
    변수를 아예 삭제
  • $ export varname=
    변수는 남아있지만 빈 값
  • $ export -n var_name :
    이 경우 값 자체는 지워지지 않고 환경변수 목록에서만 제거되므로 $ export var_name 을 하면 다시 불러올 수 있음

Ⅱ. LANG 환경변수

  • language_county.character set 형식으로 이루어져 있음

  • language와 country를 locale이라고 부름
    ex) ko_KR.utf8 에서 ko_KR이 locale이고 utf8이 character set임

  • $ localectl list-locales : 사용 가능한 locale 정보

root@jsg-ubuntu:~# localectl list-locales
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
...
en_ZM.utf8
en_ZW.utf8
ko_KR.utf8
  • # locale-gen locale_name : 새로운 locale 설치

Ⅲ. LANGUAGE

  • LANGUAGE는 주로 GUI의 메세지와 메뉴 디스플레이 등의 언어를 결정하며 그 항목들에서는 LANG을 오버라이드함
  • 우선 순위에 따라 콜론으로 구별
  • $ export LANGUAGE=en:ko:jp => en, ko, jp 순

0개의 댓글