[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은 문자 인코딩을 의미합니다.

Linux Locale 의미

🔲 시스템에 설치 된 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)         
 ~]# 

구분

설명

System Locale

현재 설정된 로케일

VC Keymap

가상 콘솔에서 사용하는 키보드 배열 설정

X11 Layout

Xwindows에서 사용되는 키보드 레이아웃

🔲 localectl 명령어 옵션

명령어

설명

status

현재 로케일 및 키보드 설정 확인

set-locale LANG=ko_KR.UTF-8

시스템 로케일 설정 변경

set-keymap us

콘솔 키보드 레이아웃 US로 설정

set-keymap ko

콘솔 키보드 레이아웃 KO로 설정

set-x11-keymap us

X11 키보드 레이아웃 US로 설정

set-x11-keymap kr

X11 키보드 레이아웃 KR로 설정

list-locales

설치된 로케일 목록 보기

list-keymaps

사용 가능한 키보드 맵 목록 보기

🔲 설정 가능한 로케일 출력

[Linux] localectl 명령어

🔲 로케일 설정

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
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는 눅스 시스템에서 시스템 전체의 로케일 설정 정보를 담고 있는 설정 파일입니다.

파일명

용도

/etc/locale.conf

시스템 전체 로케일 설정 파일

~/.bashrc, ~/.profile

쉘 환경 설정 파일(로그인 세션 시작 파일 위치)
EX) export LANG=ko_KR.UTF-8

Similar Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다