bash 커스텀하기

윈도우 환경에서 ruby나 rails 개발환경을 구성하려다보면 WSL을 이용해 환경 구성을 할 때가 많은데, WSL이 아직까진 사용적인 측면에서 완벽하진 못하다.

특히 zsh을 설치해서 oh-my-zsh같은 프로젝트를 이용해 플러그인을 설치해 사용하면 이 부분이 두드러지는데, 겪은 문제들 몇가지를 나열하자면…

  • 기본제공되는 cmd 기반의 터미널 대신 다른 앱에서 제공하는 터미널, 나의 경우엔 zetbrains ide에서 제공되는 터미널에서 WSL에 접근을 하면, zsh을 사용시 입력, 삭제, 방향키를 통한 커서 이동 등이 예측하기 힘들 정도로 이상하게 동작한다. (커서의 움직임은 무시하고 나의 손가락을 믿으며 타이핑을 치면, 치는대로 동작은 하나 엄청나게 거슬린다.)

  • oh-my-zsh에서 제공하는 플러그인들을 함께 사용시 특정 명령어, 예를들면 ‘gcc’로 소스 컴파일을 했을때 c를 누르면 갑자기 터미널이 종료되거나 하는 현상이 있다. (ctrl, alt 같은 특수키가 눌러져있는 것으로 인식하는 버그같은게 있는것 아닌가 싶다.)

  • 느리다. 원래 zsh이 빠른 편은 아니지만 더 느리다.

결국 WSL에선 zsh은 포기하고, 최소한 소스코드 리파지토리의 브랜치 상황정도는 알수 있는 git 기능만 bash에 추가해 사용하기로 했다. github을 뒤져본 결과, 내가 필요한 범위 내에선 아래 프로젝트가 가장 괜찮은듯 해, 이걸 설치해보기로 했다. 프로젝트 페이지는 아래와 같다.

Github Project Name : bash-git-prompt

1. Install

1.1. Git Clone

$ git clone https://github.com/magicmonty/bash-git-prompt.git ~/.bash-git-prompt --depth=1

1.2. .bashrc에 아래와 같이 추가한다.

if [ -f "$HOME/.bash-git-prompt/gitprompt.sh" ]; then
    GIT_PROMPT_ONLY_IN_REPO=1
    source $HOME/.bash-git-prompt/gitprompt.sh
fi

1.3. 설치를 마치면, git repository가 있는 폴더에선 프롬프트가 아래와 같이 변한다.

적용된 bash prompt