[출처] http://www.ezbox.net/cygwin/bash.asp
한글 입출력 문제 해결 및 alias 설정
1byte 문자권을 대상으로 출시되는 Cygwin에서 한글 입출력에 문제가 있다는 것은 어찌보면 당연한 것일 수도 있다. 하지만 우리는 한글을 사용하는 한국인이 아닌가? 어쩔 수 없이 우리 힘으로 해결해야 한다.
Cygwin에서 완벽한 한글 입출력은 사실 쉽지 않은 문제이다. 하지만 기본적으로 사용, 즉 Cygwin 콘솔 상에서 한글을 쓰고, 읽을 수 있는 정도는 그리 어렵지 않게 해결 할 수 있다.
아무 작업도 하지 않은 상태에서 한글 파일파일 리스트는 다음 그림과 같이 출력된다. :-(
한글 입출력 문제는 해결하기 위해서는 위에서 언급한 Bash 설정 파일(/etc/profile, /etc/bash.bashrc, /etc/inputrc, $HOME/.bash.profile, $HOME/.bashrc, $HOME/.inputrc)을 조금 수정해야 한다.
먼저 시스템 규모 단위로 설정을 할 것인지 아니면 사용자별 설정을 할 것인지 결정해야 한다. 여기서는 여러 사용자 계정이 존재하는 Windows Server를 지원하기 위함이기 때문에 시스템 규모로 설정을 할 것이다. 사실 사용자별 설정과 별반 다를바 없다.
1. /etc/profile 수정
/etc 디렉토리를 보면 profile과 profile.default 파일이 존재하는데 이중 profile을 삭제하고, profile.default 파일을 profile로 이름을 바꾼다. 사실 이 작업은 수행하지 않아도 별 상관은 없지만 profile.default 파일에 몇가지 유용한 스크립트가 들어있기 때문에 가급적 이 파일을 아용한다.
이름을 바꾸었다면 vi와 같은 텍스트 편집기를 통해서 profile 파일을 열고 다음 내용을 추가한다.
if [ -f /etc/bash.bashrc ] ; then if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then |
2. /etc/inputrc 작성 및 수정
기본값으로 inputrc 파일이 존재하지 않는데 /etc 디렉토리에 새로 만들고, 다음 내용을 추가한다.
set meta-flag on # 터미널 자체의 8비트 문자 지원여부와 상관없이 8비트 입력을 가능하게 함.
set convert-meta off # 8비트 문자를 변환하지 않도록 함.
set output-meta on # 8비트 문자를 출력할 때 그대로 출력하도록 함.
set completion-ignore-case on # 자동 완성 기능을 사용할때 대소문자를 구별하지 않음.
set bell-style visible # 콘솔에서 나는 비프음(beep)이 나지 않게 함.
set horizontal-scroll-mode on #
set show-all-if-ambiguous on #
3. /etc/bash.bashrc 수정
Cygwin에서는 여느 Linux 배포판과 달리 bashrc가 아니고 bash.bashrc인데 이 파일을 열어 다음 내용을 추가한다.
alias ls='ls -F --color=auto --show-control-char' # 아래 설명 참조
alias l.='ls -dl .[a-zA-Z]*' # 숨김 파일을 표시함.
alias ll='ls -al' # 숨김 파일을 비롯해서 모든 파일 및 디렉토리를 자세하게 표시함.
alias cp='cp -i' # 만약 복사대상 파일 이미 있는 경우 사용자에게 이를 알림.
alias mv='mv -i' # 대상 파일이 이미 있어, 사용자에게 어떻게 처리할지를 물어봄.
alias rm='rm -i' # 각 파일을 하나씩 지울 것인지 사용자에게 일일이 물어봄.
첫줄 alias ls='ls -F --color=auto --show-control-char'에 대해 간단히 설명하자면...
-F는 파일 형식을 알리는 문자를 각 파일 뒤에 추가하는 것으로, 실행파일은 "*", 경로(디렉토리)는 "/", 심볼릭 링크는 "@", FIFO는 "|", 소켓은 "=", 을 표시해 준다.
--color=auto는 파일의 형태에 따라 그 파일의 색깔을 다르게 보여주는 기능이고,
--show-control-char는 한글을 제대로 출력해 주는 기능이다.
alias 라는 용어가 자주 등장하는데 대부분 아는 내용이겠지만 노파심에서 잠깐 언급하겠다.
CUI 기반 환경에서 작업 속도를 향상시키기 위해서는 타이핑 횟수를 최소화할 필요가 있는데 이때 유용하게 사용할 수 있는 것이 alias이다. 복잡한 옵션과 함께 자주 사용되는 명령어를 짧게 줄여주는 기능이라고 생각하면 되겠다.
실제 'ls -F --color=auto --show-control-char' 라고 입력해야 할 것을 그냥 'ls'라고만 입력해도 시스템 내부적으로는 동일한 결과가 발생하기 때문에 매우 자주 사용된다. 현재 시스템에 적용된 alias 정보를 확인하기 위해서는 콘솔창에서 'alias'라고만 입력하면 된다.
4. 퍼미션 수정
파일 편집을 모두 마쳤다면 마지막으로 다른 사용자들도 파일을 읽을 수 있도록 퍼미션을 수정해 준다.
chmod 644 profile bash.bashrc inputrc |
이제 모두 끝났다. 모든 사용자들이 완벽하지는 않지만 별 무리없이 한글을 사용할 수 있을 것이다. 또한 기본 alias 설정도 이용할 수 있다.
혹시나 사용자별 정의를 하고 싶은 경우에는 위의 2, 3번 내용을 사용자 홈디렉토리의 .inputrc, .bashrc 파일에 각각 넣어 주면 된다. 이때 /etc/skel 디렉토리를 이용하면 편리한데 이 곳에 모든 사용자에게 적용되는 내용을 담은 .bash_profile, .bashrc, .inputrc 파일을 넣어두면 사용자 홈폴더가 생성될때마다 자동적으로 복사되기 때문이다.
댓글 없음:
댓글 쓰기