Skip to content

Latest commit

 

History

History
267 lines (163 loc) · 15.9 KB

File metadata and controls

267 lines (163 loc) · 15.9 KB

This reposity has been abandoned. Please see https://ccss17.github.io/ProgrammerBase/readme/

이 레포지토리는 더 이상 관리되지 않습니다. https://ccss17.github.io/ProgrammerBase/readme/ 에 방문해주세요.

tmux


Table of Contents


☀️ ️여기서부터 Day3 내용입니다. ☀️

tmux

vim 을 사용하다보면 다른 터미널 작업을 해야 할 때가 생깁니다. 물론 :!<CMD>:shellvim 내부에서 명령어를 실행할 수 있지만 솔직히 너무 불편하죠. 이런 경우를 위하여 tmux 로 터미널 하나를 여러 터미널로 분리할 수 있습니다.

vim 을 실습하느라 힘드셨을 것 같은데, tmuxvim 만큼 배우고 싶은데 알려주는 사람이 없어서 못배울 정도로 정말 좋은 프로그램이기 때문에 매우 간단하게 tmux 필수 기능만을 알아보겠습니다.

tmux 시작과 종료

도커 컨테이너에는 이미 tmux 가 설치되어 있습니다. 다음 명령어를 실행하여 tmux 를 실행해보세요.

⬇ EXECUTE! ⬇
$ tmux

그리고 나서 단순히 exit 를 입력하여 터미널을 종료시키면 tmux 도 자동으로 종료됩니다. exittmux 의 터미널을 종료해보세요.

⬇ EXECUTE! ⬇
$ exit

메타 키

기능 단축키
Meta Ctrl+b

tmux 에서는 Meta 키 를 사용하여 명령어들을 정의합니다. Meta 키란 Ctrl + b 입니다. 이제 Meta 키를 Meta 라고 하겠습니다. 그러니까 Meta+% 라고 한다면 (Ctrl + b) + % 를 뜻하는 것입니다.

터미널 분할

기능 단축키
터미널 수직 분할 Meta+%
터미널 수평 분할 Meta+"
다음 터미널으로 이동 Meta+o
(숫자) 터미널으로 이동 Meta+q + (숫자)

tmux 에서는 위와 같은 단축키로 수평으로, 수직으로 새로운 터미널을 생성할 수 있습니다.

메타 키를 누른채로 %" 를 입력하면 안되요. 메타 키를 입력하고 나서 손을 떼고 %" 를 눌러보세요.

  • 다음과 같이 vim 으로 코딩을 하면서 소스코드를 컴파일하는 터미널, 소스코드를 실행하는 터미널을 분할하고 터미널을 전환해보세요.

    w08Lbg4Ucw

    GIF 를 클릭하면 원본화질로 볼 수 있는 새 창이 열려요.

새로운 화면 생성

기능 단축키
새로운 화면 생성 Meta+c
다음 화면으로 이동 Meta+n
이전 화면으로 이동 Meta+p

터미널 작업을 하다보면 하나의 화면으로도 부족할 때가 있습니다. 그럴 때 화면을 하나 더 생성할 수 있습니다.

  • vim 으로 코딩을 하면서 소스코드를 컴파일하는 터미널에서 작업하다가, 급하게 gotop 명령어로 시스템 리소스를 확인해야 하는 상황이라면 다음과 같이 새로운 탭을 생성하고 작업하면 됩니다.

    y8uvCHmU1L

    GIF 를 클릭하면 원본화질로 볼 수 있는 새 창이 열려요.

    • 위 예시에서는 화면을 2 개만 생성해봤지만 더 많이 생성할 수도 있습니다.

🌜 ️여기까지 Day3 내용입니다. 수고하셨습니다. 🌜️

☀️ ️여기서부터 Day4 내용입니다. ☀️

더 빨라진 tmux

tmux 업그레이드는 사실 실제적인 업그레이드가 아니라 tmux 의 설정을 커스터마이징할 수 있는 ~/.tmux.conf 파일에 사용자가 더 편하게 사용할 수 있도록 설정을 조작하는 것입니다. 그렇기 때문에 여기에서는 제가 설정한 ~/.tmux.conf 파일을 중심으로 tmux 를 사용하기가 얼마나 편해졌는지 살펴보겠습니다.

더 빨라진 alias

