Duyệt qua các câu hỏi tôi tìm thấy về tmux (Tôi thường sử dụng GNU Screen). Câu hỏi của tôi là những ưu và nhược điểm của mỗi người trong số họ. Đặc biệt tôi không thể tìm thấy nhiều về tmux.
Duyệt qua các câu hỏi tôi tìm thấy về tmux (Tôi thường sử dụng GNU Screen). Câu hỏi của tôi là những ưu và nhược điểm của mỗi người trong số họ. Đặc biệt tôi không thể tìm thấy nhiều về tmux.
Câu trả lời:
Từ trang web của họ :
- Tmux khác với màn hình GNU như thế nào? Nó cung cấp những gì khác?
tmux cung cấp một số lợi thế trên màn hình:
- một mô hình máy khách-máy chủ được xác định rõ ràng: các cửa sổ là các thực thể độc lập có thể được gắn đồng thời vào nhiều phiên và được xem từ nhiều máy khách (thiết bị đầu cuối), cũng như di chuyển tự do giữa các phiên trong cùng một máy chủ tmux;
- một giao diện lệnh nhất quán, được ghi chép tốt, với cùng một cú pháp cho dù được sử dụng tương tác, như một ràng buộc chính, hoặc từ vỏ;
- kịch bản dễ dàng từ vỏ;
- nhiều bộ đệm dán;
- lựa chọn bố trí chính vi hoặc emacs;
- một tùy chọn để giới hạn kích thước cửa sổ;
- một cú pháp dòng trạng thái có thể sử dụng nhiều hơn, với khả năng hiển thị dòng đầu ra đầu tiên của một lệnh cụ thể;
- một codebase được cấp phép BSD sạch hơn, hiện đại, dễ dàng mở rộng.
Vẫn còn một vài tính năng màn hình bao gồm mà tmux bỏ qua:
- dựng sẵn hỗ trợ nối tiếp và telnet; đây là sự phình to và không có khả năng được thêm vào tmux;
- hỗ trợ nền tảng rộng hơn, ví dụ IRIX và HP-UX và cho các thiết bị đầu cuối lẻ.
<C-Left>
ở vim
trong tmux
.
Một điểm khác biệt là cách hai người hành động khi nhiều thiết bị đầu cuối được gắn vào một phiên duy nhất.
Với màn hình, mỗi chế độ xem của thiết bị đầu cuối đính kèm độc lập với các chế độ khác. Với tmux, tất cả các thiết bị đầu cuối đính kèm đều nhìn thấy điều tương tự.
Giả sử bạn có hai thiết bị đầu cuối được gắn vào một phiên tmux duy nhất. Nếu bạn gõ ^B1 vào một thiết bị đầu cuối, thiết bị đầu cuối khác cũng chuyển sang cửa sổ 1.
Khi bạn có hai thiết bị đầu cuối được gắn vào một phiên màn hình duy nhất và bạn nhập ^A1 vào một, nó không có hiệu lực trên thiết bị đầu cuối khác.
Điều này dựa trên kinh nghiệm của tôi với tmux 1.2; Tôi thấy 1.3 đã hết nhưng tôi không nhận thấy bất cứ điều gì trong danh sách thay đổi về hành vi thay đổi này.
Nếu phiên tmux ban đầu của bạn được gọi 0
(mặc định), thì bạn có thể làm tmux new-session -t 0
) để bắt đầu một phiên độc lập mới được kết nối với cùng một bộ cửa sổ, sau đó có thể có chế độ xem riêng.
tmux new -t 0
.
tmux khá mới so với màn hình GNU. Ưu điểm / nhược điểm là một câu hỏi khó, vì cả hai chương trình đều giải quyết được cùng một vấn đề. tmux được cấp phép BSD trong khi màn hình là GNU GPL. Điều này quan trọng với một số người.
màn hình được đại diện nhiều hơn (trên Linux) tại thời điểm này, nghĩa là, bạn có nhiều khả năng tìm thấy nó trên một hộp linux nhất định hơn là tmux. Tuy nhiên, tmux được thể hiện nhiều hơn trên OpenBSD vì nó được bao gồm như là một phần của cài đặt cơ sở.
Cả hai chương trình đều cho phép bạn làm cùng một việc, mặc dù trạng thái của mọi thứ phức tạp hơn thế một chút. Chuyển đổi giữa cả hai không quá phức tạp, vì nhiều chức năng của màn hình cũng đã tìm được đường vào tmux, mặc dù nếu bạn là người sử dụng năng lượng của một trong hai, bạn có thể sẽ gặp một số sự thất vọng khi chuyển sang chế độ khác.
Như với bất kỳ chương trình nào, nó thực sự phụ thuộc vào nhu cầu của bạn, và bạn cảm thấy thoải mái hơn. Cung cấp cho họ cả hai thử và xem bạn chơi độc đáo với.
Để biết thêm thông tin về tmux, hãy xem https://tmux.github.io/
Sự khác biệt lớn nhất trong việc sử dụng của tôi là trong Màn hình Gnu, bạn chỉ có thể phân chia các khung theo chiều ngang, trong khi ở Tmux, bạn có thể chia cả theo chiều ngang và chiều dọc. Đây là một loại mục tiêu di động, mặc dù như tôi ở đây nói rằng sự phân chia theo chiều dọc đang khiến nó xuất hiện trên màn hình .
Khác sau đó, mọi thứ là về căn hộ.
Tôi nghĩ rằng tôi sẽ chỉ đề cập đến byobu
trình bao bọc có sẵn cho màn hình làm cho nó tốt hơn rất nhiều ngay lập tức. Tôi không biết nếu một cái gì đó như thế này có sẵn cho tmux, nhưng byobu
làm cho .screenrc của tôi chỉ có một vài dòng. Kiểm tra bài viết nhanh này về byobu và ảnh chụp màn hình. Trang dự án cho byobu mô tả tên bắt nguồn từ một thuật ngữ tiếng Nhật để trang trí, màn hình nhiều bảng đóng vai trò là vách ngăn phòng gấp. Ngoài ra, chỉ chạy nó không làm hại cài đặt màn hình của bạn, vì vậy bạn có thể thử nó một cách an toàn. Khi bạn bắt đầu phiên với byobu
bạn có thể tự do kết nối lại với nó bằng cách sử dụng screen
và vẫn không mất bất kỳ tùy chỉnh nào được thực hiện bởi byobu
(vì vậy chỉ sử dụng nó cho lần gọi ban đầu). Hai ưu điểm chính của nó là:
Tôi không sử dụng phần keybindings, nhưng chắc chắn thấy các thanh trạng thái hữu ích.
Ngoài ra, bạn có thể thấy liên kết Screen Vs tmux hữu ích. Tôi nghĩ rằng hầu hết nó đã được đề cập bởi các câu trả lời hiện có.
byobu
, như câu trả lời này với danh sách các tính năng của nó.
byobu
, nhưng nó đơn giản như chạy lệnh và tự tìm kiếm (nó được điều khiển bằng menu), vì nó không làm rối các cài đặt màn hình hiện tại của bạn. Và tôi đã đưa ra câu trả lời của mình một wiki cộng đồng, vì vậy hãy thoải mái chỉnh sửa nó.
Dbler nêu lên một điểm thú vị - hành vi mặc định của việc kết nối hai lần với cùng một phiên là khác nhau trong tmux. Tuy nhiên, nếu bạn muốn đính kèm hai lần và có chế độ xem độc lập các cửa sổ trong phiên đó - hãy bắt đầu tmux với
tmux new-session -t <session name>
Điều đó sẽ tạo một phiên mới cho bạn và đính kèm các cửa sổ từ phiên đã có. Nếu bạn không đặt tên cho phiên đầu tiên của mình, bạn có thể thêm một phiên với 'đổi tên phiên'.
tmux là mới hơn và một số tính năng hơn.
Tôi đã thấy rằng sử dụng tốt phụ thuộc vào thiết lập tốt.
Tôi sử dụng vi (vim) để chỉnh sửa (ruby trên đường ray) và có một vài điều thiết lập để làm cho nó hoạt động tốt.
Đây là tệp ~ / .tmux.conf của tôi với nhiều cài đặt hữu ích:
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"
Tôi sẽ tự do thêm một sự khác biệt:
tmux là ncurses dựa trên trong khi màn hình không vẽ các yếu tố bổ sung. Nếu ai đó sử dụng trình giả lập thiết bị đầu cuối hỗ trợ (các) cuộn, anh ta sẽ nhận được cuộn bằng màn hình nhưng không phải với tmux (ít nhất là trong cấu hình mặc định). Điều tương tự áp dụng cho tìm kiếm và các tính năng tương tự.