본문 바로가기
C.W.K.
Stream
Lesson 03 of 03 · published

Detach, Reattach, Copy Mode

~13 min · tmux, detach, copy-mode, scrollback

Level 0갇힌 자
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

떼었다 붙이는 이 리듬이 tmux의 존재 이유야

이 흐름만 몸에 익으면 tmux는 일주일 안에 값을 해.

  1. tmux new -s work — 이름 붙인 세션을 시작해.
  2. pane을 잡고, 프로세스를 띄우고, 그대로 돌게 둬.
  3. prefix + d — 떼어내. 터미널을 닫아. 자리를 떠. 자. 여행을 가.
  4. tmux attach -t work — 다시 붙어. 떠날 때 그 상태 그대로야. 돌고 있던 프로세스도, 스크롤백도, 커서 위치까지도.

SSH를 끼면 더 세져. 리모트 서버 위에서 tmux를 띄우고, 노트북에서 SSH로 들어가 오래 걸리는 작업을 시작하고, 떼어내고, SSH를 끊어도 작업은 서버에서 계속 돌아. 나중에 아무 데서나 다시 들어가서 붙고 결과를 보면 돼.

Copy mode — 스크롤, 검색, 복사

tmux 안에서는 마우스 휠로 셸 출력이 기본적으로 안 올라가. 지금 터미널이 아니라 멀티플렉서 안에 있는 거니까. 스크롤백을 훑으려면 prefix + [copy mode에 들어가. 그러면 화살표 키 (설정했다면 vi 키) 로 스크롤할 수 있어. q로 나오고.

Copy mode 안에서

setw -g mode-keys vi (트랙 6) 를 걸어두면 copy mode가 vi 방식으로 움직여.

  • 이동은 h j k l, w b e, 0 $, gg G. Vim이랑 똑같아.
  • /pattern으로 앞쪽, ?pattern으로 뒤쪽 검색. nN으로 다음과 이전 매치.
  • Space로 선택을 시작하고, motion으로 늘리고, Enter로 복사해 (그러면서 copy mode도 빠져나와).
  • v는 직사각형 선택을 켰다 껐다 해.
  • q로 copy mode에서 나와.

붙여넣기

prefix + ]가 가장 최근에 tmux로 복사한 걸 붙여넣어. 설정을 제대로 해두면 (트랙 6) tmux의 복사가 시스템 클립보드에도 같이 들어가서, 다른 앱에서 Cmd-VCtrl-V로 붙일 수 있어.

copy mode는 tmux 안의 Vim이야. 트랙 1~2를 했으면 이미 돌아다니고 검색하는 법을 알잖아. copy mode는 그 키들을 그대로 빌려 쓴 거야. tmux 쓰는 사람 대부분이 몇 분 안에 "아, 이거 그냥 스크롤백용 Vim이네" 하고 알아채는데, 맞는 말이야.

Code

SSH로 detach / reattach — 정통 리모트 워크플로우·bash
# 노트북에서:
ssh user@remote-box

# 리모트 박스에서:
tmux new -s deploy

# 리모트의 tmux 안에서:
./long-running-deploy.sh
# (계속 돌고 있음)

# 멈추지 않고 detach:
Ctrl-b d

# 리모트 셸로 돌아옴.  원하면 SSH 끊기:
exit

# 몇 시간 후, SSH 가능한 어디서든:
ssh user@remote-box
tmux attach -t deploy
# Deploy 여전히 돌고 있음 (또는 끝났음 — 보일 거야).  아무것도 안 잃음.
Copy mode 워크스루 (vi-key 설정 시)·text
prefix + [        copy mode 진입

이제 vi 키로 스크롤백 navigate:
k         한 라인 위로 스크롤
j         한 라인 아래로 스크롤
Ctrl-u    반 페이지 위
Ctrl-d    반 페이지 아래
g         스크롤백 맨 위
G         맨 아래 (라이브 셸로)
/error    'error' 앞으로 검색
n         다음 매치
N         이전 매치

텍스트 선택:
Space     선택 시작
(motion)  선택 확장
v         직사각형 선택 토글
Enter     복사 + copy mode 나감

취소:
q         복사 안 하고 copy mode 나감
Paste·text
prefix + ]        가장 최근 tmux 복사 paste
prefix + =        paste buffer 히스토리 리스트

# 클립보드 통합 (트랙 6) 으로 복사가 시스템 클립보드에도 가서
# 다른 앱에서 Cmd+V / Ctrl+V 가 작동.

External links

Exercise

tmux new -s scrollback을 실행해. 세션 안에서 cat /var/log/syslog (아니면 아무 긴 파일) 를 돌려서 화면을 텍스트로 채워. Ctrl-b [로 copy mode에 들어가서 k / jCtrl-u / Ctrl-d로 위로 올라가봐. /error에 Enter로 "error"를 앞쪽 검색하고, Space와 motion으로 몇 줄을 골라 Enter로 복사해. q로 나온 다음 Ctrl-b ]로 프롬프트에 붙여넣어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.