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.
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.
Yanıtlar:
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.
<C-Left>
de vim
içinde tmux
.
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.
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;
tmux new -t 0
.
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.
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.
byobu
Kutudan çı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 byobu
kullanarak serbestçe yeniden bağlanabilir screen
ve yapılan özelleştirmeleri hala kaybedebilirsiniz byobu
(bu nedenle yalnızca ilk başlatma için kullanın). Bunun iki ana avantajı:
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.
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.
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.
Bunun için büyük bir aleyhte screen
aktif 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.
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"
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.