tmux vs screen vs zellij

tony·2025년 6월 1일
0

Tips/Review

목록 보기
5/7

Why? 왜 배움?


화면 분할 및 여러 세션 관리를 위해 세션매니저를 사용해보고자 소개 및 장단점 비교를 해보았다.

What? 뭘 배움?


  • 터미널 멀티플렉서 터미널에서 여러 개의 쉘 세션을 한 번에 관리할 수 있도록 해주는 도구
    • Screen
    • Tmux
    • Zellij
  • 각 툴은 역사와 철학, 기능면에서 차이 존재
  • 공통적으로 “세션 분리·재접속”, “창(윈도우)/패인 분할”, “키 바인딩을 통한 직관적 제어”를 제공.

Screen

  • 역사 & 특징
    • GNU 프로젝트의 일환으로 1987년부터 개발된 가장 오래된 터미널 멀티플렉서 중 하나
    • 기본 기능이 튼튼하고, 거의 모든 리눅스/유닉스 시스템에 기본 설치되어 있음
  • 주요 사용법
    • 세션 시작: screen -S session_name
    • 새 창 생성: Ctrl+a c
    • 다음 창 전환: Ctrl+a n
    • 이전 창 전환: Ctrl+a p
    • 세션 분리(detach): Ctrl+a d
    • 세션 재접속: screen -r SESSION_ID/NAME

Tmux

  • 역사 & 특징
    • 2007년경부터 개발된 모던한 멀티플렉서로, 스크립팅·플러그인 지원이 활발
    • 상태 바(status bar) 커스터마이징, 복잡한 레이아웃 관리에 강점
  • 주요 사용법
    • 세션 시작: tmux new -s session_name
    • 새 창 생성: Ctrl+b c
    • 다음 창 전환: Ctrl+b n
    • 이전 창 전환: Ctrl+b p
    • 세션 분리(detach): Ctrl+b d
    • 세션 재접속: tmux attach -t session_name
    • 창 이름 변경: Ctrl+b $
    • 수직 분할: Ctrl+b %
    • 수평 분할: Ctrl+b "
    • 패인 간 이동: Ctrl+b ←/→/↑/↓

Zellij

  • 역사 & 특징
    • Rust로 작성된 최신 터미널 워크스페이스·멀티플렉서로, 사용성·안정성·멀티플레이(collaboration)를 지향
    • 세션 자동 직렬화·복구(session resurrection), 플로팅/스택형 패인, 플러그인 시스템 지원
  • 주요 사용법
    • 세션 시작: zellij --session session_name
    • 새 탭(창) 생성: Ctrl+p t
    • 다음 탭 전환: Ctrl+p n
    • 이전 탭 전환: Ctrl+p p
    • 세션 재접속: zellij attach --session session_name
    • 수직 분할(오른쪽으로): Ctrl+p r
    • 수평 분할(아래쪽으로): Ctrl+p d
    • 패인 간 이동: Ctrl+p ← ↑ ↓ →
    • 세션 분리(detach): Ctrl+o d

Tmux vs Screen vs Zellij

기능(Function)ScreenTmuxZellij
세션 시작 (이름 지정)screen -S session_nametmux new -s session_namezellij --session session_name (zellij.dev)
새 창(탭) 생성Ctrl+a cCtrl+b cCtrl+p t (zellij.dev)
다음 창(탭) 전환Ctrl+a nCtrl+b nCtrl+p n (GitHub)
이전 창(탭) 전환Ctrl+a pCtrl+b pCtrl+p p (GitHub)
세션 재접속screen -r [ID/NAME]tmux attach -t session_namezellij attach --session session_name (zellij.dev)
창(세션) 이름 변경Ctrl+a :sessionname 새이름Ctrl+b $(기본 제공 없음; session-manager 활용 권장)
수직 분할`Ctrl+a`Ctrl+b %
수평 분할Ctrl+a S (혹은 Ctrl+a -)Ctrl+b "Ctrl+p d (Reddit)
패인 간 이동Ctrl+a ←/→/↑/↓Ctrl+b ←/→/↑/↓Ctrl+p ←/↑/↓/→ (zellij.dev)
세션 분리(detach)Ctrl+a dCtrl+b dCtrl+o d (TMPDIR)
특징(Features)ScreenTmuxZellij
기본 설치(native package)
키 바인딩 지원
세션 저장·전환
스크롤(Scrollback)
다중 연결(multi-attach)

결국 무엇을 쓰기로 하였나?


필자는 zellij 의 장점을 높게 사서 한동안 zellij 에 정착하기로 하였다.

  • 키 바인딩의 변화점을 한 눈에 볼 수 있음
  • 레이아웃에 대한 내장 플러그인 탑재
    • yaml 을 통해 레이아웃 지정 가능
  • tmux 키바인딩 또한 지원
  • session resurrection : 죽였던 session 들에 대해서 볼 수 있고 살릴 수 있음

기존에 tmux 사용 중이고, 이미 여러 플러그인을 탑재했다면 tmux 에 정착할 것 같다.

하지만 tmux 의 learning curve 보다 좀 더 단순한 zellij 를 사용해보기로 하였다.

Reference


https://rrmartins.medium.com/zellij-vs-tmux-complete-comparison-or-almost-8e5b57d234ae

https://www.youtube.com/watch?v=ZPfQS5FHNYQ&pp=ygUGemVsbGlq

https://www.youtube.com/watch?v=ZndhImXIGlg&ab_channel=DevOpsToolkit

profile
내 코드로 세상이 더 나은 방향으로 나아갈 수 있기를

0개의 댓글