tmux vs. GNU Ekranı [kapalı]


194

Tmux ile ilgili bulduğum sorulara göz atarak (normalde GNU Screen'i kullandım). Benim sorum her birinin artıları ve eksileri. Özellikle tmux hakkında fazla bir şey bulamadım.



5
Aşağıdaki iyi cevaplardan da görebileceğiniz gibi görüşe dayalı değildir .
reinierpost

@reinierpost - buradaki çoğu insan soruları "öncelikle görüşe dayalı" olarak kapatmak için çok hızlı görünüyor. Ancak, yeniden açmak için oy kullanabiliriz.
MountainX

Her ne kadar bu soru bir karşılaştırma sorusu olsa da, yanlısı ve çelişkili tartışmaların yeterince objektif olduğunu düşünüyorum ve bu nedenle yakınlık düşüncesi burada tamam değil. Bağlantılı SU sorusunu kontrol edebilirsiniz, cevaplar oldukça iyi.
peterh

Yanıtlar:


122

Gönderen kendi web sitesinde :

  • Tmux'un GNU ekranından farkı nedir? Başka ne sunuyor?

tmux, ekrana göre birçok avantaj sunar:

  • açıkça tanımlanmış bir istemci-sunucu modeli: pencereler, aynı tmux sunucusundaki oturumlar arasında serbestçe hareket etmenin yanı sıra, birden fazla oturuma aynı anda bağlanabilen ve birden fazla istemciden (terminal) görüntülenen bağımsız varlıklardır;
  • etkileşimli olarak, anahtar bir bağlayıcı olarak veya kabuktan kullanıldığında, aynı sözdizimine sahip tutarlı, iyi belgelenmiş bir komut arabirimi;
  • kabuktan kolayca kodlanabilir;
  • çoklu hamur tamponları;
  • vi veya emacs anahtar düzenlerinin seçimi;
  • pencere boyutunu sınırlamak için bir seçenek;
  • belirli bir komutun ilk çıktı satırını görüntüleme yeteneğine sahip daha kullanışlı bir durum satırı sözdizimi;
  • daha temiz, modern, kolayca genişletilen, BSD lisanslı bir kod tabanı.

Hala birkaç özellik var ekran hala bu tmux ihmal içerir:

  • yerleşik seri ve telnet desteği; bu şişirilmiş ve tmux'a eklenmemiş olması muhtemel;
  • daha geniş platform desteği, örneğin IRIX ve HP-UX ve tek terminaller için.

4
kahretsin ... şimdi tmux'u denemek istiyorum ... çünkü ekran kilitlenmemesi yüzünden ekran benim için işe yaramadı.
xenoterracide

1
Vi veya emacs tuş takımlarının sadece tmux'un iki uygun varsayılan seti ile geldiği anlamına mı geliyor? Ekranın tuş bağlarını rc dosyası ile tamamen yeniden yapılandırmak mümkün.
jw013

İsteğe bağlı anahtar bağlantıları tanımlayabilirsiniz. Bakınız: openbsd.org/cgi-bin/…
nisc

Onlar uygulanması hakkında konuşmak, onlar nihayet ile aptal Çözmesi gereken <C-Left>de vimiçinde tmux.
yo'

45

Bir fark, ikisinin birden fazla terminal tek bir oturuma bağlandığında nasıl davrandığıdır.

Ekranda, her bir terminalin görünümü diğerlerinden bağımsızdır. Tmux ile tüm bağlı terminaller aynı şeyi görür.

Diyelim ki tek bir tmux oturumuna bağlı iki terminaliniz var. Bir ^Bterminale 1 yazarsanız , diğer terminal de 1. pencereye geçer.

Tek bir ekran oturumuna bağlı iki terminaliniz olduğunda ve ^Abir tanesine 1 yazdığınızda diğer terminal üzerinde bir etkisi olmaz.

Bu benim tmux 1.2 ile olan deneyimime dayanıyor; 1.3'ün çıktığını görüyorum ama bu davranış değişikliği ile ilgili değişiklikler konusunda hiçbir şey fark etmedim.

Ekran davranışını beğendiyseniz ve bunu tmux'da istiyorsanız:

Orijinal tmux oturumunuz 0(varsayılan) olarak adlandırılırsa tmux new-session -t 0, aynı pencereye bağlı yeni bir bağımsız oturum başlatmak için bunu yapabilirsiniz;


1
Bu ilginç bir ayrımdır. Bunların her birinin farklı kullanım durumları için avantajları olduğuna eminim. (tmux avantajı: örneğin uzak çift programlama için aynı tmux oturumuna bağlı iki kişi her zaman aynı şeyi görür; ekran avantajı: aynı ekrana iki yerden iki farklı amaç için eklenmiş bir kişi aynı anda iki farklı görüşe sahip olabilir (aynı anda) diyelim ki, yan-yana (OS / pencere yöneticisidir düzeyi) pencereler)).
Lindes

