tmux 대 GNU 화면 [닫힘]


194

tmux에 대해 찾은 질문을 탐색합니다 (보통 GNU 화면을 사용했습니다). 내 질문은 그들 각각의 장단점이 무엇인가입니다. 특히 나는 tmux에 대해 많이 찾을 수 없었습니다.



5
아래의 좋은 답변에서 볼 수 있듯이, 의견 기반 이 아닙니다 .
reinierpost

@reinierpost-여기에 많은 사람들이 "주요 의견 기반"으로 질문을 너무 빨리 마무리하는 것 같습니다. 그러나 재개 투표를 할 수 있습니다.
MountainX

이 질문은 비교 질문이지만, 찬반론과 반대론은 충분히 객관적이며, 따라서 의견의 근거가 충분하지 않다고 생각합니다. 당신은 연결된 SU 질문을 확인할 수 있습니다, 대답은 꽤 괜찮습니다.
peterh

답변:


122

에서 자신의 웹 사이트 :

  • tmux와 GNU 화면의 차이점은 무엇입니까? 다른 무엇을 제공합니까?

tmux는 화면보다 몇 가지 장점을 제공합니다.

  • 명확하게 정의 된 클라이언트-서버 모델 : 창은 여러 세션에 동시에 연결되어 여러 클라이언트 (터미널)에서 볼 수 있고 동일한 tmux 서버 내의 세션간에 자유롭게 이동할 수있는 독립적 인 엔티티입니다.
  • 대화식, 키 바인딩 또는 셸에서 사용되는지에 상관없이 동일한 구문을 사용하여 일관성 있고 잘 문서화 된 명령 인터페이스
  • 쉘에서 쉽게 스크립트 가능;
  • 다중 페이스트 버퍼;
  • vi 또는 emacs 키 레이아웃 선택;
  • 창 크기를 제한하는 옵션;
  • 특정 명령의 첫 번째 출력 라인을 표시 할 수있는보다 유용한 상태 라인 구문;
  • 보다 깨끗하고 현대적이며 쉽게 확장 가능한 BSD 라이센스 코드베이스.

화면에 tmux가 생략 된 기능이 몇 가지 있습니다.

  • 내장 직렬 및 텔넷 지원; 이것은 팽창이며 tmux에 추가되지 않을 것입니다.
  • 더 넓은 플랫폼 지원 (예 : IRIX 및 HP-UX) 및 홀수 터미널.

4
젠장 ... 지금 tmux를 시도하고 싶습니다 ... vi 키 바인딩이 부족하여 화면이 작동하지 않아서.
xenoterracide

1
vi 또는 emacs 키 바인딩은 tmux에 편리한 두 가지 기본값 세트가 있음을 의미합니까? 화면의 키 바인딩을 rc 파일로 완전히 재구성 할 수 있습니다.
jw013

임의의 키 바인딩을 정의 할 수 있습니다. 참조 : openbsd.org/cgi-bin/…
nisc

그들이 구현에 대해 이야기 할 때 마침내 <C-Left>in vim에서 바보 버그를 해결해야합니다 tmux.
yo '

45

한 가지 차이점은 여러 터미널이 단일 세션에 연결될 때 두 개가 어떻게 작동하는지입니다.

화면을 사용하면 연결된 각 터미널의보기가 다른 터미널과 독립적입니다. tmux를 사용하면 연결된 모든 터미널에 동일한 내용이 표시됩니다.

단일 tmux 세션에 두 개의 터미널이 연결되어 있다고 가정하십시오. ^B한 터미널에 1을 입력 하면 다른 터미널도 창 1로 전환됩니다.

단일 화면 세션에 두 개의 터미널이 연결되어 있고 하나에 ^A1을 입력 하면 다른 터미널에는 영향을 미치지 않습니다.

이것은 tmux 1.2에 대한 나의 경험을 바탕으로합니다. 1.3이 나오지만이 변경 사항에 대한 변경 로그에 아무것도 눈치 채지 못했습니다.

