오늘은 터미널을 꾸며보았다.
우선 각 테마 및 설정을 적용하기 전에 배경지식을 설명하자면,
zsh: zshell, 일반 bash shell 확장판으로 자주 쓰인다.
oh my zsh: zshell 의 플러그인 중 하나로, 다양한 플러그인들을 사용할 수 있도록 해준다.
powerlevel10k: zsh의 테마 중 하나로 간단한 설정으로 이쁘게 꾸밀 수 있다.
1. zsh 설치
sudo apt update
sudo apt install zsh
chsh -s $(which zsh) # 기본 쉘을 zsh로 변경
위 커맨드를 실행하고, 터미널을 껐다 킨다음 echo $SHELL
을 입력하여 zsh
가 기본으로 설정되어 있는지 확인
2. oh my zsh 설치
홈 디렉토리에서 다음 커맨드를 이용하여 oh my zsh를 설치
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
3. powerlevel 10k 설치 및 활성화
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
위 명령어를 이용하여 powerlevel10k 테마를 설치한 다음, 아래의 powerlevel10k 깃헙에 들어가서 폰트를 다운로드한 후, 터미널에 폰트를 우선 적용해 준다. 자신의 환경에 따라 터미널에 폰트설정하는 법이 readme에 적혀있다. (ubuntu 22.04 gnome shell을 사용 중인 경우 우측 상단의... 을 눌러서 preferences> profiles 밑에 프로필을 누른 뒤 custom font를 설정하고 깃에서 다운로드한 폰트 중 MesLGS NF
를 적용해 주면 된다)

설치 및 폰트설정을 했으면, 활성화를 시켜줘야한다.
nano ~/.zshrc
로 편집기를 연다음 해당부분을 찾아서 수정해준다.
ZSH_THEME="powerlevel10k/powerlevel10k"
이후 터미널을 재시작(source ~/.zshrc
) 해주면 자동으로 powerlevel10k 설정창이 뜰 것이다.
미리 폰트를 적용해놓지 않았으면 설정창 초반에 나오는 아이콘들이 깨져서 나오니, 먼저 폰트를 꼭 설치하고 진행하자.
추후 설정을 바꾸려면 나중에 p10k configure
명령어로 다시 할 수 있으니 자기 취향껏 하면 된다.

[GitHub - romkatv/powerlevel10k: A Zsh theme
A Zsh theme. Contribute to romkatv/powerlevel10k development by creating an account on GitHub.
github.com](https://github.com/romkatv/powerlevel10k)
4. oh my zsh 플러그인 설치
zsh는 여러가지 유용한 플러그인들이 있는데 그 중 가장 유명한 2개만 이 글에서 설치해보고자 한다.
# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
우선 zsh-syntax-highlighting
플러그인은, 자신이 입력한 명령어가 틀렸는지 안 틀렸는지 표시해 주는 아주 유용한 플러그인이다.
아래와 같이 틀린 명령어는 빨간색, 맞으면 초록색으로 표시해준다.


다음으로 zsh-autosuggestions
는 자신이 자주 입력하는 명령어들을 미리 추천해 주는 플러그인이다. 아래처럼 미리 완성되고 방향키 우측을 누르면 자동완성된다.

우선 기본적으로는 위 플러그인들을 설치한 이후, nano ~/. zshrc
명령어를 이용하여 zsh 설정 파일에 들어간다음, plugins
라는 부분을 찾아서 안에다가 해당 플러그인 이름들을 입력해 주면 된다. 맨 앞에 git은 기본적으로 있고, 뒤에 띄어쓰기를 하고 차례대로 적어주면 된다. 이후 적용을 해주고 터미널을 껐다 켜면 된다.
cd /
nano ~/.zshrc
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
source ~/.zshrc
그런데 나는 위와 같이 했음에도 플러그인들이 적용되지 않아서, 아래 명령어를 이용해서 직접 해당 경로의. zsh를 추가해 주니 정상적으로 작동하였다. (위에서처럼 단순히 plugins 에 넣어서 정상적으로 되면 할 필요 없음) + 참고로 . zsh
파일들이 경로를 적어줘야 하는 것인데 위의 git 명령어를 이용하여 받았다면 나와 동일할 것이다.
echo "source ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrc
echo "source ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" >> ~/.zshrc
source ~/.zshrc
5. 추가 설정
이 설정은 해도되고 안해도 되는 설정인데, 나는 더 편해서 작성해보려고한다. zsh나 bash 마찬가지로 터미널 세션을 여러개를 열면 서로 history가 공유가 안되는데, 나는 공유가 되는게 더 편했다.(따로따로 작업하려는 사람은 분리하는게 편함)
그리고 기본 zsh 히스토리 설정이 별로여서 추가적으로 손봐줬다. 아래의 코드를 ~/.zshrc
가장 아래에 추가해주면된다.
HISTFILE=~/.zsh\_history
HISTSIZE=1000 # 메모리에 저장되는 히스토리의 최대 수
SAVEHIST=1000 # 히스토리 파일에 저장되는 최대 명령어 수
setopt hist\_ignore\_all\_dups # 모든 세션의 이전 입력과 동일한 현재 세션의 명령어를 무시
setopt hist\_ignore\_dups # 동일한 세션 내에서 중복된 명령어를 무시
setopt hist\_expire\_dups\_first # 중복된 기록을 제거할 때 가장 오래된 것부터 먼저 삭제
setopt hist\_ignore\_space # 스페이스 바로 시작되는 명령어를 히스토리에 기록하지 않음
setopt share\_history # 현재의 히스토리를 모두 다른 세션과 공유
setopt inc\_append\_history # 명령어를 입력할 때마다 HISTFILE에 즉시 기록
clear
Reference
Oh My Zsh + PowerLevel10k = 😎 terminal
Hi there, The developers always use the terminal, but it is boring and has no colors or shapes. Today...
dev.to
'리눅스' 카테고리의 다른 글
ssh 포트 변경 (0) | 2024.09.24 |
---|---|
sshfs를 이용한 다른 시스템 마운트 (0) | 2024.09.24 |
Ubuntu aihub 데이터 (0) | 2024.08.28 |
Ubuntu 프로그램 아이콘 삭제 (0) | 2024.08.10 |
Ubuntu wine 완전히 삭제하기 (0) | 2024.08.08 |