tmux vs Layar GNU [ditutup]


194

Menjelajahi pertanyaan yang saya temukan tentang tmux (Saya biasanya menggunakan Layar GNU). Pertanyaan saya adalah apa pro dan kontra dari masing-masing dari mereka. Terutama saya tidak dapat menemukan banyak tentang tmux.



5
Seperti yang dapat Anda lihat dari jawaban yang baik di bawah, mereka tidak berdasarkan pendapat.
reinierpost

@reinierpost - sepertinya banyak orang di sini yang terlalu cepat untuk menutup pertanyaan sebagai "berdasarkan opini". Namun, kami dapat memilih untuk membuka kembali.
MountainX

Meskipun pertanyaan ini adalah pertanyaan perbandingan, saya pikir argumen pro dan kontra cukup objektif dan dengan demikian alasan dekat pendapat tidak baik di sini. Anda dapat memeriksa pertanyaan SU yang ditautkan, jawabannya cukup baik.
peterh

Jawaban:


122

Dari situs web mereka :

  • Bagaimana tmux berbeda dari layar GNU? Apa lagi yang ditawarkannya?

tmux menawarkan beberapa keunggulan dibandingkan layar:

  • model client-server yang jelas: windows adalah entitas independen yang dapat dilampirkan secara bersamaan ke beberapa sesi dan dilihat dari beberapa klien (terminal), serta dipindahkan secara bebas di antara sesi dalam server tmux yang sama;
  • antarmuka perintah yang konsisten dan terdokumentasi dengan baik, dengan sintaksis yang sama apakah digunakan secara interaktif, sebagai pengikat kunci, atau dari shell;
  • mudah skrip dari shell;
  • beberapa buffer pasta;
  • pilihan tata letak kunci vi atau emacs;
  • opsi untuk membatasi ukuran jendela;
  • sintaks baris status yang lebih dapat digunakan, dengan kemampuan untuk menampilkan baris pertama output dari perintah tertentu;
  • basis kode yang lebih bersih, modern, mudah diperpanjang, berlisensi BSD.

Masih ada beberapa fitur layar termasuk tmux yang dihilangkan:

  • dukungan serial dan telnet bawaan; ini kembung dan tidak mungkin ditambahkan ke tmux;
  • dukungan platform yang lebih luas, misalnya IRIX dan HP-UX, dan untuk terminal ganjil.

4
sialan ... sekarang saya ingin mencoba tmux ... hanya karena layar tidak bekerja untuk saya karena kurangnya vi keybindings.
xenoterracide

1
Apakah vi atau emacs keybindings hanya berarti tmux hadir dengan dua set default yang nyaman? Dimungkinkan untuk mengkonfigurasi ulang keybindings layar sepenuhnya dengan file rc-nya.
jw013

Anda dapat menentukan ikatan kunci acak. Lihat: openbsd.org/cgi-bin/...
NISC

Ketika mereka berbicara tentang pelaksanaan, mereka harus akhirnya memecahkan bug bodoh dengan <C-Left>di vimdalam tmux.
yo

45

Salah satu perbedaan adalah bagaimana keduanya bertindak ketika beberapa terminal dilampirkan ke satu sesi.

Dengan layar, setiap tampilan terminal yang terpasang tidak tergantung pada yang lain. Dengan tmux, semua terminal yang terpasang melihat hal yang sama.

Katakanlah Anda memiliki dua terminal yang terpasang pada satu sesi tmux. Jika Anda mengetik ^B1 ke satu terminal, terminal lainnya juga beralih ke jendela 1.

Ketika Anda memiliki dua terminal yang melekat pada satu sesi layar, dan Anda mengetik ^A1 menjadi satu, itu tidak berpengaruh pada terminal lainnya.

Ini berdasarkan pengalaman saya dengan tmux 1.2; Saya melihat 1.3 keluar tetapi saya tidak melihat ada perubahan di changelog tentang perubahan perilaku ini.

Jika Anda menyukai perilaku layar dan menginginkannya di tmux:

Jika sesi tmux asli Anda disebut 0(default), maka Anda dapat melakukannya tmux new-session -t 0) untuk memulai sesi independen baru yang terhubung ke set windows yang sama, yang kemudian dapat memiliki tampilan sendiri.


