오늘 서버 패스워드 변경을 위해 접속을 했는데, 비밀번호 변경 시에 아래와 같이 문자 깨짐 현상이 발생하였습니다.
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: 서비스를 최대로 재시도함
한글 깨짐 현상 수정 완료!
참고링크
- https://sunspectra.tistory.com/entry/Source-%EB%AA%85%EB%A0%B9-%EC%8B%A4%ED%96%89%EB%B6%88%EA%B0%80-if-Expression-Syntax
- https://www.2cpu.co.kr/QnA/752623
- https://goni9071.tistory.com/150
- https://sunghs.tistory.com/104
- https://itbest.tistory.com/10
- https://knocxx.tistory.com/119
- https://www.sharedit.co.kr/qnaboards/24347
'Linux' 카테고리의 다른 글
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (0) | 2022.10.24 |
---|---|
[Tmux] MacOS에서 Tmux 설치 및 사용하기 (0) | 2022.03.07 |
[Linux] Nginx 설치하기, 버전 확인하기 (0) | 2021.11.05 |
[Linux] pm2 설치하기 (0) | 2021.11.05 |
[Linux] nvm을 이용하여 node 설치 확인하기 (0) | 2021.11.05 |