화면 동작을 좋아하고 tmux에서 원하는 경우 :

원래의 tmux 세션이 호출 0되면 (기본값) tmux new-session -t 0동일한 창 세트에 연결된 새 독립 세션을 시작하여 자체보기를 가질 수 있습니다.


1
이것은 흥미로운 차이점입니다. 각 사용 사례마다 이러한 장점이 있다고 확신합니다. (tmux 장점 : 원격 페어 프로그래밍을 위해 같은 tmux 세션에 연결된 두 사람은 항상 같은 것을 볼 것입니다. 스크린 이점 : 두 가지 목적을 위해 두 장소에서 같은 화면에 연결된 한 사람은 동시에 두 개의 다른보기를 가질 수 있습니다. 예를 들어, 나란히 (OS / 창 관리자 수준의 창).)
lindes

10
원래의 tmux 세션이 "0"(기본값) 인 경우 "tmux new-session -t 0"을 수행하여 동일한 창 세트에 연결된 새로운 독립 세션을 시작할 수 있습니다. 전망. 나는 이것이 1.2 / 1.3에서 다시 작동했다고 확신하지만, 나는 손을 기억하지 못한다.
Cos

@cos 이것은 내가 찾던 팁입니다. 정말 고맙습니다. 나는 당신에게 두 번 투표 할 수 있기를 바랍니다 :) 매번 'tmux new-session -t 0'으로 다시 첨부하기 시작합니다.
jrwren

@Cos 이것은 "FROM 1.0 TO 1.1, 2009 년 11 월 5 일"에 추가되었습니다. @jrwren 명령이 짧아 질 수 있습니다 tmux new -t 0.
user285259

24

tmux는 GNU 화면에 비해 상당히 새롭습니다. 장점 / 단점은 두 프로그램이 거의 동일한 문제를 해결하기 때문에 어려운 질문입니다. tmux는 BSD 라이센스이며 screen은 GNU GPL입니다. 이것은 일부 사람들에게 중요합니다.

화면은 현재 Linux에서 더 많이 나타납니다. 즉, 주어진 Linux 상자에서 tmux보다 더 많이 찾을 수 있습니다. 그러나 tmux는 기본 설치의 일부로 포함되어 있기 때문에 OpenBSD에서 더 많이 나타납니다.

사물의 상태는 그것보다 조금 더 복잡하지만 두 프로그램 모두 같은 일을 할 수 있습니다. 두 화면 사이의 전환은 많은 화면 기능이 tmux로 전환 되었기 때문에 지나치게 복잡하지는 않지만 어느 한 쪽의 고급 사용자 인 경우 다른쪽으로 전환 할 때 약간의 좌절감을 느낄 수 있습니다.

다른 프로그램과 마찬가지로, 그것은 실제로 당신의 필요와 당신이 더 편한 것에 달려 있습니다. 그들에게 시도하고 당신이 잘 연주하는 것을 참조하십시오.

tmux에 대한 자세한 내용은 https://tmux.github.io/를 참조 하십시오.


17

내 사용의 가장 큰 차이점은 Gnu Screen에서는 프레임을 가로로만 분할 할 수 있지만 Tmux에서는 가로 및 세로로 분할 할 수 있다는 것입니다. 수직 분할이 화면에 들어가고 있다고 말하지만 이것은 일종의 움직이는 목표 입니다.

그 외에는 일이 평평합니다.


10
화면에서도 세로로 분할 할 수 있습니다. mmm ... 기본 우분투 10.10 화면 설치에서 작동하지 않도록하십시오.
Stann

4
@andre 화면에 수직 분할을위한 오랜 패치가있었습니다 ... 업스트림에 통합되지 않았습니다 ...하지만 많은 배포판이 적용되었을 것입니다.
xenoterracide

17