1
Ini perbedaan yang menarik. Saya yakin masing-masing memiliki kelebihan, untuk berbagai kasus penggunaan. (Keuntungan tmux: dua orang yang terikat pada sesi tmux yang sama misalnya untuk pemrograman pasangan jarak jauh akan selalu melihat hal yang sama; keuntungan layar: satu orang yang terpasang pada layar yang sama dari dua tempat untuk dua tujuan yang berbeda dapat memiliki dua tampilan berbeda, bahkan secara bersamaan (dengan , katakanlah, windows berdampingan (OS / windowmanager-level)).)
lindes

10
jika sesi tmux asli Anda disebut "0" (default), maka Anda dapat melakukan "tmux new-session -t 0") untuk memulai sesi independen baru yang terhubung ke set windows yang sama, yang kemudian dapat memiliki sendiri melihat. Saya cukup yakin ini bekerja kembali di 1.2 / 1.3, tetapi saya tidak dapat mengingatnya begitu saja.
Karena

@ co, inilah tip yang saya cari. Terima kasih banyak. Saya berharap saya dapat memilih Anda dua kali :) Saya akan mulai memasang kembali dengan 'tmux new-session -t 0' setiap saat sekarang.
jrwren

@Cos Ini ditambahkan "FROM 1.0 TO 1.1, 05 November 2009". @ jrwren Perintah ini dapat disingkat tmux new -t 0.
user285259

24

tmux cukup baru dibandingkan dengan layar GNU. Keuntungan / Kerugian adalah pertanyaan yang sulit, karena kedua program menyelesaikan masalah yang kira-kira sama. tmux adalah lisensi BSD sedangkan layar adalah GNU GPL. Ini penting bagi sebagian orang.

layar lebih terwakili (di Linux) saat ini, yaitu, Anda lebih mungkin menemukannya di kotak linux yang diberikan daripada tmux. Namun tmux lebih terwakili di OpenBSD karena termasuk sebagai bagian dari instalasi dasar.

Kedua program memungkinkan Anda melakukan hal yang sama, meskipun keadaannya sedikit lebih rumit dari itu. Beralih di antara keduanya tidak terlalu rumit, karena banyak fungsi layar juga telah menemukan jalannya ke tmux, meskipun jika Anda adalah pengguna yang kuat, Anda mungkin akan menemukan beberapa frustrasi ketika beralih ke yang lain.

Seperti halnya program apa pun, itu benar-benar tergantung pada kebutuhan Anda, dan yang lebih nyaman bagi Anda. Cobalah keduanya dan lihat permainan yang Anda mainkan dengan baik.

Untuk info lebih lanjut tentang tmux, lihat https://tmux.github.io/


17

Perbedaan terbesar dalam penggunaan saya adalah bahwa di Layar Gnu Anda hanya dapat membagi bingkai secara horizontal, sedangkan di Tmux Anda dapat membagi secara horizontal dan vertikal. Ini adalah semacam target yang bergerak, meskipun seperti yang saya katakan di sini bahwa split vertikal membuat jalan ke layar .

Selain itu, semuanya tentang datar.


10
Anda dapat membelah secara vertikal di layar juga. mmm ... jangan sampai ia berfungsi di layar default Ubuntu 10.10.
Stann

4
@ dan ada patch yang sudah lama berdiri untuk split vertikal di layar ... yang tidak pernah dimasukkan ke dalam hulu ... tapi saya yakin banyak distro yang menerapkannya.
xenoterracide

17

Saya pikir saya hanya akan menyebutkan tentang byobupembungkus yang tersedia untuk layar yang membuatnya jauh lebih baik di luar kotak. Saya tidak tahu apakah sesuatu seperti ini tersedia untuk tmux, tetapi byobumembuat .screenrc saya hanya sedikit baris. Lihat artikel singkat ini tentang byobu dan tangkapan layar. Halaman proyek untuk byobu menjelaskan nama yang berasal dari istilah Jepang untuk layar multi-panel dekoratif yang berfungsi sebagai pembagi ruang lipat. Selain itu, menjalankannya tidak merusak pengaturan layar Anda, jadi Anda dapat mencobanya dengan aman. Setelah Anda memulai sesi dengan byobuAnda dapat dengan bebas menyambung kembali dengan menggunakan screendan masih tidak kehilangan kustomisasi yang dilakukan oleh byobu(jadi gunakan hanya untuk doa awal). Dua keuntungan utama itu adalah:

  • Mulai layar dengan beberapa bilah status dengan informasi yang berguna
  • Menyediakan banyak ikatan kunci untuk mengakses fungsi layar dengan lebih mudah

