tmux는 GNU Screen과 유사한 기능을 제공하는 터미널 멀티플렉서(Terminal Multiplexer)이며, 사용자에게 하나의 물리적인 터미널 세션 내에서 여러 개의 가상 터미널 창(pane) 및 세션(session)을 동시에 관리할 수 있는 환경을 제공한다.
개요
- 정식 명칭: tmux (terminal multiplexer)
- 개발 언어: C
- 라이선스: ISC 라이선스(오픈소스)
- 지원 운영체제: 유닉스 계열 시스템(Linux, macOS, *BSD 등) 및 Windows(WSL, Cygwin 등)
역사
tmux는 2007년 Nicholas Marriott에 의해 처음 발표되었다. 초기 버전은 GNU Screen과의 호환성을 목표로 하였으며, 이후 지속적인 유지·보수와 기능 추가가 이루어졌다. 주요 릴리스는 다음과 같다.
| 버전 | 발표 연도 | 주요 변경 사항 |
|---|---|---|
| 1.0 | 2009 | 기본 멀티플렉싱 기능 구현 |
| 2.0 | 2013 | 세션 복제, 워크스페이스 저장 기능 추가 |
| 2.4 | 2015 | 복합 키 바인딩 및 스크립트 API 개선 |
| 3.0 | 2020 | UTF‑8 지원 확대, 성능 최적화 |
| 3.2 | 2022 | 터미널 창 내 마우스 지원 강화 |
주요 기능
- 세션 관리: 사용자는 하나 이상의 세션을 생성하고, 각각을 독립적으로 시작·정지·재접속할 수 있다.
- 창(pane) 분할: 화면을 수평·수직으로 자유롭게 분할하여 다중 작업을 동시에 수행할 수 있다.
- 윈도우와 세션 구분: tmux는 세션 안에 여러 개의 윈도우(window)를 두고, 각 윈도우 안에 여러 개의 pane을 배치한다.
- 키 바인딩 및 스크립트: 사용자 정의 키 바인딩과 스크립트를 통해 동작을 커스터마이징할 수 있다.
- 복구 및 지속성: 네트워크 연결이 끊기거나 터미널이 종료될 경우에도 세션을 백그라운드에 유지하고 재접속이 가능하다.
사용 예시
# 새 세션 생성 및 이름 지정
tmux new -s mysession
# 현재 세션에 새로운 창 추가
tmux new-window -n editor
# 창을 수평 분할
tmux split-window -h
# 세션 목록 보기
tmux ls
# 세션에 재접속
tmux attach -t mysession
배포 및 커뮤니티
tmux는 다양한 배포판의 패키지 관리자를 통해 설치할 수 있다(예: apt, yum, Homebrew). GitHub 저장소(https://github.com/tmux/tmux)에서 소스 코드와 최신 릴리스를 제공하며, 활발한 개발자와 사용자 커뮤니티가 존재한다.
참고 문헌
- N. Marriott, “tmux – terminal multiplexer,” 2007–2022, https://github.com/tmux/tmux.
- 자유 소프트웨어 재단(FSF), “tmux License,” ISC License.
※ 본 문서는 확인된 공개 자료에 기반하여 작성되었으며, 추가적인 비공식 정보는 포함하지 않는다.