본문 바로가기

Linux

[Linux] MAC 터미널, 리눅스 한글 깨짐 현상 수정 방법

반응형

오늘 서버 패스워드 변경을 위해 접속을 했는데, 비밀번호 변경 시에 아래와 같이 문자 깨짐 현상이 발생하였습니다.

passwd

Enter login(LDAP) password: 
??  ??ȣ:
?߸??? ??ȣ: ???? ??ȣ?? ??????
??  ??ȣ:
?߸??? ??ȣ: ???? ??ȣ?? ??????
??  ??ȣ:
?߸??? ??ȣ: ???? ??ȣ?? ??????
passwd: ???񽺸? ?ִ?? ??õ???

원래 영어로 나왔던 것 같은데, 아마도 최근에 한글을 노출시키도록 서버 설정이 무언가 변경이 되었고 그 과정에서 한글이 깨져 나오는 것 같았습니다.

 

locale 명령어를 실행하면 현재 세팅된 언어를 확인할 수 있습니다.

locale

# 결과
LANG=ko_KR.eucKR
LC_CTYPE="ko_KR.eucKR"
LC_NUMERIC="ko_KR.eucKR"
LC_TIME="ko_KR.eucKR"
LC_COLLATE="ko_KR.eucKR"
LC_MONETARY="ko_KR.eucKR"
LC_MESSAGES="ko_KR.eucKR"
LC_PAPER="ko_KR.eucKR"
LC_NAME="ko_KR.eucKR"
LC_ADDRESS="ko_KR.eucKR"
LC_TELEPHONE="ko_KR.eucKR"
LC_MEASUREMENT="ko_KR.eucKR"
LC_IDENTIFICATION="ko_KR.eucKR"
LC_ALL=ko_KR.eucKR

저는 ko_KR.eucKR로 세팅이되어있었고, 아마도 ko_KR.UTF-8로 변경을 해줘야 할 것 같았습니다.

서버의 언어 설정을 변경해주는 방법은 구글에 몇가지 나왔지만 저는 공용 서버이다 보니 제 계정에 언어만 설정해주는 방법을 위주로 찾아보았습니다.

 

구글에 검색을 해본 결과 첫번째로 나온 방법은

방법 1.

.bashrc 파일에 아래 코드를 추가한 후 

export LC_ALL=ko_KR.UTF-8

아래처럼 source 명령어를 통해 언어 변경해주는 것이었습니다.

source ~/.bashrc

그러나 저는 source 명령어를 실행할 경우 아래와 같은 오류가 발생하였습니다.

if: Expression Syntax.

 

방법 2.

두 번째 방법은 방법 1과 거의 비슷하지만 .bashrc 파일 대신에 .bash_profile 파일에 코드를 추가해주는 것이었습니다.

(.bashrc 파일은 현재 세션에만 적용되어서 재 접속하면 적용이안되고, .bash_profile 파일은 재접속 시에도 유지되는 차이가 있다고 함)

export LC_ALL=ko_KR.UTF-8
source ~/.bash_profile

그러나 .bash_profile 파일에 source 명령어 실행 시에도 역시 동일한 오류가 발생하였습니다.

if: Expression Syntax.

 

위와 같은 오류가 발생하는 이유는 bash 쉘이 아닌 csh쉘 환경이기 때문에 if문을 인식하지 못해서 오류가 발생하는 것이라고 합니다.

 

 

방법 3.

이럴 경우 .bashrc 파일이 아니라 .cshrc 파일을 수정해주면 될 것 같은 느낌이 들었습니다.

그래서 .cshrc 파일의 소스를 보니, 아래와 같이 언어를 설정해주는 부분이 있었습니다.

setenv LC_ALL "ko_KR.eucKR"
setenv LANG "ko_KR.eucKR"

그래서 위에 부분을 ko_KR.UTF-8로 변경해 주었습니다.

setenv LC_ALL "ko_KR.UTF-8"
setenv LANG "ko_KR.UTF-8"

그다음 아래와 같이 source 명령을 해주었더니 오류가 없이 실행되었습니다.

source ~/.cshrc

그리고 다시 locale 명령어를 실행해보니 정상적으로 언어가 변경된 것을 확인하였습니다.

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="ko_KR.UTF-8"
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=ko_KR.UTF-8

그리고 패스워드를 다시 변경해보니... 아래와 같은 오류였네요😅

Enter login(LDAP) password: 
새  암호:
잘못된 암호: 이전 암호와 유사함
새  암호:
잘못된 암호: 이전 암호와 유사함
새  암호:
잘못된 암호: 이전 암호와 유사함
passwd: 서비스를 최대로 재시도함

 

한글 깨짐 현상 수정 완료!

 

 

참고링크

반응형