Saya tidak menggunakan bagian keybindings, tetapi pasti menemukan bilah status berguna.

Anda juga mungkin menemukan tautan Screen Vs tmux berguna. Saya pikir sebagian besar sudah disebutkan oleh jawaban yang ada.


Jawaban Anda akan lebih bermanfaat jika Anda merangkum fitur-fiturnya byobu, seperti jawaban ini dengan daftar fiturnya.
Gilles

OK, saya menambahkan informasi lebih lanjut tentang byobu, tetapi sesederhana menjalankan perintah dan menemukannya sendiri (itu didorong menu), karena itu tidak mengacaukan pengaturan layar yang ada. Dan saya membuat jawaban saya sebagai wiki komunitas, jadi silakan mengeditnya.
haridsv

1
byobu tampaknya benar-benar mendukung tmux juga, setidaknya dalam versi yang lebih baru.
Darael

12

Membasahi menimbulkan poin menarik - perilaku default menghubungkan dua kali ke sesi yang sama berbeda di tmux. Namun, jika Anda ingin melampirkan dua kali dan memiliki tampilan independen dari jendela di sesi itu - mulai tmux dengan

tmux new-session -t <session name>

Itu akan membuat sesi baru untuk Anda, dan melampirkan windows dari sesi yang sudah ada. Jika Anda tidak memberi nama sesi pertama Anda, Anda dapat menambahkannya dengan 'rename-session'.


12

Satu masalah besar screenadalah tidak dikembangkan secara aktif. The halaman bug harus dekat dengan 200 item yang belum ditetapkan akan kembali lebih dari 5 tahun.

tmux memiliki beberapa masalah terbuka juga, tetapi jauh lebih sedikit, dan lebih aktif didukung.


8

tmux lebih baru dan beberapa fitur lainnya.

Saya telah menemukan bahwa penggunaan yang baik tergantung pada pengaturan yang baik.

Saya menggunakan vi (vim) untuk mengedit (ruby on rails) dan ada beberapa hal pengaturan untuk membuatnya bekerja dengan baik.

Inilah file ~ / .tmux.conf saya dengan banyak pengaturan yang membantu:

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 lebih baru, tetapi 'beberapa fitur lebih' menyiratkan itu juga memiliki setidaknya paritas fitur dengan layar yang tidak terjadi - Selain apa yang disebutkan di tempat lain, dukungan multi-pengguna tmux sangat kurang. Tidak ada status atau status, dan hanya secara umum ini menunjukkan kebaruan tmux dalam apa yang dapat Anda lakukan tidak terlalu halus.
semi

Senang mendengarnya. Saya sekarang telah menggunakannya selama setahun dan tidak melihat adanya kebutuhan untuk cat kuku meskipun sedikit hungaria mungkin bisa membantu. Notasi itu. ok bad pun;) Belum pernah menggunakan layar sebelumnya jadi tidak memperhatikan masalah yang disebutkan. Akan lebih sulit untuk beralih ke layar dan kehilangan fitur baru sekarang.
Michael Durrant

8

Saya akan dengan bebas menambahkan satu perbedaan:

tmux berbasiskan ncurses sementara layar tidak menarik elemen tambahan. Jika seseorang menggunakan terminal emulator yang mendukung pengguliran, ia akan mendapatkan gulir dengan layar tetapi tidak dengan tmux (setidaknya dalam konfigurasi default). Hal yang sama berlaku untuk fitur pencarian dan serupa.


2
Saya belum pernah menggulir dengan layar seperti ... sebelumnya? : /
unperson325680

ya TE saya mendukung scrolling dan screen break it ... Saya harus scroll dengan screen. -1 tampaknya tidak akurat.
xenoterracide

@xenoterracide: Hmm. Anda sebagian benar. Layar pada beberapa distro / sistem (Gentoo lama) tidak merusaknya sementara pada beberapa (Ubuntu baru) tidak. Saya tidak tahu kenapa.
Maciej Piechotka

mungkin tambalan ... sistem kita semuanya 5,5 sen
xenoterracide

6

Saya kesulitan mendapatkan layar untuk mendukung utf-8 dan 256 warna tetapi tmux bekerja dengan baik.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.