[Linux] localectl 명령어
CentOS 7 버전부터 많은 명령어들이 통합되어 제공됩니다. 로케일 및 키보드 관련 부문은 localectl 명령어에서 제공합니다.
locale은 원래 지역이나 장소를 의미하지만, IT 환경에서는 언어 및 지역 설정을 지칭합니다.
리눅스에서는 문자 인코딩, 언어, 날짜/시간, 숫자 등의 지역화 설정을 locale 문자열로 정의합니다. 대부분의 유닉스 및 리눅스 배포판은 POSIX 기반이며, 이는 Red Hat 및 Debian 계열도 포함됩니다.
✅ locale 명령어
기본 명령어는 현재 시스템에 설정된 로케일 값을 보여 줍니다.
기본 명령어 입력 시 언어와 문자셋 관련 항목은 LANG 변수입니다.
~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
항목 | 설명 |
---|---|
LANG | 전체 로케일의 기본값. 개별 LC_로 설정되지 않은 항목에 사용됨. |
LC_CTYPE | 문자의 분류(알파벳, 숫자 등) 및 대소문자 변환 규칙을 정의함. |
LC_NUMERIC | 숫자 표현 방식(소수점 기호, 천 단위 구분자 등)을 설정함. |
LC_TIME | 날짜 및 시간의 형식(예: 월/일/연도 순서, 요일 이름 등)을 설정함. |
LC_COLLATE | 문자열 정렬 순서를 정의함. (예: 사전순 정렬 방식) |
LC_MONETARY | 통화 표시 형식(통화 기호 위치, 소수점 자리 등)을 설정함. |
LC_MESSAGES | 시스템 메시지의 언어를 설정함. (예: 오류 메시지 등) |
LC_PAPER | 용지 크기 설정 (예: A4, Letter 등) |
LC_NAME | 사람 이름의 형식(예: 성, 이름 순서 등)을 설정함. |
LC_ADDRESS | 주소 형식(예: 국가, 지역, 우편번호 순서 등)을 설정함. |
LC_TELEPHONE | 전화번호 형식(예: 국가 코드, 지역번호 등)을 설정함. |
LC_MEASUREMENT | 단위계 설정 (미터법/야드파운드법) |
LC_IDENTIFICATION | 로케일 정보의 식별자 (로케일 이름, 작성자 등 메타 정보) |
LC_ALL | 모든 LC_* 항목에 대한 일괄 설정값. 일반적으로 비워 두거나 수동 설정. |
~]# echo $LANG
en_US.UTF-8
en은 언어, US는 국가(지역), UTF-8은 문자 인코딩을 의미합니다.
🔲 시스템에 설치 된 locale 보기: -a
시스템에 설치 된 모든 로케일 항목을 보여줍니다.
~]# locale -a
C
C.utf8
en_AG
en_AU
en_AU.utf8
en_BW
en_BW.utf8
...
✅ localectl 명령어: 시스템 Lacale 확인
localectl 명령어 실행 결과입니다. locaelctl status 실행 결과 역시 동일하게 나옵니다.
~]# localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: (unset)
X11 Layout: (unset)
~]#
구분 36726_c461ce-b0> |
설명 36726_057417-70> |
---|---|
System Locale 36726_a4c245-8f> |
현재 설정된 로케일 36726_381962-38> |
VC Keymap 36726_31adbb-22> |
가상 콘솔에서 사용하는 키보드 배열 설정 36726_be3902-86> |
X11 Layout 36726_5d01ed-f9> |
Xwindows에서 사용되는 키보드 레이아웃 36726_9b012c-f1> |
🔲 localectl 명령어 옵션
명령어 36726_6e30a1-1e> |
설명 36726_0f589f-c5> |
---|---|
status 36726_8e8dc7-11> |
현재 로케일 및 키보드 설정 확인 36726_0c60e7-0c> |
set-locale LANG=ko_KR.UTF-8 36726_1a4fec-0a> |
시스템 로케일 설정 변경 36726_e2c6d1-11> |
set-keymap us |
콘솔 키보드 레이아웃 US로 설정 36726_c8e67d-54> |
set-keymap ko 36726_5b57ca-d0> |
콘솔 키보드 레이아웃 KO로 설정 36726_eb6bf8-15> |
set-x11-keymap us 36726_ce7de2-fe> |
X11 키보드 레이아웃 US로 설정 36726_d92485-2b> |
set-x11-keymap kr 36726_b10df6-45> |
X11 키보드 레이아웃 KR로 설정 36726_d80f53-0d> |
list-locales 36726_4b9e52-ac> |
설치된 로케일 목록 보기 36726_898fe2-a3> |
list-keymaps 36726_3bf624-16> |
사용 가능한 키보드 맵 목록 보기 36726_2b063c-42> |
🔲 설정 가능한 로케일 출력
🔲 로케일 설정
export LANG=ko_KR.UTF-8는 Shell 세션에만 임시 적용하는 설정입니다. 서버 시스템에 영구 설정 방법은 아래와 같습니다.
localectl set-locale LANG=ko_KR.UTF-8
Failed to issue method call: Locale ko_KR.UTF-8 not installed, refusing.
Alma Linux 9.4 서버에서 ko_KR.UTF-8 로케일이 설치되지 않았다는 메시지를 확인했습니다.
locale -a
ko_KR.UTF-8 로케일이 없다는 걸 재 확인 후
dnf install glibc-langpack-ko
~]# locale -a | grep ko_KR
ko_KR.euckr
ko_KR.utf8
~]# localectl set-locale LANG=ko_KR.UTF-8
~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
~]# localectl status
System Locale: LANG=ko_KR.UTF-8
VC Keymap: (unset)
X11 Layout: (unset)
시스템에서는 적용되어 있지만 SSH에서는 적용이 바로 안되어, SSH를 다시 접속하면 로케일이 적용된 걸 확인 했습니다. 바로 적용하려면 source 명령어를 실행합니다.
~]# cat /etc/locale.conf
LANG=ko_KR.UTF-8
~]# source /etc/locale.conf # 또는 localectl set-locale로 locale.conf 반영
🔲 /etc/locale.conf
locale.conf는 눅스 시스템에서 시스템 전체의 로케일 설정 정보를 담고 있는 설정 파일입니다.
파일명 36726_766266-9f> |
용도 |
---|---|
/etc/locale.conf 36726_1783ca-4c> |
시스템 전체 로케일 설정 파일 36726_1645bc-14> |
36726_2feeac-93> |
쉘 환경 설정 파일(로그인 세션 시작 파일 위치) |