리눅스를 사용해서 포너블, 웹해킹, 리버싱등 여러 작업을 하다보면 터미널을 여러개
띄워놓고 작업해야 할때가 많습니다.
하지만 gdb를 이용해 코드를 분석하면서 소스코드를 수정하는게 필요할때 이러한 작업이 어렵습니다.
이러한 대안으로 tmux라는 소프트웨어가 있다고 합니다.
1. Tmux
Tmux는 Terminal Multiplexer SW로 Unix 계열에서 사용가능하며
session(세션)과 window(윈도우), pane(팬)을 구조로 나뉩니다.
session은 tmux를 실행하면 가장먼서 생성되며 tmux가 관리하는 가장큰 실행단위로
tmux는 생성된 세션에 attach / detach 할 수 있습니다.
tmux의 특징중 하나로 detach한 세션은 종료되는 것이 아닌 백그라운드에서 계속 실행이 가능하다고 합니다.
window는 세션에 바로 아래에 위치해 구성되며 사용자가 보는 뷰가 윈도우라고 생각하면 이해가 좀더 수월합니다.
세션을 크롬이나 여러 브라우저로 본다면 탭을 통해 여러 화면을 띄우는것이 window라고 볼 수 있습니다.
pane은 윈도우에 여러개 구성이 가능한 구조로 가로, 세로로 화면을 분할해 생성합니다.
만약 window 0에 pane을 4개 구성하고 window 1로 화면을 전환했다면
pane 또한 새로운 구성으로 전환되게 됩니다.
그림으로 표현해보면 다음과 같습니다.

2. Tmux 설치 및 명령어
Linux에서의 Tmux 설치는 아래 명령어로 설치가 가능하며
$ sudo apt-get install tmux
실행은 tmux 명령만 입력하거나 이름을 정해줄 수 있습니다.
$ tmux
$ tmux new -s [session_name]
$ tmux new -s [session_name] -n [window_name]
tmux 명령만 입력시에는 session의 이름이 숫자로 지정되고
-s 와 -n 다음에 설정하고자 하는 세션이름과 윈도우이름으로 정해줄 수 있습니다.
추가로 현재 session 목록확인, 여러개 session중 원하는 session 진입, session 이름 변경,
session에서 나가기 외 다양한 명령어가 있습니다.
//session 관련 명령어
$ tmux ls //session 목록 확인
$ tmux attach-session -t [Session_name] //session 진입하기
$ tmux rename-session -t [old_session_name] [new_session_name] //session 이름 재설정
$ exit // 세션 종료
$ tmux kill-session -t [session_name] // 특정 세션 강제 종료
ctrl + b + d // 세션 중단하기
ctrl + b + [ // 스크롤 하기
//window 관련 명령어
ctrl + b + c // 새 윈도우 생성
ctrl + b + b [숫자] // 새 윈도우 이동
//pane 관련
ctrl + d // pane 삭제
ctrl + b + % // 세로 분할
ctrl + b + " // 가로 분할
ctrl + b + 방향키 // pane 이동하기
ctrl + b + alt + 방향키 // pane 사이즈 조정
// 단축키 목록
ctrl + b + ?
3. 실행 예시
설치 후 사용 화면으로 확인해보면 아래 session 이름이 0, widonw 이름이 0 확인이 가능하며
화면이 두개로 분할 되어있는 것이 pane입니다.

예시코드는 간단한 bof 문제로 한쪽에서는 코드의 확인을 한쪽에서는 코드의 실행을 하여
훨씬 보기 편한 구조를 갖추게 되었습니다.
참고 블로그
1.https://velog.io/@ur-luella/tmux-%EC%82%AC%EC%9A%A9%EB%B2%95
2. https://jjeongil.tistory.com/1361
'Reference > Linux' 카테고리의 다른 글
[Linux] Linux File System _IO_FILE (2) | 2023.06.30 |
---|