본문 바로가기

Linux

Terminal Customizing & Linux Shell

이번 글에서는 저번 글에서 Linux 환경을 구축해보았으니 Terminal을 수정해보도록 합시다.

1. Terminal의 기본 세팅을 WSL로 변경하기

먼저는 Windows Terminal을 켰을 때 WSL(Ubuntu)가 켜지도록 세팅해봅시다.

 

이는 Terminal의 상단 바에서 설정을 눌러 settings.json file을 수정해주어야 합니다.

 

설정 파일에서 defaultProfile을 밑에 list에서 name이 Ubuntu인 것을 찾아서 그 guid를 복사 붙여넣기 해주면 됩니다. 아무 것도 수정하지 않았다면 Windows PowerShell의 guid가 적혀져 있을 겁니다.

 

"defaultProfile": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}" # 저의 경우에는 이렇습니다

 

 

Settings.json file

2. Terminal Customizing 하기

먼저는 color scheme을 바꿔보겠습니다. (저는 이미 세팅이 된 상태이기 때문에 색이 다릅니다..ㅎ) 

 

각자 원하는 대로 색상을 설정해도 좋지만 많은 사람들이 이미 만들어놓은 scheme을 사용하는 것도 좋습니다.

 

이 scheme들은 TerminalSplash라는 사이트에서 찾아볼 수 있고 원하는 scheme을 클릭하여 복사한 이후에 settings.json 에서 "scheme" : [ ] 안에 적어주면 됩니다 :)

 

단 colorScheme을 변경하였다면, profile defaults(또는 list의 Ubuntu)에도 "colorScheme": "(scheme 이름)"을 적어주어야 합니다. 

 

terminalsplash.com/

 

>_TerminalSplash - Windows Terminal Themes

A collection of Windows Terminal Themes

terminalsplash.com

3. Linux Shell

Shell은 말 그대로 kernel을 감싸주고 있으면서 사용자와 kernel을 연결해주는 연결 다리라고 생각하면 됩니다.

 

kernel은 운영체제의 핵심으로 소프트웨어의 요청을 하드웨어의 명령으로 변환하여 하드웨어에게 직접적으로 명령을 내리는 역할을 합니다.

 

이를 통해 I/O, 메모리, 프로세스를 관리하는 역할을 담당하는 부분입니다.

 

다음 그림은 사용자와 HW 사이의 단계들을 잘 표현해주는 diagram 입니다.

 

User to HW Diagram

사용자가 Terminal에 입력하는 명령을 shell이 해석하여 kernel로 전달해주는 역할을 하는데, 이 shell도 사용자가 원하는 걸 골라 사용할 수 있도록 여러가지 종류가 있습니다. 그 중에서 우리가 처음 세팅되어 있는 shell은 bash입니다.

 

이를 확인하기 위해서는 Terminal 창에 다음 중 하나를 입력해주면 됩니다.

 

echo $0
ehco $SHELL

여러 가지 shell들이 있지만 여러 편리한 plugin들과 customizing을 위해서 bash 대신 "zsh"을 사용해 보도록 합시다 :)

 

4. ZSH, Oh-My-Zsh

참고로 zsh은 읽을 때는 [zshell]이라고 읽습니다. zsh은 사용했던 명령어 자동완성, 접근했던 디렉토리 한 번에 jump, 잘못된 명령어 표시 등 사용할 때 정말 편한 plugin들이 많습니다.

 

그럼 먼저 zsh부터 다운받아 봅시다.

 

Linux에서는 Windows에서 마우스 클릭으로 다운로드 했던 것을 'wget (URL 주소)'로 할 수 있습니다. (curl, fetch도 가능)

 

기본적으로 wget은 사용 할 수 있지만 curl 명령어나 fetch는 사용할 수 없는 경우도 있으므로

which wget

which curl

which fetch

처럼 써서 사용할 수 있는지 확인할 수 있습니다. 없으면 ~ not found로 나옵니다.

 

밑에 링크를 통해서 zsh와 oh-my-zsh을 다운 받으면 됩니다.

 

WSL에서는 다음과 같이 하면 됩니다. 중간에 oh-my-zsh을 다운받으면서 default shell을 zsh로 바꿀 것인지 물어보는데, y(es)를 입력해주시면 됩니다 :)

apt install zsh # at server

sudo apt install zsh # at PC

sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # oh-my-zsh 다운로드

echo $SHELL # 기본 shell이 zsh로 세팅 되었는지 확인 

chsh -s "zsh" # 기본 shell이 바뀌지 않았다면 shell 바꿔줌

github.com/ohmyzsh/ohmyzsh

 

ohmyzsh/ohmyzsh