먼저 tmux 라는 명령어를 매번 치는 것은 너무 비효율적입니다. 무려 4 번이나 키보드를 쳐야하기 때문이죠. 그래서 ~/.zsh_aliases

alias t=tmux

를 추가하여 t 만 눌러도 tmux 가 켜지도록 합니다.

  • 실습

    도커 컨테이너에서 다음 명령어로 tmux 를 켰다가 꺼보세요.

    $ t
    $ q

    CSpyoIvAGI

더 이뻐진 테마

tmux 의 오리지널 테마는 너무 안이쁘네요. 그래서 좀 더 가독성도 높아지고 보기에도 좋고 시간도 알 수 있도록 다음과 같은 설정으로 테마를 고칩니다.

set -g status-bg default
set -g status-fg colour137
set -g status-style dim
set -g status-left '#[fg=colour51,bg=colour0,bold] %R '
# set -g status-right '#[fg=colour51,bg=colour0,bold] #(uname -r) '
set -g status-right '#[fg=colour51,bg=colour0,bold] #(osname) '
set -g status-right-length 100
setw -g window-status-current-style bg=colour14,fg=colour00,bold
setw -g window-status-current-format ' #I#[fg=colour0] #[fg=colour0]#W#[fg=colour0] '
setw -g window-status-style fg=colour49,none,bg=colour00
setw -g window-status-format '#I #W '
setw -g window-status-bell-style fg=colour255,bold,bg=colour1
set -g message-style fg=colour232,bold,bg=colour16

이 설정들은 ~/.tmux.conf 에 있는데 그 의미를 상세히는 몰라도 됩니다.

  • 다음은 테마를 설정하기 전의 오리지널 tmux 의 테마입니다. 상태바가 아래쪽에 있고, 새 화면을 만들었지만 한 눈에 들어오지가 않습니다. 오른쪽에 시간도 표시되는데 역시 한 눈에 들어오지 않네요.

  • 하지만 다음과 같이 테마를 바꿔서 가독성을 확연히 높혔습니다. 상태바가 위로 올라갔고, 왼쪽에는 시간이 간략하지만 눈에 확 들어오게 보입니다.

    그리고 0 번째 화면에는 zsh 이 켜져있고, 1 번째 화면에는 vim 이 켜져있는데 현재 상주하고 있는 화면에 하이라이팅이 되서 가독성이 매우 높아집니다. 오른쪽에는 운영체제의 이름도 나타납니다.

더 빨라진 메타 키

기능 기존 단축키 새로운 단축키
Meta Ctrl+b Ctrl+a

tmuxMeta 키 를 사용하여 명령어들을 정의하기 때문에 Ctrl+b 를 입력했어야 했습니다. 하지만 Ctrlb 는 거리가 너무 멀어서 손이 아픕니다. 그래서 ~/.tmux.conf

unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

를 추가하여 거리가 가까운 Ctrl+aMeta 키를 재설정합니다. 여러분의 도커 컨테이너에는 이미 설정 되어있으니 걱정하지 마세요.

앞으로 살펴볼 tmux 업그레이드들도 위와 같은 설정 파일을 조작하는 것으로 이루어졌지만, 일일이 어떤 설정으로 tmux 가 업그레이드되었는지 상세히 설명하지는 않겠습니다.

더 빨라진 터미널 분할

기능 기존 단축키 새로운 단축키
터미널 수직 분할 Meta+% Meta+
터미널 수평 분할 Meta+" Meta+-
다음 터미널으로 이동 Meta+o Alt+o
(숫자) 터미널으로 이동 Meta+q + (숫자)

tmux 에서 터미널을 수평으로 분할하려면 기존의 명령어 Meta+ " 를 입력해야 하는데 이건 외우기가 너무 어렵습니다. 그래서 외우기 쉽도록 수평으로 나눈다는 의미에서 Meta+ - 로 직관적으로 바꿉니다.

또한 터미널을 수직으로 분할하려면 기존의 명령어 Meta+ % 를 입력해야 하는데 이것 역시 외우기가 너무 어렵습니다. 그래서 외우기 쉽도록 수직으로 나눈다는 의미에서 백슬래쉬로 바꿔서 Meta+ 로 직관적인 단축키를 설정합니다.