나는 byobu스크린에서 사용할 수 있는 래퍼 에 대해 언급 할 것이라고 생각 했습니다. tmux에서 이와 같은 것을 사용할 수 있는지 모르겠지만 .screenrc를 byobu몇 줄로 만들었습니다. byobu 및 스크린 샷에 대한 이 빠른 기사를 확인하십시오 . byobu의 프로젝트 페이지 에는 접이식 룸 디바이더 역할을하는 장식용 다중 패널 스크린에 대한 일본어 용어에서 유래 한 이름이 설명되어 있습니다. 또한 실행 만해도 화면 설정이 손상되지 않으므로 안전하게 사용해 볼 수 있습니다. 세션을 시작한 후에는 세션을 byobu사용하여 자유롭게 다시 연결할 수 있지만 screen수행 한 사용자 지정 내용을 풀 수는 없습니다 byobu(초기 호출에만 사용하십시오). 그것의 두 가지 주요 장점은 다음과 같습니다.

  • 유용한 정보가 포함 된 몇 가지 상태 표시 줄로 화면을 시작합니다
  • 화면 기능에 더 쉽게 액세스 할 수있는 많은 키 바인딩 제공

키 바인딩 부분을 사용하지 않지만 상태 표시 줄이 유용하다는 것을 분명히 알았습니다.

또한 Screen Vs tmux 링크가 유용하다는 것을 알 수 있습니다 . 나는 그것의 대부분이 기존 답변에 이미 언급되어 있다고 생각합니다.


기능 목록 byobu함께이 답변 과 같은 기능을 요약하면 답변이 더 유용 합니다.
Gilles

좋아,에 대한 자세한 정보를 추가 byobu했지만 기존 화면 설정을 엉망으로 만들지 않기 때문에 명령을 실행하고 메뉴를 찾는 것만 큼 간단합니다. 그리고 내 답변을 커뮤니티 위키로 만들었으므로 자유롭게 편집하십시오.
haridsv

1
byobu는 적어도 최신 버전에서도 실제로 tmux를 지원하는 것으로 보입니다.
Darael

12

Drench는 흥미로운 점을 제기합니다. 동일한 세션에 두 번 연결하는 기본 동작은 tmux에서 다릅니다. 그러나 두 번 연결하고 해당 세션에서 창을 독립적으로 보려면 tmux를 시작하십시오.

tmux new-session -t <session name>

그러면 새 세션이 생성되고 기존 세션에서 창을 연결합니다. 첫 번째 세션의 이름을 지정하지 않은 경우 'rename-session'을 사용하여 세션을 추가 할 수 있습니다.


12

한 가지 큰 screen단점은 적극적으로 개발되지 않았다는 것입니다. 버그 페이지 에 가까운 200 개 할당되지 않은 항목을 5 년에 걸쳐 다시 가고 있습니다.

tmux 공개 된 문제도 있지만 훨씬 적으며 더 적극적으로 지원됩니다.


8

tmux는 더 새로운 기능입니다.

올바른 사용법은 올바른 설정에 달려 있습니다.

나는 vi (vim)을 편집 (루비 온 레일)에 사용하고 잘 작동하도록 설정하는 것이 몇 가지 있습니다.

유용한 설정이 많은 ~ / .tmux.conf 파일은 다음과 같습니다.

