tmux

tmux

무료
tmux

tmux

프로그램 실행, 로그 조회, 디버깅을 동시에 하려고 터미널을 여러개 띄운 적 있지 않나요? 서버와 연결이 불안정해 네트워크 끊긴 후 터미널 재실행 해 본적은요? 실행 중 프로세스를 터미널 창 실수로 닫아 중단한 적은 없었나요?

서로 다른 위치의 사용자와 터미널을 같이 보며 작업할 필요가 있지 않았나요?

tmux 를 써보세요!!

tmux 나오기 전까진 screen 이 있었습니다.

특징

  • 터미널 세션 종료해도 tmux 내부 세션은 유지 됨
  • iterm2 과 통합 가능(tmux -CC 로 실행 시)

설치하기

주요 리눅스 배포판에서 tmux 패키지로 설치 가능합니다.(단, CentOS 는 EPEL 저장소 추가 필요)

사용법

tmux 실행전

tmux 명령 입력하면 tmux 터미널 실행이 됩니다.

  • prefix - ctrl-d 로 tmux 터미널 유지한 채 tmux 에서 빠져나올(detach) 수 있고, tmux attach 로 재연결 가능합니다. 유지된 tmux 터미널이 여러 개 일 때는 -t 옵션으로 세션 지정해 접속하면 됩니다.

옵션

namedescription
attach이전에 분리했던 세션에 연결,-t 옵션으로 세션 명시 가능, -d 다른 tmux 접속 분리

tmux 실행 후, 내부 명령

prefix key (기본값 ctrl-b 입력 후 바인딩 된 키 입력

동작
C-b C-bSend the prefix key
C-b C-oRotate through the panes
C-b C-zSuspend the current client
C-b SpaceSelect next layout
C-b !Break pane to a new window
C-b "Split window vertically
C-b #List all paste buffers
C-b $Rename current session
C-b %Split window horizontally
C-b &Kill current window
C-b 'Prompt for window index to select
C-b (Switch to previous client
C-b )Switch to next client
C-b ,Rename current window
C-b -Delete the most recent paste buffer
C-b .Move the current window
C-b /Describe key binding
C-b 0Select window 0
C-b 1Select window 1
C-b 2Select window 2
C-b 3Select window 3
C-b 4Select window 4
C-b 5Select window 5
C-b 6Select window 6
C-b 7Select window 7
C-b 8Select window 8
C-b 9Select window 9
C-b :Prompt for a command
C-b ;Move to the previously active pane
C-b =Choose a paste buffer from a list
C-b ?List key bindings
C-b CCustomize options
C-b DChoose a client from a list
C-b ESpread panes out evenly
C-b LSwitch to the last client
C-b MClear the marked pane
C-b [Enter copy mode
C-b ]Paste the most recent paste buffer
C-b cCreate a new window
C-b dDetach the current client
C-b fSearch for a pane
C-b iDisplay window information
C-b lSelect the previously current window
C-b mToggle the marked pane
C-b nSelect the next window
C-b oSelect the next pane
C-b pSelect the previous window
C-b qDisplay pane numbers
C-b rRedraw the current client
C-b sChoose a session from a list
C-b tShow a clock
C-b wChoose a window from a list
C-b xKill the active pane
C-b zZoom the active pane
C-b {Swap the active pane with the pane above
C-b }Swap the active pane with the pane below
C-b ~Show messages
C-b DCReset so the visible part of the window follows the cursor
C-b PPageEnter copy mode and scroll up
C-b UpSelect the pane above the active pane
C-b DownSelect the pane below the active pane
C-b LeftSelect the pane to the left of the active pane
C-b RightSelect the pane to the right of the active pane
C-b M-1Set the even-horizontal layout
C-b M-2Set the even-vertical layout
C-b M-3Set the main-horizontal layout
C-b M-4Set the main-vertical layout
C-b M-5Select the tiled layout
C-b M-nSelect the next window with an alert
C-b M-oRotate through the panes in reverse
C-b M-pSelect the previous window with an alert
C-b M-UpResize the pane up by 5
C-b M-DownResize the pane down by 5
C-b M-LeftResize the pane left by 5
C-b M-RightResize the pane right by 5
C-b C-UpResize the pane up
C-b C-DownResize the pane down
C-b C-LeftResize the pane left
C-b C-RightResize the pane right
C-b S-UpMove the visible part of the window up
C-b S-DownMove the visible part of the window down
C-b S-LeftMove the visible part of the window left
C-b S-RightMove the visible part of the window right

다수의 pane 에 동시에 입력 보내기

여러 개의 pane 을 만들어 각 pane 에서 서로 다른 ssh 연결을 해 둡니다. C-b : 로 커맨드 입력 상태로 들어가서, setw synchronize-panes on 을 하면, 이제부터 입력하는 내용은 모든 pane 에 동일하게 전달됩니다.

on/off 를 지정하지 않고 setw synchronize-panes 커맨드를 실행하면 토글 버튼처럼 on/off 상태를 전환해줍니다.

관련 정보

https://www.youtube.com/watch?v=Aio10AuyzEo iterm2 와 통합

댓글