그리고 다음 터미널로 이동하는 단축키 Meta+o 는 실제로 (Ctrl+a) + o 인데, 다음 터미널로 이동하는 작업은 매우 많이 일어나므로 키를 3 번이나 눌러야 하는 것은 너무 비효율적이어서 참을 수가 없습니다. 그래서 Alt+o 로 바꿉니다.

유일하게 MacOS 에서만 테스트를 못해봤기 때문에 MacOS 에서는 Alt 키로 하는 것이 안될 수도 있습니다. 그럴경우 그냥 Meta + o 로 하면 될 겁니다. 맥에서 Alt 가 어떻게 입력되는지 아시는 분이 있다면 알려주세요. 아마도 맥에서 "option" 이라는 키가 Alt 의 기능을 하지 않을까 싶습니다.

  • 실습

    다음과 같이 터미널을 수직, 수평으로 여러번 분할해보고 Alt 를 계속 누른 채로 o 를 눌러서 터미널을 이동해보세요.

    mMkWtsbnpw

    터미널 이동이 정말 빨라졌습니다.

더 빨라진 화면 생성

기능 기존 단축키 새로운 단축키
새로운 화면 생성 Meta+c Alt+c
다음 화면으로 이동 Meta+n Alt+n
이전 화면으로 이동 Meta+p Alt+p

새로운 화면을 생성하고 화면을 넘기는 일도 편하게 하기 위하여 Meta 키 대신 Alt 를 사용합시다. 메타키를 Alt 키로 바꾸는 것만으로 얼마나 작업이 빨라지는지 보세요.

  • 실습

    다음과 같이 Alt 를 계속 누른채로 c 를 연타해서 화면을 더욱 빠르게 만들 수 있습니다. 그리고 여러 화면을 마찬가지로 Alt 를 계속 누른채로 n 또는 p 를 누르면서 이동해보세요.

    q4pP5K9WGF

더 빨라진 터미널 이동

기능 기존 단축키 새로운 단축키
왼쪽 터미널으로 이동 (기억이 안남..) Alt+h
오른쪽 터미널으로 이동 (기억이 안남..) Alt+l
위쪽 터미널으로 이동 (기억이 안남..) Alt+k
아래쪽 터미널으로 이동 (기억이 안남..) Alt+j

터미널 이동을 Alt+o 로 매우 빠르게 할 수 있게 되었지만서도 터미널이 여러개로 나뉘었을 때 Alt+o 로 다음 터미널로밖에 이동할 수 없다면, 정확히 원하는 터미널로 이동할 수 없습니다. 이런 경우를 위하여 tmux 는 정확히 왼쪽, 오른쪽, 위쪽, 아래쪽 터미널로 이동할 수 있는 명령어를 제공합니다.

하지만 그건 너무 복잡했었고 그게 뭐였는지 솔직히 까먹었습니다. 그 대신 vim 에서의 커서 이동키였던 h, l, k, j 에서 착안하여 터미널 이동을 매우 쉽게 할 수 있습니다.

  • 실습

    다음과 같이 터미널을 여러개로 분할하고 Alt 를 누른채로 h, l, k, j 를 누르면서 터미널을 이동해보세요.

    YvxI7GtfRb

더 빨라진 터미널 크기 조절

기능 기존 단축키 새로운 단축키
터미널 크기를 왼쪽으로 방향으로 조절 (너무 복잡함) Alt+
터미널 크기를 오른쪽으로 방향으로 조절 (너무 복잡함) Alt+
터미널 크기를 위쪽으로 방향으로 조절 (너무 복잡함) Alt+
터미널 크기를 아래쪽으로 방향으로 조절 (너무 복잡함) Alt+

더 빨라진 터미널 크기 조절이라고 해봐야 터미널 크기 조절하는 방법을 배우지도 않았는데 라고 생각할 수도 있겠지만, 터미널 크기 조절하는 방법이 외울 수 없을 만큼 너무 복잡한 것이어서 안썼습니다. 과거의 제가 터미널 크기를 너무너무 쉽게 조절할 수 있도록 위와 같이 설정해놓았습니다.

  • 실습

    다음과 같이 터미널 단축키 Alt 를 계속 누른 채로 , , , 을 눌러서 터미널 크기를 너무나도 쉽게 조절해보세요.

    mpiJ2Gh3hi

🌜 ️여기까지 Day4 내용입니다. 수고하셨습니다. 🌜️