oh my zsh + powerlevel10k

2024. 9. 13. 14:25·리눅스

오늘은 터미널을 꾸며보았다.

우선 각 테마 및 설정을 적용하기 전에 배경지식을 설명하자면,

`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`를 적용해 주면 된다)

 

설치 및 폰트설정을 했으면, 활성화를 시켜줘야한다. zsh설정을 열어서 theme부분을 바꿔준다.

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

 

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를 추가해 주니 정상적으로 작동하였다.

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

 

728x90

'리눅스' 카테고리의 다른 글

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
'리눅스' 카테고리의 다른 글
  • ssh 포트 변경
  • sshfs를 이용한 다른 시스템 마운트
  • Ubuntu aihub 데이터
  • Ubuntu 프로그램 아이콘 삭제
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (481)
      • 알쓸신잡 (88)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Blog

    • 🏠 Home

    ✏️글쓰기
    💻 관리

    Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    이것이취업을위한코딩테스트다
    dp
    파이썬
    백준
    이코테
    DFS
    이분탐색
    BFS
    나동빈
    그리디
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상단으로

티스토리툴바