🙃 A delightful community-driven (with 1800+ contributors) framework for managing your zsh configuration. Includes nearly 300 optional plugins (rails, git, OSX, hub, docker, homebrew, node, php, p...

github.com

5. /.zshrc로 Customization

이제 zsh을 사용할 수 있게 되었고, 더 편하고 빠르고 예쁜 shell을 만들어주기 위해 변경을 해줄겁니다.

 

1)  theme 변경: powerlevel10k

 

여러가지 theme이 있지만 많이 사용하는 powerlevel10k로 바꿔보도록 하겠습니다.

 

oh-my-zsh을 사용하므로 이 부분을 따라서 git clone 해줍니다.

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

다운 받은 이후에는 /.zshrc file의 ZSH_THEME을 powerlevel10k로 변경해주면 끝납니다 :)

 

만약 server에서 사용하시려는데 zsh의 version 때문에 powerlevel10k를 사용하실 수 없으시면 기본으로 깔려있는 theme인 ZSH_THEME="agnoster"을 사용하셔도 꽤 이쁩니다.

 

이후 다시 WSL을 켜주시면 바뀐 예쁜 터미널 창을 보실 수 있습니다 :) (vim은 esc 누르고 normal mode로 들어가서 :wq를 입력해주시면 저장하고 vim을 빠져나옵니다)

vim ~/.zshrc

...

ZSH_THEME="powerlevel10k/powerlevel10k"

github.com/romkatv/powerlevel10k#oh-my-zsh

 

romkatv/powerlevel10k

A Zsh theme. Contribute to romkatv/powerlevel10k development by creating an account on GitHub.

github.com

6. Useful Plugins 설치 / 적용

주의 하셔야 할 점은 설치 한 이후에 꼭!! /.zshrc 파일의 plugin을 추가해주어야 합니다! (4번)

1) autojump

autojump plugin은 cd를 여러번 쓰는 번거로움을 덜어주는 plugin으로 한 번 방문했던 디렉토리 이름을 기억한다면 

으로 한 번에 이동할 수 있습니다.

j (directory name)

설치는 다음과 같이 할 수 있습니다.

git clone git://github.com/wting/autojump.git

cd autojump # autojump directory로 이동

./install.py # installation script 실행

이것만 원하시는 분은 여기까지 하신 이후에 4번으로 가주세요!

2) zsh-autosuggestions

이 plugin은 최근에 입력한 명령어를 기준으로 적으려 하는 명령어와 맞게 흐릿하게 자동완성 해주는 plugin 입니다.

 

자동완성은 오른쪽 방향키 또는 Ctrl+e를 하시면 사용할 수 있습니다.

 

나중에 vim을 사용하시면서 vim에 익숙해지다보면 거리를 최소화 하기 위해 Ctrl+e를 자주 사용하게 됩니다 

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

3) zsh-syntax-highlighting

이 plugin은 맞는 명령어를 적으면 초록색으로, 틀린 명령어는 빨간색으로 highlighting을 해주는 plugin입니다.

 

가시성이 좋아서 편하게 잘 사용하고 있는 plugin 입니다.

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

4) 적용 : /.zshrc 파일 수정

마지막으로 plugin을 적용하기 위해서는 /.zshrc 파일을 수정해주어야 합니다.

 

다음과 같이 수정하고 source 명령어를 적어주거나, 나갔다가 다시 터미널을 열면 드디어 아름답고 편한 터미널을 사용할 준비가 끝나게 됩니다 :) (Esc, :wq 로 vim 빠져나오기)

 

vim ~/.zshrc

...

plugins=(
    git
    autojump
    zsh-autosuggestions
    zsh-syntax-highlighting
)   
 
source ~/.zshrc

 

7. 글을 마치며

이번에는 Terminal customization과 Linux shell의 여러 plugin들을 설치하여 편하게 사용할 수 있도록 바꿔보았습니다.

 

다음 글에서는 여러 터미널을 띠워놓고 작업하기에 매우 좋은 tmux의 간단한 사용법과 장점들을 정리해보겠습니다.

 

끝까지 읽어주셔서 감사합니다 :)

 

- Reference :
1) Nomadcoder, 개발자를 위한 윈도우 셋업
nomadcoders.co/windows-setup-for-developers/lectures/1833
2) [터미널] Oh My Zsh로 터미널 아름답게 꾸며보기
https://hjiee.tistory.com/entry/%ED%84%B0%EB%AF%B8%EB%84%90-Oh-My-ZSH%EB%A1%9C-%ED%84%B0%EB%AF%B8%EB%84%90-%EC%95%84%EB%A6%84%EB%8B%B5%EA%B2%8C-%EA%BE%B8%EB%A9%B0%EB%B3%B4%EA%B8%B0

 

'Linux' 카테고리의 다른 글

tmux 사용법 정리  (0) 2021.02.26
Windows 10 에서 Linux 환경 구축하기  (3) 2021.02.24