Bir tmux oturumu kendisinde zaten bir tmux'da nasıl bulunur?


118

Yerel makinemde bir tmux oturumu açtım ve uzaktaki makineye ssh yazdım. Bundan sonra uzaktaki makineye "tmux attach" komutunu yazdım, ardından yerel tmux oturumumda uzak bir tmux oturumu aldım.

Şimdi uzak tmux konuşmasını kaldırmak istiyorum, denedim

C-b d

fakat uzak olandan ziyade yerel tmux oturumumu ayırdım.

Uzak tmux değerlendirmesini nasıl kaldırabilirim?

Yanıtlar:


162
C-b C-b d

(varsayılan bağlama kabul edilirse)

İlk Cb , yerel smokininiz tarafından yorumlanır (çünkü tüm tuş vuruşlarınızı ilk gören sizsiniz). İkinci Cb , yerel tmux'unuzun aktif bölmesine bir Cb göndermesine neden olan bir komuttur ; Bu üretilen Cb uzak tmux'a ulaşır . D yerel geçer tmux değişmez; uzak tmux'a ulaştığında detachkomutu tetikler .

  1. Yazdığınız Cb .
    Yerel tmux'unuz onu önek anahtarı olarak yorumlar; hiçbir şey yerel altında çalışan süreçlere gönderilir tmux .
  2. Yazdığınız Cb .
    Yerel tmux'unuzsend-prefix komuta bağlı .
    1. Yerel tmux'unuz aktif bölmede ( ssh ) çalışan işleme bir Cb gönderir .
    2. ssh , uzak uçtaki (uzak tmux ) çalışan işleme ( sshd vb. yoluyla) iletir . Remote tmux'unuz onu önek anahtarı olarak yorumlar; uzak tmux altında çalışan işlemlere hiçbir şey gönderilmez .
  3. Yazdığınız d .
    Yerel tmux'unuz normal olarak geçer (ikinci Cb yerel tmux için tam bir komut tuşu sırasını tamamladığından ).
    Remote tmux'unuz buna bağlı detach-client; aktif müşteriyi ayırır.

Bu, tmux oturumu içinde çalışan herhangi bir programa bir Cb göndermeniz gerektiğinde aynıdır . Cb'yi normal kabuğunuza göndermek istiyorsanız (örneğin, kabuğunuzun Cb olduğu yerde Emacs tarzı düzenleme kullandığından (ve ok tuşlarını kullanmaktan hoşlanmadığınızdan dolayı)) , kabuğa tek bir Cb almak için Cb Cb kullanmanız gerekir .backward-char


8
Alternatif olarak, C-a C-ason etkin pencereye atlamak için sık kullandım . Bu şartlar altında kopmaya çalışın C-a a d. Teşekkürler!
mkelley33

2
Not : Yukarıda bahsettiğim birleşik giriş, yalnızca kullanıcının tmux.conf ayerine anahtarın bağlanması durumunda kullanılabilir b.
mkelley33

Benim dış tmux kullanır C-ave iç biri C-bve benim için çalışıyor tek şey iç birinden ayırmak mümkün C-a C-b-b d, ama ikinci ihtiyacım var neden alamadımb
Guillem CUCURULL

Yalnızca varsayılan tuş bağlantıları yoksa, milletlerin bu seçeneği etkinleştirmelerine izin vermek için bir hatırlatıcı: :etkileşimli olarak bir tmux komutu çalıştırmak için komutu çalıştırabilir ve ardından bind-key -n j send-prefixkomut aracılığıyla bir ciltleme ayarlayabilirsiniz . Bu örnekte jönek göndermek için ciltlemek istedim . Aksi takdirde, Dave'in cevabını kullanın: tmux detachkomutu kullanın.
nealmcb

46

Bunu doğru tmux örneğine dönüştüren tuş bağları hakkında endişelenmeden yapmanın başka bir yolu tmux detachda uzak tmux oturumunu yazmaktır.


8

İlk cevabı başarı olmadan denedim.

Aşağıdakileri yaparak istediğim sonuçları elde edebildim:

tmux attach

Tmux’a girdim ve diğer oturumun hala bağlı olduğunu gördüm.

Bu yüzden şu anki oturumumu bir kabuğa geri dönmek için ayırdım: Ctrl + b; d

Sonra aşağıdakileri yayımladım: tmux attach -d

Bu, varsayılan oturuma ekleneceğini ve şu anda bağlı olan diğer tüm oturumların bağlantısını keseceğini söylüyor. Müşteriler ve Oturumlar altındaki man sayfasına bakın

attach-session [-dr] [-t target-session] (takma ad: attach) Dış tmux dışından çalıştırılıyorsa, geçerli terminalde yeni bir istemci oluşturun ve bunu hedef oturuma ekleyin. İçeriden kullanılıyorsa, mevcut istemciyi değiştirin. -D belirtilirse, oturuma eklenmiş diğer istemciler ayrılır. -r, istemcinin salt okunur olduğunu belirtir (yalnızca detach-client komutuna bağlı anahtarların herhangi bir etkisi vardır)


0

Başka bir seçenek denemek istiyorsanız aşağıdaki adımları izleyin

  1. Şu anki tmux oturumunu ayır Ctrl+b d. Böylece normal terminal komut satırı istemine geçersiniz.
  2. Bir tmux ls. Şu anda bağlı olan oturumu ara
  3. Eklenmiş oturumu ayırmak için bu komutu yürütün tmux detach-client -s <attached_session_name>
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.