GNU+linux/linux 실용 꿀팁

tmux 사용해 리눅스 화면 분할 - 리눅스 실무 특집

ensuta 2022. 1. 2. 22:07
728x90
반응형

  소개

리눅스는 보통 원격조종 등을 통해 사용된다.

원격 중에는 세션을 하나 밖에 띄울 수 없는 상황이 종종 발생한다.

 

이때 여러 세션을 사용하기  위해 가상으로 나누어주는 프로그램이 있다.

바로 tmux이다.

 

옛날에 GNU screen 이라는 비슷한 프로그램이 있었으나

쉘 스크립트, 기능 추가 등의 이유로 새롭게 개발된 프로그램으로

실무에서는 범용성이 매우 높아 필수로 사용한다고 한다.

 

  사용법

여기에 없는 것은 man-page로 확인할 수 있다.

메뉴얼이 영어라서 영어 실력이 좋아야 한다.

$ man tmux

 

tmux 실행/종료

아무래도 CLI 기반이라 조작법이 많이 까다롭다.

그냥 프로그램이기 때문에 가장 먼저 tmux를 실행해야 한다.

$ tmux

완전히 끄는법은

$ tmux kill-server

tmux 서버 및 클라이언트 종료, 모든 세션 종료 (백그라운드 안됨)

 

tmux 구성

크게 Session > window > pane 으로 나뉜다.

Session : 독립적인 로그인 쉘을 가진다. 쉽게 말하면 'Ctrl + ALT+FX' 했을 때 tty 번호 나뉜것과 같다.

window : 한 세션 내에서 옮겨다닐 수 있는 단위. 하나의 GUI세션에서 터미널을 여러 개 연 것이라고 생각하면 쉽다.

pane : 앞의 사진처럼 window를 분할하는 단위. 역시 옮겨 다닐 수 있다.

Status Bar (상태표시줄)

하단에 녹색 바가 생긴다.

참고로 녹색 바 는 상태 표시줄으로서 여러 기능을 통해 사용을 편하게 해준다.

또한 극한의 커스텀이 가능하여 자신의 입맛대로 설계할 수 있으나 실무특집이므로 tmux고급편에서 다룬다.

 

기본구성은

[0] 0:zsh : session 이름이 0이고 window 번호/이름 0: zsh를 실행 중임을 나타낸다

* : 현재 창

"jkbpc" : 호스트 이름

02:43 : 현재 시간 표시

15-Dec-21 : 현재 날짜

 

Tmux 접두어 설정

tmux의 대부분의 명령은

Ctrl + B 누른후 <key>

이것처럼 접두어(Prefix)를 활용하는 단축키이다.

접두어가 Ctrl + B 인 것은 굉장히 불편하므로 많은 사람들이 이것을 바꾼다.

바꾸는 방법은 고급편에서 다룬다.

 

이제부터 <prefix> 는 접두어. 기본 설정은 Ctrl + B

Session 명령들

세션 생성

$ tmux new-session [-s session-name] [-t group-name]

-s 옵션은 필수이다.

 

세션 접속/종료

$ tmux attach-session -t <name> # 특정 세션 접속
$ tmux dettach-client # 세션 끄기 (백그라운드 실행) <prefix>; d 도 된다

세션 목록

$ tmux list-session
$ tmux ls # alias

 

세션 이름 수정

$ <prefix>; $
# 원하는 이름 적고 Enter

이름 변경 모습

Window 명령들

 

window 생성

<prefix>; c

window 이름변경

<prefix>; ,

세션 내의 window 이동하기

<prefix>; n # 하단바 상에서 다음window로 이동

<prefix>; p # 하단바 상에서 전window로 이동

<prefix>; (num) # 특정 window로 이동

모든 세션의 계급도(hierarchy)를 tree 구조로 보여주고 이동

<prefix>; w # Esc는 원상복귀

Pane 명령들

pane 나누기

<prefix>; % #좌우로 나누기
<prefix>; " #위아래로 나누기

쉽게 생각한다

( % ) -> ( 0|0 ) 세로로 나눈 모습

( "  ) -> ( = ) 가로로 나눈 모습

pane 이동

현재 pane 이 뭔지 색으로 알 수 있다.

<prefix>; 방향키
<prefix>; o #순서대로 이동

pane 상태 보기

<prefix>; q

pane 삭제 (본래 쉘에서 강제종료에 해당하는 단축키)

<ctrl + d>

 

pane 크기 조절

옵션으로 L,R,U,D 입력하면 상하좌우로 pane 크기가 조절된다

$ tmux resize_pane -L 10
<prefix>; <alt> <방향키>

pane 레이아웃 바꾸기

자동으로 다양한 레이아웃으로 바꿔준다.

<prefix>; <space bar>

 

pane 동시 입력 (유용해서 넣음)

<prefix>; : setw synchronize-panes on/off

이 옵션 말고도 다른 옵션이 많지만 고급편에서 다룬다.

 

기타 명령어

스크롤할 수 있게 하기 (copy mode)

<prefix>; [

도움말( 영어 가이드 )

<prefix>; ?

  그 외

vim 에서의 명령으로 화면 분할을 할 수 있다.

vim에서

:sp (split window)

:vs (virtical split)

이 명령어를 하면 화면이 분할되고 vim에서 여러 문서를 볼 수 있다.

화면 간의 이동은 <ctrl> + <w> 를 2번

자세한건 vi 사용법 참고

반응형