Linux: 터미널 명령어 결과를 영어로.

** 문제점!

이 방법대로 하면, Flatpak 설치 시 이상한 결과를 얻을 수도 있다. (자세한 내용은 아래에서.)


시스템 로캘을 한국/한국어로 설정하면, 터미널 명령어 결과도 당연히 한국어로 표시된다.

$ ls a                                                                                                                          nemoarch@Generousarch
ls: 'a'에 접근할 수 없음: 그런 파일이나 디렉터리가 없습니다

한국어로 표시되면 알아보기 쉬운 장점은 있지만, 이 문구를 근거로 검색을 하려 할 때는 다시금 영어로 출력해야 하는 번거로움도 있다. (물론, 한국어 그대로 검색한다면야 문제될게 없지만.)
이럴 때, 보통 export LANG=C 등을 써서 임시로 영어(기본값)로 바꾼 뒤 출력하곤 하는데…

이렇게 하면, 한국어는 몽땅 깨져버리는 심각한 문제가 있다.

$ ll
합계 8.0K
drwxr-xr-x 1 nemoarch nemoarch   86 2021-12-01 16:32 Desktop
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01 Documents
drwxr-xr-x 1 nemoarch nemoarch    6 2021-12-03 16:19 Downloads
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01 Music
drwxr-xr-x 1 nemoarch nemoarch   40 2021-12-01 16:29 Pictures
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01 Public
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01 Templates
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01 Videos
drwxr-xr-x 1 nemoarch nemoarch   56 2021-12-02 13:20 aur
-rw-r--r-- 1 nemoarch nemoarch   45 2021-12-04 21:52 kdesurc-nono
-rw-r--r-- 1 nemoarch nemoarch 1.9K 2021-12-01 22:19 xorg.conf
drwxr-xr-x 1 nemoarch nemoarch    0 2021-12-06 22:35 안녕

$ export LANG=C
$ ll
?? 8.0K
drwxr-xr-x 1 nemoarch nemoarch   86 2021-12-01 16:32  Desktop
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01  Documents
drwxr-xr-x 1 nemoarch nemoarch    6 2021-12-03 16:19  Downloads
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01  Music
drwxr-xr-x 1 nemoarch nemoarch   40 2021-12-01 16:29  Pictures
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01  Public
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01  Templates
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01  Videos
drwxr-xr-x 1 nemoarch nemoarch   56 2021-12-02 13:20  aur
-rw-r--r-- 1 nemoarch nemoarch   45 2021-12-04 21:52  kdesurc-nono
-rw-r--r-- 1 nemoarch nemoarch 1.9K 2021-12-01 22:19  xorg.conf
drwxr-xr-x 1 nemoarch nemoarch    0 2021-12-06 22:35 ''$'\354\225\210\353\205\225'

‘안녕’ 이라는 디렉토리가 LANG=C 환경에서는 기호로 바뀌어버렸고, 위쪽 ‘합계’도 ?? 가 돼버렸다.

또, 한국어로 설정돼 있을 때 문제점이 있다면, Yes/No 를 원하는 상황에서, ‘예/아니오’ 를 입력해야만 하는 경우를 들 수 있다. 영어라면 간단히 한 번의 손놀림(y/n)으로 처리할 수 있는데, 한국어일 경우는 더 길게 입력해야 하고, 따라서 불편함을 감수해야만 한다.

어떻게 하는게 제일 좋을지는 모르겠으나..
아무래도 터미널 명령어의 결과는 영어가 낫고, 한글은 제대로 표시되었으면 좋겠다.

이런 결과를 얻으려면??

$ locale
LANG=ko_KR.UTF-8
LC_CTYPE="ko_KR.UTF-8"
LC_NUMERIC="ko_KR.UTF-8"
LC_TIME="ko_KR.UTF-8"
LC_COLLATE="ko_KR.UTF-8"
LC_MONETARY="ko_KR.UTF-8"
LC_MESSAGES=C
LC_PAPER="ko_KR.UTF-8"
LC_NAME="ko_KR.UTF-8"
LC_ADDRESS="ko_KR.UTF-8"
LC_TELEPHONE="ko_KR.UTF-8"
LC_MEASUREMENT="ko_KR.UTF-8"
LC_IDENTIFICATION="ko_KR.UTF-8"
LC_ALL=

터미널에서 로캘(locale 명령)을 확인해보면, 위와 같은 결과가 나온다. 여기서, LC_MESSAGES 만을 C 로 바꿔서, 명령어 출력과 Yes/No 선택등을 영어로 하게끔 설정했다.

이 결과로!

$ ll
total 8.0K
drwxr-xr-x 1 nemoarch nemoarch   86 2021-12-01 16:32 Desktop
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01 Documents
drwxr-xr-x 1 nemoarch nemoarch    6 2021-12-03 16:19 Downloads
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01 Music
drwxr-xr-x 1 nemoarch nemoarch   40 2021-12-01 16:29 Pictures
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01 Public
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01 Templates
drwxr-xr-x 1 nemoarch nemoarch    0 2021-11-28 22:01 Videos
drwxr-xr-x 1 nemoarch nemoarch   56 2021-12-02 13:20 aur
-rw-r--r-- 1 nemoarch nemoarch   45 2021-12-04 21:52 kdesurc-nono
-rw-r--r-- 1 nemoarch nemoarch 1.9K 2021-12-01 22:19 xorg.conf
drwxr-xr-x 1 nemoarch nemoarch    0 2021-12-06 22:35 안녕

$ ll a
ls: cannot access 'a': No such file or directory

‘total’ 은 영어로 나왔고, ll a 결과도 영어지만, ‘안녕’도 깨지지 않고 잘 표시됐다.
헌데, 만약 임시로 특정 명령만 한국어로 출력을 바꿔주려면?

$ LC_MESSAGES="ko_KR.UTF8" ll a                                                                                                    2
ls: 'a'에 접근할 수 없음: 그런 파일이나 디렉터리가 없습니다

이렇게 LC_MESSAGES="ko_KR.UTF8" 를 앞에 써 주고, 명령어를 넣어주면 된다.
다만, 매번 저렇게 넣기는 귀찮으므로, alias 를 만들어쓰면 훨씬 간편하겠다.

alias kor='LC_MESSAGES="ko_KR.UTF8"'

그래서 설정은 어떻게?

간단하게, .bashrc/.zshrc 에 export 행을 넣어주는 방법을 택했다. 물론, 기본 로캘은 KDE 설정에서 한국/어로 해줬기에, 기본값은 ko_KR.utf8 이다.

export LC_MESSAGES=C

다만, 살짝 이상한 점이 있다.
여기서 export LC_MESSAGES=en_US.utf8 로 해도, 영어로 출력되지 않는다. 꼭 C 로 해야만 되는데.. 왜 이런건지는 모르겠다.


Flatpak 은, 이렇게 Locale 이 섞여있는 상황을 인식하지 못한다.
따라서, LC_MESSAGES=C 인 상황에서 Flatpak 을 설치하고, 리브레오피스를 올리면, 메뉴가 영어로만 뜨고, (여기까지만 해도 큰 문제는 아닌데..), ‘한국어로 된 파일’을 읽어오지 못하는 아주 큰 문제에 직면하게 된다.

이걸 수동으로 수정해주는 방법은 모르겠고..
몽땅 삭제(Uninstall)한 뒤에 LC_MESSAGES 를 한국어로 바꾸고, 다시 설치해야만 한다.

현재까지는 flatpak 에서만 발견했지만, 또 어떤 프로그램에서 이런 사태(?)가 벌어질진 모르겠다…

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.