도커 컨테이너에 oh-my-zsh + powerlevel10k 설치로 터미널 정상화하기

개발환경 구축을 위해 파이썬이나 파이토치 이미지를 pull 해와서 실행하면, 기본 터미널이 bash로 설정되어 있다.
oh-my-zsh과 powerlevel10k로 터미널을 세팅하면 심미적으로도 좋고, 코드의 실행 시간을 확인할 수 있는 등 여러 가지 이점이 있으니 컨테이너를 생성한 뒤 바로 적용할 수 있도록 명령어를 정리해보겠다.
1) zsh 설치
apt-get update && apt-get upgrade -y
apt install curl wget git zsh -y
명령어에 -y를 추가하면 패키지 설치 여부 질문에 자동으로 Yes를 골라준다.
zsh 설치 이후 기본 터미널을 bash에서 zsh로 바꿔주는 명령어는 사용하지 않아도 된다. oh-my-zsh 설치 과정에서 쉽게 바꿀 수 있다.
2) oh-my-zsh 설치
curl로 설치하는 방식과 wget으로 설치하는 방식 두 가지가 있는데, 일단은 curl로 설치하겠다.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

위의 명령어를 실행하면 기본 터미널을 zsh를 사용하겠냐고 묻는데, Y를 골라주자.
3) powerlevel10k 테마 설치
이제 절반 왔다. 사실 oh-my-zsh만 써도 터미널은 충분히 예뻐지지만
현재 시각 표기나 코드 실행 시간 등을 확인하고 싶다면 powerlevel10k 테마까지 설치해주는 게 좋다.
sed를 이용하면 파일을 수정하기 위해 vi나 nano 등의 에디터를 사용하지 않고 명령어만으로도 파일을 수정하고 적용할 수 있다.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
sed -i 's/^ZSH_THEME=.*/ZSH_THEME="powerlevel10k\/powerlevel10k"/' ~/.zshrc && source ~/.zshrc

위의 명령어를 입력하면 터미널에 폰트 확인 창이 나온다. 터미널의 폰트가 너드 폰트로 설정하지 않으면 저 마름모가 깨져서 보이니
만약 깨져서 나온다면 폰트를 따로 다운받고 vscode 설정에서 바꿔야 한다. 나는 여기서 MesloLGS NF Regular를 사용하고 있다.

터미널 스타일은 본인 취향대로 선택해도 무방한데, 난 여기서 3 1 2 1 3 1 1 2 2 1 n 순으로 골랐다.

다른 건 몰라도 여기서만큼은 무조건 Verbose를 선택하자. 나머지 옵션을 선택하면 꽤나 골치 아파질 수도 있다.

이제 powerlevel10k 설치도 끝이 났다. 하지만 오른쪽에 root@어쩌구저쩌구...가 길게 있는 게 꽤 거슬린다.
sed -i '0,/^\s*context/s//# context/' ~/.p10k.zsh && source ~/.p10k.zsh
이 명령어를 통해 우측의 context를 제거하면 powerlevel10k 테마 설정도 끝이 난다.
4) zsh 플러그인 설치 (선택 사항)
zsh-syntax-highlighting과 zsh-autosuggestions 플러그인을 설치하면 각각 명령어 색상 표시 및 자동완성을 해줘서 명령어를 입력할 때 오타율을 크게 줄일 수 있다. git clone으로 플러그인을 가져온 뒤 ~/.zshrc을 수정해줘야 하지만, 이 또한 명령어 한 줄로 처리 가능하다.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
sed -i 's/^plugins=(.*)/plugins=(git zsh-syntax-highlighting zsh-autosuggestions)/' ~/.zshrc && source ~/.zshrc

이제 컨테이너를 껐다 켜면 oh-my-zsh과 powerlevel10k가 설치된 터미널이 기본으로 잘 잡힌다.
+ ) 위의 내용은 모르겠고 그냥 명령어만 빠르게 복붙해가고 싶다
apt-get update && apt-get upgrade -y && apt install curl wget git zsh -y
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
sed -i 's/^ZSH_THEME=.*/ZSH_THEME="powerlevel10k\/powerlevel10k"/' ~/.zshrc && source ~/.zshrc
sed -i '0,/^\s*context/s//# context/' ~/.p10k.zsh && source ~/.p10k.zsh
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
sed -i 's/^plugins=(.*)/plugins=(git zsh-syntax-highlighting zsh-autosuggestions)/' ~/.zshrc && source ~/.zshrc