bind r source-file ~/.tmux.conf \; display "Reloaded!"  # Reload with ctrl-r
set -g prefix C-a         # prefix from ctrl-b to ctrl-a
unbind C-b                # allow ctrl-b for other things
set -sg escape-time 1     # quicker responses
bind C-a send-prefix      # Pass on ctrl-a for other apps
set -g base-index 1        # Numbering of windows
setw -g pane-base-index 1  # Numbering of Panes
bind \ split-window -h    # Split panes horizontal
bind - split-window -v    # Split panes vertically
bind h select-pane -L     # Switch to Pane Left
bind j select-pane -D     # Switch to Pane Down
bind k select-pane -U     # Switch to Pane Up
bind l select-pane -R     # Switch to Pane Right
bind -r C-h select-window -t :-  # Quick Pane Selection
bind -r C-l select-window -t :+  # Quick Pane Selection
bind -r H resize-pane -L 5       # Switch to Pane Left
bind -r J resize-pane -D 5       # Switch to Pane Down
bind -r K resize-pane -U 5       # Switch to Pane Up
bind -r L resize-pane -R 5       # Switch to Pane Right
setw -g mode-mouse off           # Mouse Off
set -g mouse-select-pane off     # Mouse Off  
set -g mouse-resize-pane off     # Mouse Off
set -g mouse-select-window off   # Mouse Off
setw -g monitor-activity on      # Activity Alerts
set -g visual-activity on
set -g status-fg white           # Status line Colors
set -g status-bg black
setw -g window-status-fg cyan    # Window list color
setw -g window-status-bg default
setw -g window-status-attr dim
setw -g window-status-current-fg white     # Active Window Color
setw -g window-status-current-bg red
setw -g window-status-current-attr bright
set -g pane-border-fg green      # Pane colors
set -g pane-border-bg black 
set -g pane-active-border-fg white 
set -g pane-active-border-bg yellow
set -g message-fg white          # Command/Message Line.
set -g message-bg black
set -g message-attr bright
set -g status-left-length 40     # Status Line, left side
set -g status-left "#[fg=white]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
set -g status-utf8 on            # Status Line, right side
set -g status-right "-------"
set -g status-interval 60        # frequency of status line updates
set -g status-justify centre     # center window list
setw -g mode-keys vi             # vi keys to move 
unbind v                         # Open panes in same directory as tmux-panes script
unbind n
bind v send-keys " ~/tmux-panes -h" C-m
bind n send-keys " ~/tmux-panes -v" C-m
unbind Up                        # Maximizing and Minimizing...
bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"

Tmux는 최신 버전이지만 '더 많은 기능'은 화면과 최소한의 기능 패리티를 가지고 있음을 의미합니다. acls 또는 상태가 없으며 일반적으로 tmux의 새로운 기능을 보여줍니다.
semi

알아두면 좋습니다. 나는 지금 그것을 1 년 동안 사용 해 왔으며 약간의 헝가리 인이 도움이 될 수는 있지만 광택이 필요하지 않습니다. 바로 표기입니다. ok bad pun;) 언급 된 문제를 알지 못하기 전에 화면을 사용하지 않았습니다. 화면으로 전환하고 새로운 기능을 잃어 버리기가 더 어려울 것입니다.
Michael Durrant

8

나는 하나의 차이점을 추가하는 자유를 취할 것입니다.

tmux는 ncurses를 기반으로하며 화면은 추가 요소를 그리지 않습니다. 누군가가 스크롤을 지원하는 터미널 에뮬레이터를 사용하면 tmux가 아닌 화면으로 스크롤됩니다 (적어도 기본 구성에서는). 검색 및 유사한 기능에도 동일하게 적용됩니다.


2
나는 ...와 같은 화면으로 스크롤하지 않았습니까? : /
souser12345

예, 내 TE는 스크롤을 지원하고 화면이 끊어집니다 ... 화면으로 스크롤해야합니다. -1이 정확하지 않은 것 같습니다.
xenoterracide

@xenoterracide : 흠. 당신은 부분적으로 옳습니다. 일부 배포판 / 시스템 (이전 Gentoo)의 화면은 일부 (새로운 우분투)에서는 화면이 깨지지 않습니다. 왜 그런지 모르겠습니다.
Maciej Piechotka

아마도 패치 ... 우리의 시스템은 모두 5.5 센트 시스템입니다.
xenoterracide

6

utf-8 및 256 색상을 지원하는 화면을 얻는 데 문제가 있었지만 tmux는 즉시 사용되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.