Terminal 사용하기

수야·2020년 5월 4일
1

세션

목록 보기
2/4

1. 터미널 환경

백앤드 개발을 처음 입문하는 분들에게 저자가 추천하는 것중 하나가 명령어 인터페이스(CLI, Command Line Interface)에 익숙해지라는 것이다. 그 이유는 대부분의 백앤드 시스템이 리눅스 기반의 서버에서 운영되기 때문이다. 그럼으로 리눅스 서버에 접속해서 작업을 할때 텍스트 터미널을 통해 작업을 하는 경우가 대부분이다. 예를 들어, 백앤드 시스템에 오류가 났을때 서버에 접속해 로그를 보면서 오류를 해결해야 하는 경우 모든 작업이 다 터미널 상에서 이루어지기 때문에 만일 명령어 인터페이스와 터미널 환경에 익숙하지 않다면 많은 어려움을 겪게 될것이다. 그래서 개발할때는 UI나 여러 편리한 툴(tool)에 의존하는것을 최소화 하고 최대한 터미널을 통해서 개발하는것을 습관화 하는것을 권장한다.

1-1. 맥에서 터미널 환경

맥에서는 기본 터미널이 이미 설치되어 있다. 그러나 많은 개발자들이 iTerm을 사용한다. 그 이유는 iTerm이 기본 터미널에 비해 여러 편리한 기능을 제공하기 때문이다. iTerm은 iTerm 홈페이지(https://www.iterm2.com/downloads.html)를 통해서 다운로드 받을 수 있다.

iTerm 설치 파일을 다운로드 받아서 설치하도록 하자. 설치가 완료되면 iTerm을 실행하도록 하자. iTerm은 다양한 설정이 가능하다. 그 중에서도 많은 백앤드 개발자들이 중요하게 생각하는 색상 테마(Color Theme)를 설정하여 터미널을 더 멋지게 보이도록 설정해보자. iTerm의 설정(Preferences)화면 에서 프로파일(Profiles)을 선택한후 오른쪽의 패널중 색상(Colors)를 선택하자. 색상 패널에 오른쪽 하단에 "Color Presets" 라는 드롭다운 메뉴가 있다. "Color Presets" 드롭다운 메뉴를 통해 원하는 색상 테마를 선택할 수 있다.

iTerm에서 색상 변경 설정 화면

기본으로 설치되어 있는 iTerm 색상 테마 이외에도 여러 다양한 색상 테마를 외부에서 import하여 적용 할 수 있다. iTerm의 색 테마 페이지(https://github.com/mbadolato/iTerm2-Color-Schemes) 에서 175개 이상의 iTerm 색상 테마를 받을 수 있으니 관심 있으면 둘러보는 것도 좋겠다. 저자는 "Solarized Light" 색상 테마를 선택했다. 그 외에도 다른 색상 테마들이 있으니 원하는 색상 테마를 선택하면 된다.

Solarized light를 적용한 iTerm

1-2. 우분투에서 터미널 환경

맥과 마찬가지로 우번투에서도 당연히 터미널이 기본적으로 설치되어 있다. 우번투에는 Gnome 터미널이 디포트(default) 터미널로 설치되어 있다. Gnome 터미널에서도 색상 테마 변경이 가능하다 (다만 iTerm처럼 간단하지는 않다). Gnome 터미널도 색상 테마 변경을 통해 더 멋지게 만들어 보도록 하자.

Gnome 터미널에서 색상 테마를 설정하는 방법을 여러가지가 있지만 그중 가장 간단한 방법중 하나는 Gogh라고 하는 Gnome 터미널 색상 테마 변경 툴을 사용해서 변경하는 방법이다. 먼저 다음 명령어를 사용해서 dconf-cli를 설치하도록 하자. 이미 설치되어 있을 확률이 높지만 그래도 설치 안되어 있을 경우를 대비해서 다음 명령어를 실행하도록 하자.

sudo apt install dconf-cli

이제 Gogh를 사용해서 색생 테마를 변경하도록 하자. 다음 명령어를 실행하면 된다. 참고로 만일 wget 명령어가 설치되어 있지 않으면 wget를 먼저 설치 해야 한다.

wget -O gogh https://git.io/vQgMr && chmod +x gogh && ./gogh && rm gogh

앞의 명령어를 실행하면 번호가 지정되어 있는 다양한 색상 테마 옵셥들이 나열 될것이다. 그중 맘에 드는 색상 테마의 번호를 입력해주면 된다. 참고로 저자는 Solarized-Light로 설정해서 사용하고 있다.

Solarized light를 적용한 Gnome 터미널

Gogh를 통해서 적용할 수 있는 색상 테마 리스트들은 Gogh의 깃헙 페이지를 통해서 확인 할 수 있다.

https://github.com/Mayccoll/Gogh

2. 쉘(Shell)

쉘(Shell)은 터미널 환경에서 운영체제의 커널(kernel)과 사용자의 유저 스페이스(user space)를 이어주는 인터페이스(interface) 역활을 하는 프로그램 이다. 아주 간단하게 설명하면 사용자의 명령어를 운영체제에 전달하여 실행되게 하고 그 결과물을 유저에게 전달하는 역활을 하는 프로그램이라고 생각하면 된다. 인터페이스 역활외에도 쉘 스크립트(Shell Script)라는 쉘 전용 프로그래밍 언어를 사용해서 터미널 환경에서 다양한 자동화를 실행할 수도 있다.

쉘 구조

대표적인 쉘로는 Bash(Bourne-Again Shell)가 있다. Bash는 거의 대부분의 리눅스 기반의 운영체제에서 기본 쉘로 설치된다. 하지만 쉘은 Bash이외에도 여러 다양한 쉘이 있다. 그중에 최근에 인기를 얻고 있는 쉘로는 ZSH(Z Shell) 있다. 기본적인 기능은 Bash와 큰 차이는 없으나 여러 다양한 편리한 기능을 제공하고 있다. 특히 Oh My Zsh라는 ZSH 설정 매니져 플러그인을 통해서 편리하게 쉘을 설정할 수 있게 되어서 널리 사용되고 있다.

참고로 Terminal과 Shell은 틀리다. Terminal은 Shell을 실행시키는 프로그램이다. Terminal에서 Bash를 실행시킬수도 있고 ZShell을 실행 시킬수도 있다.



참고링크

https://stackoverflow.com/c/wecode/questions/303/304#304

profile
운동을 좋아하는 QA 및 개발자

1개의 댓글

comment-user-thumbnail
2020년 5월 6일

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

답글 달기