“screen -R” nin tmux eşdeğeri?


10

tmux attachKomut daha bir kombinasyonu gibi davranır screen -rve screen -x- ilk önce en son eklemek için trys müstakil oturumda ve hiçbiri kullanılabilir ardından eğer bir anda takılı oturuma ekleyecektir. Ben davranışı taklit etmek istiyorum screen -R: önce müstakil bir oturuma eklemek deneyin, daha sonra müstakil oturum olsaydı yeni bir oturum başlatmak. Bunu tmux'da başarmanın en iyi yolu nedir?

Yanıtlar:


12

IRC sihirbazlarına danıştıktan sonra, bu davranışa sahip tek bir tmux komutu olmadığından eminim. Neyse ki, kabuğu kullanarak taklit etmek oldukça kolaydır:

(tmux ls | grep -vq attached && tmux at) || tmux

Yeni bir oturum başlatmanız durumunda "sunucuya bağlanılamadı: Bağlantı reddedildi" çıktısını susturmak için küçük düzenleme:(tmux ls 2>/dev/null | grep -vq attached && tmux at) || tmux
— l8nite

3

Tmux kılavuzunda söylediklerine rağmen:

             The target-session rules for attach-session are slightly
         adjusted: if tmux needs to select the most recently used session,
         it will prefer the most recently used unattached session.

Drew'un yanıtı aşağıdaki gibi bir durumda düzgün çalışmaz:

0: 1 windows (created Wed Nov  7 23:51:08 2012) [177x47]
1: 1 windows (created Wed Nov  7 23:51:33 2012) [177x47] (attached)

tmux atson oturuma eklenecektir (# 1) (bu oturum hala başka bir yere bağlı olsa da). Bu, birkaç tmux oturumu çalıştırma ve sadece müstakil bir oturuma bağlanma fikrini mahveder (mükemmel bir dolaşım terminali oluşturmak için mosh + tmux + iterm2 kullanmak için).

Başka bir yaklaşım, ekli olmayan bir oturumu elle seçmek olacaktır:

tmux ls | grep -vq attached && tmux at `tmux ls | grep -vm1 attached | cut -d: -f1`


İyi yakalama! Belgeler gerçek davranışla senkronize değil. Bunun için bir hata raporu oluşturdum .
— Drew Frank

Bunu düzelten bir yama var, bu yüzden bir sonraki sürümde reklamı yapılan gibi davranmalıdır.
— Drew Frank

Yama 1.8 mi?
— momeara

2

Bir seferde sadece iki tmux oturumu yapma eğilimim var, bu yüzden her terminal penceresinde böyle bir şey yapıyorum.

terminal penceresi 0:

tmux attach -t 0 || tmux new

terminal penceresi 1:

tmux attach -t 1 || tmux new

2

Bu benim için en iyisini yaptı:

if [ -z "$TMUX" ]; then
     (tmux ls | grep -vq attached && tmux at -t `tmux ls | grep -vm1 attached | cut -d: -f1`) || tmux new
fi

-T doğru oturuma eklemek için gereklidir.


1

Ne dersin

tmux attach || tmux new

veya bunun yerine dosyayı ~/.tmux.confyoksa oluşturun ve ekleyin

new-session

çalıştırdığınızda hiçbir oturum olmadığında yeni bir oturum oluşturur tmux attach.

Ayrıca tmuxtakma ad oluşturmak da kullanışlı olabilir tmux attach.


İlk teklif, şu anda bağlı olan tmux oturumlarına (ekran -x'e benzer) eklenir, bu da kaçınmak istediğim bir şeydir. İkinci teklif bu aynı sorunu gösterir ve ayrıca yapılandırmayı yeniden yüklemek için tmux kaynak dosyası komutunu kullandığımda "ekstra" tmux oturumları oluşturma istenmeyen bir sonucu vardır.
— Drew Frank
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.