Bash 사용하다가 Zsh 사용하기

우분투를 설치하면 Bash가 기본 쉘이라서 별다른 이유 없이 사용하고 있었다. 그런데 터미널 작업을 도와주는 Oh My Zsh 사용하려니 zsh가 필요했다. Bash 스크립트 파일은 shebang만 잘 적혀 있다면 zsh에서 수행하는데 문제없다. 문제는 .bashrc.zshrc로 옮기는 것이 문제였다. 하나씩 확인하는 과정 대신에 zsh에서 .bashrc 전체를 수행하고 문제가 발생하는 부분만 분리하기로 했다.

zsh% source ~/.bashrc

생각보다 에러가 조금 나왔다. shopt, complete, export 명령어가 없다는 경고가 나와서 해당 명령어 앞에 아래 명령어를 추가하여 제외시켰다. 이렇게 에러를 넘긴다고 해도 기능까지 동일하지는 않겠지만 Bash를 같이 사용하면서 천천히 맞출 예정이다.

[[ -z “$ZSH_VERSION” ]] &&

Bash에서 fzf를 사용하고 있었다면 아래 명령을 사용하여 비켜가자.

# .bashrc
[[ -n “$BASH_VERSION” ]] && [[ -f ~/.fzf.bash ]] && source ~/.fzf.bash
[[ -n “$ZSH_VERSION” ]] && [[ -f ~/.fzf.zsh ]] && source ~/.fzf.zsh

Bash에서 Ctrl-P키로 사용하던 이전 명령어가 동작하지 않아서 아래 명령으로 추가했다.

# .bashrc
[[ -n “$ZSH_VERSION” ]] && bindkey “^P” up-line-or-search
[[ -n “$ZSH_VERSION” ]] && bindkey “^N” up-line-or-search

Zsh에서 백그라운드로 수행한 프로그램은 쉘을 종료하면 같이 종료된다. Bash 처럼 종료하지 않도록 하기위해 아래 명령을 사용했다.

# .zshrc
setopt NO_HUP

별다른 노력 없이 .bashrc를 재활용하는 것에 만족한다. 더 편리한 방법이 있을 것이라 생각한다. 경험을 알려주길 바란다. 그런데 우분투 bash에서는 설치 가능한 프로그램을 실행하면 아래 처럼 설치 방법을 알려주는데 zsh에서는 모르는 명령어라고 한다.

bash$ 9menu
프로그램 ‘9menu’을(를) 설치하지 않습니다. 다음을 입력해 설치할 수 있습니다:
sudo apt install 9menu

zsh% 9menu
zsh: command not found: 9menu

조금 불편하긴 하지만 그 땐 bash를 수행해서 처리하고 있다. Zsh 익숙해진 다음에 아예 로그인 쉘을 변경해서 사용하고 있다. Oh My Zsh는 여러 플러그인을 지원하는데 우선 아래 3개만 사용하고 있다.

# .zshrc
plugins=(
extract
tig
common-aliases
)

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.