10
Orijinal tmux oturumunuz "0" olarak adlandırılıyorsa (varsayılan), aynı pencereye bağlı yeni bir bağımsız oturum başlatmak için "tmux new-session -t 0") komutunu kullanabilirsiniz. görünüm. Bunun 1.2 / 1.3'te tekrar çalıştığına eminim, ama önceden hatırlayamıyorum.
Çünkü

@ cos bu tam olarak aradığım ipucudur. Çok teşekkür ederim. Keşke size iki kez oy verebilsem :) Her seferinde 'tmux new-session -t 0' ile yeniden konuşmaya başlayacağım.
jrwren

@Cos Bu "FROM 1.0 TO 1.1, 05 Kasım 2009" eklenmiştir. @jrwren Komut kısa olabilir tmux new -t 0.
user285259,

24

tmux, GNU ekranıyla karşılaştırıldığında oldukça yeni. Avantajlar / Dezavantajlar zor bir sorudur, çünkü her iki program da aynı sorunu çözer. tmux BSD lisanslıdır, ekran GNU GPL'dir. Bu bazı insanlar için önemlidir.

ekran şu anda (Linux'ta) daha fazla gösteriliyor, yani, belirli bir linux kutusunda bulmak için tmux'dan daha muhtemel. Ancak tmux, temel kurulumun bir parçası olarak eklendiğinden OpenBSD'de daha fazla temsil edilmektedir.

Her iki program da aynı şeyi yapmanıza izin veriyor, ancak durumların durumu bundan biraz daha karmaşık. İkisi arasında geçiş yapmak aşırı derecede karmaşık değildir, çünkü ekran işlevlerinin çoğu tmux’un da yolunu bulmuştur, ancak ikisinin de güçlü bir kullanıcısıysanız, diğerine geçerken bazı sıkıntılar yaşayabilirsiniz.

Herhangi bir programda olduğu gibi, gerçekten ihtiyaçlarınız ve hangisiyle daha rahat olduğunuza bağlıdır. İkisine de bir şans verin ve hangisinin hoş oynadığını görün.

Tmux hakkında daha fazla bilgi için https://tmux.github.io/ adresini ziyaret edin.


17

Kullanımımdaki en büyük fark, Gnu Screen'de sadece kareleri yatay olarak böbilmeniz, Tmux'ta ise hem yatay hem de dikey olarak bölebilirsiniz. Bu tür hareketli bir hedef, burada dikey bölünmenin ekrana girdiğini söylediğim gibi .

Bundan sonra, işler düzdür.


10
Ekranda dikey olarak da bölebilirsiniz. mmm ... en azından varsayılan olarak Ubuntu 10.10 ekran kurulumunda çalışır.
Stann

4
@ve ekranda dikey bölünme için uzun süredir devam eden bir yama oldu ... hiç akışa dahil olmadı ... ama eminim ki birçok distro uyguladı.
xenoterracide 27.01.2016

17

byobuKutudan çıktığını çok daha iyi yapan ekran için mevcut olan sarıcıdan bahsedeceğimi düşündüm . Böyle bir şeyin tmux için uygun olup olmadığını bilmiyorum, ama byobu.screenrc'mi sadece bir avuç dolusu satır yaptım. Byobu ve ekran görüntüleri hakkında bu hızlı makaleye göz atın. Byobu proje sayfası , katlanabilir oda bölücüler olarak hizmet veren dekoratif, çok panelli ekranlar için kullanılan Japonca bir terimden gelen adı açıklar. Ayrıca, sadece çalıştırmak ekran ayarlarınıza zarar vermez, bu yüzden güvenle deneyebilirsiniz. Oturumu başlattıktan sonra byobukullanarak serbestçe yeniden bağlanabilir screenve yapılan özelleştirmeleri hala kaybedebilirsiniz byobu(bu nedenle yalnızca ilk başlatma için kullanın). Bunun iki ana avantajı:

  • Yararlı bilgiler içeren birkaç durum çubuğuyla ekranı başlatır
  • Ekranın işlevselliğine daha kolay erişmek için birçok anahtar bağlantı sağlar

Keybindings bölümünü kullanmıyorum, ancak durum çubuklarını kesinlikle faydalı buluyorum.

Ayrıca Ekran Vs tmux bağlantısını faydalı bulabilirsiniz . Bence çoğu zaman zaten mevcut cevaplar tarafından bahsedilir.


Özelliklerini özetlediyseniz, bu özellikler listesindeki cevaplarbyobu gibi cevabınız daha yararlı olacaktır .
Gilles,

Tamam, hakkında daha fazla bilgi ekledim byobu, ancak komutu çalıştırmak ve kendiniz bulmak kadar basit (menü yönlendirmeli) çünkü mevcut ekran ayarlarınızı bozmuyor. Ve cevabımı bir topluluk wiki yaptım, o yüzden düzenlemek için çekinmeyin.
haridsv

1
byobu, en azından daha yeni sürümlerde aslında tmux'u da desteklemektedir.
Darael,

12

Drench ilginç bir noktaya işaret ediyor - aynı oturuma iki kez bağlanmanın varsayılan davranışı tmux'ta farklı. Ancak, iki kez takmak ve o oturumdaki pencereleri bağımsız olarak görmek istiyorsanız -

tmux new-session -t <session name>

Bu sizin için yeni bir oturum oluşturur ve mevcut oturumdan pencereleri ekler. İlk oturumunuza isim vermediyseniz, 'rename-session' ile bir tane ekleyebilirsiniz.


12

Bunun için büyük bir aleyhte screenaktif olarak gelişmiş olmadığı. Hata sayfaları yakın 200 atanmamış öğeleri 5 yıl içinde geri dönüyor var.

tmux açık sorunları da var, ama çok daha az ve daha aktif olarak destekleniyor.


8

tmux daha yeni ve daha birçok özellik.

İyi kullanımın iyi kuruluma bağlı olduğunu buldum.

Düzenleme için vi (vim) kullanıyorum (raylar üzerinde yakut) ve bunun iyi çalışması için birkaç kurulum işlemi var.

İşte yararlı ayar çok ~ / .tmux.conf dosyam:

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 daha yeni, ancak 'daha fazla özellik', en azından durum olmayan ekrana sahip bir parite özelliğine de sahip olduğunu ima ediyor - Başka bir yerde belirtilenlere ek olarak, tmux'un çoklu kullanıcı desteği de oldukça eksik. Hiçbir işlem veya statü yok ve genel olarak tmux’un yeniliğini gösteriyor, yapabileceğiniz şeyin çok parlak olmadığını.
yarı

Bunu bilmek güzel. Şimdi bir yıldır kullanıyorum ve küçük bir macar yardımcı olsa da cilaya ihtiyaç duymadım. Gösterim. Tamam kötü pun;) Daha önce belirtilen kullanımları fark etmeden önce ekranı kullanmamıştım. Şimdi ekrana geçmek ve şimdi yeni özelliklerini kaybetmek daha zor bulur.
Michael Durrant,

8

Bir fark ekleme özgürlüğüne kavuşacağım:

tmux, ncurses tabanlı iken, ekran ek elemanlar çizmiyor. Birisi kaydırma (ları) destekleyen bir terminal emülatörü kullanıyorsa, ekranı kaydırmaya başlar ancak tmux ile kaydırmaz (en azından varsayılan yapılandırmada). Aynı şey arama ve benzer özellikler için de geçerlidir.


2
Hiç ekran görüntüsü ile kaydırma yapmadım mı? : /
souser12345 15:11

evet, TE'm kaydırmayı destekliyor ve ekranı kırar ... Ekranla kaydırmam gerekiyor. -1 doğru gibi görünmüyor.
xenoterracide 27.01.2016

@xoteroterracide: Hmm. Kısmen haklısın. Bazı dağıtımlar / sistemler (eski Gentoo) ekranları, bazılarında (yeni Ubuntu) kırılmıyor. Neden olduğuna dair hiçbir fikrim yok.
Maciej Piechotka

Muhtemelen bir yama ... bizim tüm 5.5 cent sistemler
xenoterracide

6

Utf-8 ve 256 renk desteği için ekran alma sorunları yaşadım ancak tmux kutudan çıktı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.