zsh, oh-my-zsh 설치/설정

이미 글을 두개 쓰기도 했는데, 정작 설치에 대한 글은 없었다.

이 글에선, 저 두 글 내용을 아우르려고는 하는데, 잘 될런지?


그 전에, shell 에 간단히 정리한 다음 글을 참고.

이 글 내용 중, ‘현재 내가 사용하고 있는 Shell 이 무엇인지?’를 알아내는 명령이 간단하면서도 유용할 듯 하다.

$ echo $0

설치:

우분투에는 zsh 가 기본 제공되고 있으므로, 간단히 설치할 수 있다.

sudo apt install zsh

oh-my-zsh 는 zsh 를 보다 쉽고 강력하게 사용할 수 있도록 만들어주는 조력자인데, 아마도 zsh 를 사용한다면 모두들 이것도 같이 설치하는 모양이다.
이건 꾸러미 설치는 아니고, 직접 받아 설치해야 하는데, 꾸러미 설치나 별 차이는 없다. 어차피 자동으로 다 이뤄진다.
제작자가 권한 방법은 두가지인데, 그 중 wget 을 사용하는 법을 옮겨본다. (git 이 먼저 설치되어 있어야 한다.)

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

위 스크립트가 실행되다가, 마지막에 sudo 패스워드를 입력하라는 문구가 나온다. zsh 를 기본 Shell 로 사용하라는 배려(?)인데, 나중에 다시 바꿀 수도 있으니 일단은 암호를 넣어본다. (기본 셸을 바꾸려면 chsh 명령을 쓰면 된다.)

# chsh 주의?
나중에 Shell 을 다시 바꿀 때는 chsh 명령을 쓰면 되는데, 이때, 반드시 chsh로 명령을 내려야지, sudo 를 넣으면 안된다. sudo 를 넣으면, 현 사용자가 아닌 root 사용자의 shell 을 바꾸게 된다.

oh-my-zsh 는 일정 시간마다 새 판을 확인하여 알아서 최신판으로 유지해준다.

** 우분투 18.04 이하를 쓰고 있다면?
만약, 우분투 18.04 이하를 쓰고 있다면, 한국어 입력이 불가능하거나, 입력이 되더라도 자모가 조합되는 창이 따로 뜨는 문제가 발생할 수도 있다.
im-config 0.36 이상을 설치하면 이 문제를 해결할 수 있다.

실행 PATH 추가:

꽃삽질기는 이전 글에 자세히(?) 기록되어 있고, 결론만을 쓰자면 다음과 같다.
즉 Interactive Shell 이 아닌, 로그인 한 전체 환경, 즉 Login Shell 에 작용하는 PATH 를 추가하기 위해서는 $HOME/.zshenv 파일에 경로를 넣어줘야 한다.
경로 뿐만이 아니라, 다른 환경 설정도 이 파일에 설정해준다.
따라서, $HOME/.zshenv 에 들어가야할 내용은 다음과 같다.

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

물론, 여기에 Alias 도 넣어줘도 되긴 하지만, Alias 는 따로 해주는 게 좋을 듯?
$HOME/.zshrc 파일은, 터미널(Interactive Shell)로 zsh 가 직접 실행되었을 때만 영향을 미친다.

참고로, zsh 가 각 설정파일을 부르는 순서는 다음과 같다.

  • zshenv
  • zprofile
  • zshrc
  • zlogin

즉, .zshrc 가 먼저 실행(load)되고 .zlogin 이 나중에 실행된다. 가끔, 순서가 중요할 때도 있으니 이 내용을 기억해야겠다.

Alias 추가:

bash 는 $HOME 에 .bash_aliases 라는 이름으로 넣어줬지만, zsh 는 좀 다르다.

$HOME/.oh-my-zsh/custom 에, 확장자를 zsh 로만 해서 적당한 이름으로 파일을 만들고, alias 를 정의해주면 된다.

Prompt 또는 Theme:

zsh 에서는 ‘prompt’ 라는 명령(함수라고 하던데..?)을 제공하여, 미리 만들어놓은 프롬프트들을 간단하게 쓸 수 있다.
prompt 명령을 쓰려면 다음 명령을 미리 내려놓아야 한다. (.zshrc 에 넣어두는 게 좋다.)

autoload -Uz promptinit
promptinit

그리고, prompt -p 라고 터미널에서 입력하면, 기본 제공되는 프롬프트들을 살펴볼 수 있다.
그 중 하나를 고른 뒤, 뒤 쪽 인수가 있다면 그것들까지 이런 식으로 입력한다.

prompt fire red magenta blue white white white

bash 에선 볼 수 없었던(물론 만들면야 되지만), 화려한(동시에 촌스럽기도 한~) 프롬프트를 만날 수 있다.
이걸 영구 저장하려면, 역시 .zshrc 에 추가하면 된다.

헌데, 단순 프롬프트말고, 더 큰 개념인 ‘테마’도 설정해줄 수 있다. 다만, 이건 oh my zsh 에서 제공한다.
간단하게, .zshrc 에서 ZSH_THEME="원하는 테마명" 으로 설정하면 된다. (또는 “random”)

man zshmisc:

이 명령으로, zsh 에 대한 이런 저런 잡다한 내용들을 볼 수 있다.

기타 사항은 알아내는 대로 정리.

Tags:
One Comment

안녕하세요. 글 남겨주셔서 고맙습니다.