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