소개
리눅스는 보통 원격조종 등을 통해 사용된다.
원격 중에는 세션을 하나 밖에 띄울 수 없는 상황이 종종 발생한다.
이때 여러 세션을 사용하기 위해 가상으로 나누어주는 프로그램이 있다.
바로 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번
'GNU+linux > linux 실용 꿀팁' 카테고리의 다른 글
전원관리/팬 속도 조절 - 리눅스 실무특집 (0) | 2021.09.29 |
---|---|
파일 정리/관리하기 - 리눅스 실무 특집 (0) | 2021.08.11 |
리눅스 에서 G102 마우스 설정하는법 (리눅스에서 로지텍 마우스 설정) (2) | 2021.07.05 |
멀티부팅 - 리눅스와 윈도우 모두 사용하기(고급) (0) | 2021.01.10 |