질문 탐색 tmux에 대해 발견했습니다. (보통 GNU Screen)을 사용했습니다. 제 질문은 각각의 장단점입니다. 특히 찾을 수 없었습니다. tmux에 대해 많이.
그들의 웹 사이트 에서 :
- Tmux와 GNU screen)의 차이점은 무엇입니까?
tmux는 화면보다 몇 가지 장점을 제공합니다.
- 명확하게 정의 된 클라이언트-서버 모델 : 창은 여러 세션에 동시에 연결되어 여러 클라이언트 (터미널)에서 볼 수 있고 동일한 tmux 서버 내의 세션간에 자유롭게 이동할 수있는 독립된 엔티티입니다.
- 대화식, 키 바인딩 또는 셸에서 사용되는지에 상관없이 동일한 구문을 사용하여 일관성 있고 잘 문서화 된 명령 인터페이스
- 쉘에서 쉽게 스크립트 가능;
- 다중 페이스트 버퍼;
- vi 또는 emacs 키 레이아웃 선택;
- 창 크기를 제한하는 옵션;
- 특정 명령의 첫 번째 출력 라인을 표시 할 수있는 더 유용한 상태 라인 구문;
- 보다 깨끗하고 현대적이며 쉽게 확장 가능한 BSD 라이센스 코드베이스.
화면에 tmux가 생략 된 기능이 몇 가지 있습니다.
- 내장 직렬 및 텔넷 지원; 이것은 팽창이며 tmux에 추가되지 않을 것입니다.
- 더 넓은 플랫폼 지원 (예 : IRIX 및 HP-UX) 및 홀수 터미널.
한 가지 차이점은 여러 터미널이 단일 세션에 연결될 때 두 개가 어떻게 작동하는지입니다.
화면을 사용하면 연결된 각 터미널의보기가 다른 터미널과 독립적입니다. tmux를 사용하면 연결된 모든 터미널에 동일한 내용이 표시됩니다.
단일 tmux 세션에 두 개의 터미널이 연결되어 있다고 가정하십시오. 입력하면 ^B 1을 다른 터미널로 전환하면 다른 터미널도 창 1로 전환됩니다.
단일 화면 세션에 두 개의 터미널이 연결되어 있고 다음을 입력 한 경우 ^A 1로 설정하면 다른 터미널에는 영향을 미치지 않습니다.
이것은 tmux 1.2에 대한 나의 경험을 바탕으로합니다. 1.3이 나오지만이 변경 사항에 대한 변경 로그에 아무것도 눈치 채지 못했습니다.
원래의 tmux 세션이 0
(기본값), tmux new-session -t 0
) 동일한 창 세트에 연결된 새 독립 세션을 시작하여 자체보기를 가질 수 있습니다.
tmux는 GNU 화면에 비해 상당히 새롭습니다. 장점/단점은 두 프로그램이 거의 동일한 문제를 해결하기 때문에 어려운 질문입니다. tmux는 BSD 라이센스이며 화면은 GNU GPL입니다. 이것은 일부 사람들에게 중요합니다.
화면은 현재 Linux에서 더 많이 나타납니다. 즉, 주어진 Linux 상자에서 tmux보다 더 많이 찾을 수 있습니다. 그러나 tmux는 기본 설치의 일부로 포함되어 있기 때문에 OpenBSD에서 더 많이 나타납니다.
사물의 상태는 그보다 조금 더 복잡하지만 두 프로그램 모두 같은 일을 할 수 있습니다. 두 화면 사이의 전환은 많은 화면 기능이 tmux로 전환 되었기 때문에 지나치게 복잡하지는 않지만 어느 한 쪽의 고급 사용자 인 경우 다른쪽으로 전환 할 때 약간의 좌절감을 느낄 수 있습니다.
모든 프로그램과 마찬가지로, 그것은 실제로 귀하의 요구에 따라 어느 것이 더 편한지에 달려 있습니다. 그들에게 시도하고 당신이 잘 연주하는 볼 수 있습니다.
Tmux에 대한 자세한 내용은 https://tmux.github.io/ 를 참조하십시오.
화면에서 사용할 수있는 byobu
래퍼에 대해 언급했을뿐입니다. tmux에서 이와 같은 것을 사용할 수 있는지는 모르겠지만 byobu
은 .screenrc를 몇 줄만 만들었습니다. byobu 및 스크린 샷에 대해이 빠른 기사 를 확인하십시오. byobu의 프로젝트 페이지 접는 공간 구분선 역할을하는 장식용 다중 패널 화면의 일본어 용어에서 유래 한 이름을 설명합니다. 또한 실행 만해도 화면 설정이 손상되지 않으므로 안전하게 사용해 볼 수 있습니다. byobu
으로 세션을 시작한 후에는 screen
를 사용하여 자유롭게 다시 연결할 수 있지만 byobu
에서 수행 한 사용자 지정 내용을 풀 수는 없습니다 (초기 호출에만 사용하십시오). 그것의 두 가지 주요 장점은 다음과 같습니다.
키 바인딩 부분을 사용하지 않지만 상태 표시 줄이 유용하다는 것을 알았습니다.
또한 Screen Vs tmux 링크가 유용 할 수도 있습니다. 나는 그것의 대부분이 기존 답변에 이미 언급되어 있다고 생각합니다.
내 사용의 가장 큰 차이점은 Gnu Screen에서는 프레임을 가로로만 분할 할 수 있지만 Tmux에서는 가로 및 세로로 분할 할 수 있다는 것입니다. 이것은 일종의 움직이는 목표이지만, 여기에서 수직 분할은 화면에 들어가고 있음 라고 말합니다.
그 외에는 일이 평평합니다.
screen
의 한 가지 큰 단점은 적극적으로 개발되지 않았다는 것입니다. bug pages 는 5 년 동안 할당되지 않은 200 개에 가까운 항목을 가지고 있습니다.
tmux
에도 공개 된 문제가 있지만 훨씬 적으며보다 적극적으로 지원됩니다.
Drench는 흥미로운 점을 제기합니다. 동일한 세션에 두 번 연결하는 기본 동작은 tmux에서 다릅니다. 그러나 두 번 연결하고 해당 세션에서 창을 독립적으로 보려면 tmux를 시작하십시오.
tmux new-session -t <session name>
그러면 새 세션이 생성되고 기존 세션에서 창이 연결됩니다. 첫 번째 세션의 이름을 지정하지 않은 경우 'rename-session'을 사용하여 세션을 추가 할 수 있습니다.
tmux는 더 새로운 기능입니다.
올바른 사용법은 올바른 설정에 달려 있습니다.
편집을 위해 vi (vim)를 사용하고 (Ruby on Rails) 제대로 작동하기위한 몇 가지 설정 사항이 있습니다.
유용한 설정이 많은 ~/.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는 ncurses를 기반으로하며 screen은 추가 요소를 그리지 않습니다. 누군가가 스크롤을 지원하는 터미널 에뮬레이터를 사용하면 tmux가 아닌 화면으로 스크롤됩니다 (적어도 기본 구성에서는). 검색 및 유사한 기능에도 동일하게 적용됩니다.
Utf-8 및 256 색상을 지원하는 화면을 얻는 데 문제가 있었지만 tmux가 즉시 작동했습니다.