Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>
원문 : Terminal 101 the setup guid that will boost workflow

Contents

개발자들은 터미널을 사랑한다.

밋밋하고 허전한 터미널에서 텍스트 기반으로 작업을 하는 이유는 빠르고 효율적이기 때문이다. 개발 영역에 따라 다르겠지만, 나 같은 경우(리눅스 환경에서 개발을 하다보니) 웹브라우징을 제외한 거의 모든 작업을 터미널 창에서 수행한다.

터미널의 선택

모든 운영체제는 기본 터미널을 제공하지만 마음에 들지 않는 경우가 많아서 커스터마이징을 하기 마련이다.

리눅스에서의 터미널

리눅스 배포판을 설치할 때, 딸려나오는 기본 터미널도 쓸만하긴 하지만 좀 허전하다. 내가 사용중인 터미널은 Linux Terminator다. 나만 애용하는게 아니다. 10 Best Linux terminals for ubuntu and fedora에도 당당히 1위를 기록하고 있다.

# sudo apt-get install terminator

ZSH를 사용하자

거의 20년 동안 Bash를 사용해오다고 최근 1년전부터 zsh를 사용하고 있다. Bash 스크립트를 그대로 사용 할 수 있으며, 쉽게 커스터마이징 할 수 있는게 장점이다. 리눅스는 bash가 기본 쉘이라서 설치를 해줘야 한다.
# apt-get install zsh

# brew install zsh

설치했다면 기본쉘로 설정하자. chsh는 사용자 로그인 쉘을 바꾸는 프로그램이다.
# chsh -s $(which zsh)
# echo $SHELL
/usr/bin/zsh

ohMyZsh 설치

ohMyZsh를 이용해서 쉘 설정 노가다를 건너뛸 수 있다. ohMyZsh 를 이용해서 픽셀단위에서 터미널을 관리하고 개발자 환경을 만들 수 있다. 특히 개발자라면 터미널에서 github 저장소의 상태를 확인할 수 있다는 점이 가장 큰 매력일 것이다. 내 입장에서 zsh를 사용하는 이유는 순전히 ohMyZsh 때문이다.
# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

혹은
# sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
설치하고나면 아래와 같이 터미널 환경이 바뀔 것이다.
         __                                     __
  ____  / /_     ____ ___  __  __   ____  _____/ /_
 / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \
/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / /
\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/
                        /____/                       ....is now installed!


Please look over the ~/.zshrc file to select plugins, themes, and options.

p.s. Follow us on https://twitter.com/ohmyzsh

p.p.s. Get stickers, shirts, and coffee mugs at https://shop.planetargon.com/collections/oh-my-zsh

➜  / 
이제 oh my zsh의 plugin과 theme를 이용해서 터미널 환경을 설정하면 된다.

ohMyZsh의 유용한 플러그인들

zsh-autosuggestions

이전에 입력했던 명령을 기억해서 추천해주는 "자동완성"기능이다. 설치하고
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
.zshrc 파일을 수정한다.
plugins=(git nvm zsh-autosuggestions)

 ZSH 자동완성

앞서 실행했던 명령이 추천되는 걸 확인 할 수 있다. Ctrl+EEnd 키를 누르면 즉시 완성된다.

Syntax Highlighting

구문강조(Syntax Highlighting) 플러그인을 이용해서 가독성을 높일 수 있다.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

설정파일을 수정한다.
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

 zsh highlight

테마를 이용해서 모든 것을 바꿔보자

ohMyZsh의 테마를 이용해서 터미널의 모든 것을 바꿀 수 있다. 가장 좋은 테마로 평가 받는 agnoster로 설정해보자. .zshrc 파일을 수정하자.
ZSH_THEME="agnoster"

적용
# source ~/.zshrc

 테마적용

하면 이런 그림이 완성된다. 프롬프트도 에쁘지만 개발자들의 필수 툴인 git 정보도 보여준다. 물론 처음 설치하는 거라면 git 브랜치나 화살표 아이콘등이 제대로 표현되지 않을 것이다. 폰트 설치가 필요하다. 나는 D2 Coding 글꼴을 사용하고 있다.

 Terminator

Terminator의 폰트를 D2로 설정한다. 물론 그 전에 시스템에 폰트를 설치해야 한다. 운영체제 & 배포판 마다 설정이 달라서 여기에서는 링크로(게다가 나는 KDE를 사용하고 있어서 여기에서 설명해봣자 별 도움이 안될 것이다) 대신한다.

단축키

  • CTRL + E : 줄 마지막으로 이동. 자동완성과 함께 사용할 때 좋다.
  • CTRL + A : 줄 처음으로 이동.
  • CTRL + F : 한 문자씩 앞으로 이동
  • CTRL + B : 한 문자씩 뒤로 이동
  • ALT + F : 한 단어씩 앞으로 이동
  • ALT + B : 한 단어씩 뒤로 이동
  • CTRL + C : 현재 실행 중인 명령을 중단한다.
  • CTRL + G : 명령을 실행하지 않고 떠나기. (명령을 실행하지 않고 다음 프롬프트가 뜬다)
  • CTRL + H : 뒤로 한 문자씩 지운다. 백스페이스와 같은 효과.
  • CTRL + J : 엔터키와 동일하다.
  • CTRL + K : 커서뒤에 있는 모든 문자를 삭제한다.
  • CTRL + L : 지금까지의 입력을 유지하면서 화면을 삭제(clear) 한다. clear 명령과 비슷하지만 clear는 현재 입력중인 명령어까지 삭제한다.

터미널의 마무리는 키보드

20년간 기본 키보드를 사용하다가 큰 맘 먹고 레오폴드 750r 저소음 적축을 구입했다. 사용전에는 키보드는 키만 입력되면 되지, 20-30만원 짜리 키보드가 무슨 소용이람 이런 생각이었는데, 사용하고 부터 생각이 바꼈다. 원래는 (VIM을 주로 사용하고 있기도 해서)해피해킹을 사용하려했으나 30만원 가까운 키보드에 대한 확신이 없어서 그래도 가격이 저렴한 레오폴드를 구입했다.

 750r

매우 마음에 든다. 예전 저렴한 키보드로 돌아갈 일은 이제 없을 것 같다.

참고