سؤال كيفية فصل جلسة tmux نفسها بالفعل في tmux؟


لقد فتحت جلسة tmux على الجهاز المحلي ، و ssh إلى الجهاز البعيد. بعد ذلك ، كتبت أمر "tmux attach" على الجهاز البعيد ، ثم حصلت على جلسة tmux عن بعد في جلسة tmux المحلية الخاصة بي.

الآن أريد فصل جهاز التحكم عن بعد tmux sesstion ، لقد حاولت

C-b d

لكنها فصلت جلسة tmux المحلية الخاصة بي بدلاً من الجلسة النائية.

كيف يمكنني فصل جهاز التحكم عن بعد tmux؟


82
2018-02-24 03:10


الأصل




الأجوبة:


C-b C-b d

(على افتراض الارتباطات الافتراضية)

الأول C-ب يتم تفسيره من قبل المحلية الخاصة بك tmux (لأنه أول من يرى جميع ضغطات المفاتيح). الثاني C-ب هو الأمر الذي يسبب tmux المحلي الخاص بك لإرسال C-ب إلى جزء نشط. هذا ولدت C-ب يصل إلى جهاز التحكم عن بعد tmux. ال د يمر عبر المحلية tmux دون تغيير؛ عندما يصل إلى جهاز التحكم عن بعد tmux يطلق عليه detach أمر.

  1. أنت تكتب C-ب.
    المحلية الخاصة بك tmux يفسر ذلك كمفتاح بادئة؛ يتم إرسال أي شيء إلى العمليات التي تعمل تحت المحلية tmux.
  2. أنت تكتب C-ب.
    المحلية الخاصة بك tmux وقد ملزمة لل send-prefix أمر.
    1. المحلية الخاصة بك tmux يرسل C-ب إلى العملية التي تعمل في الجزء النشط (سه).
    2. سه إلى الأمام (من خلال سشد، إلخ) إلى العملية التي تعمل على النهاية البعيدة (عن بعد tmux).
      جهاز التحكم عن بعد tmux يفسر ذلك كمفتاح بادئة؛ يتم إرسال أي شيء إلى العمليات التي تعمل تحت جهاز التحكم عن بعد tmux.
  3. أنت تكتب د.
    المحلية الخاصة بك tmux يمر من خلال عادة (منذ الثانية C-ب الانتهاء من تسلسل مفتاح الأوامر الكاملة المحلية tmux).
    جهاز التحكم عن بعد tmux وقد ملزمة ل detach-client. يفصل العميل النشط.

هذا هو نفسه عندما تحتاج إلى إرسال C-ب لأي برنامج يعمل داخل tmux جلسة. إذا كنت تريد أن ترسل C-ب إلى صدرك العادي (على سبيل المثال ، لأن صدقتك تستخدم أسلوب تحرير Emacs حيث C-ب هو backward-char (وتكره استخدام مفاتيح الأسهم)) تحتاج إلى استخدام C-ب  C-ب للحصول على واحدة C-ب إلى القشرة.


124
2018-02-24 04:21



بدلا من ذلك ، لقد رأيت كثيرا استخدام C-a C-a للانتقال إلى آخر نافذة نشطة. في ظل هذه الظروف حاول C-a a d ليفصل. شكر! - mkelley33
ملحوظة: السرد أذكر أعلاه لن تكون متاحة إلا إذا كان a مفتاح ملزمة بدلا من b في tmux.conf المستخدم. - mkelley33
يستخدم بلدي tmux الخارجي C-a والداخلي C-bولكي أتمكن من الانفصال عن الداخلي ، فإن الشيء الوحيد الذي يعمل بالنسبة لي هو C-a C-b-b dلكن لا أعرف لماذا أحتاج إلى الثاني b - gcucurull


طريقة أخرى للقيام بذلك دون الحاجة إلى القلق حول keybindings مما يجعلها إلى مثيل tmux الصحيح هو الكتابة tmux detach في جلسة tmux عن بعد.


38
2017-09-24 12:00





جربت الإجابة الأولى دون نجاح.

تمكنت من الحصول على النتائج التي كنت أرغب فيها عن طريق القيام بما يلي:

tmux attach

دخلت tmux ورأيت الجلسة الأخرى لا تزال تعلق

لذا فصلت جلستي الحالية للعودة إلى قشرة: Ctrl + b; d

ثم أصدرت ما يلي: tmux attach -d 

هذا يقول لإرفاق الجلسة الافتراضية ، وفصل جميع الدورات الأخرى المرفقة حاليا. انظر صفحة الرجل تحت العملاء والجلسات

إرفاق الدورة [-dr] [-t target-session]                   (الاسم المستعار: attach)   في حالة التشغيل من خارج tmux ، قم بإنشاء عميل جديد في الجهاز الحالي وقم بإرفاقه   استهداف الدورة. إذا تم استخدامها من الداخل ، قم بتبديل العميل الحالي. إذا تم تحديد -d ، أي دولة أخرى   العملاء المنفصلين عن الجلسة منفصلين.  -r يدل على العميل للقراءة فقط (فقط مفاتيح ملزمة   لأمر فصل العميل يكون لها أي تأثير)


4
2018-01-21 16:43





إذا كنت تريد تجربة خيار آخر ، فاتبع الخطوات التالية

  1. فصل جلسة tmux الحالية مع Ctrl+b d . بحيث يمكنك الآن الذهاب إلى سطر الأوامر محطة طرفية طبيعية.
  2. افعل tmux ls . ابحث عن الجلسة المرفقة حاليًا
  3. تنفيذ هذا الأمر لفصل جلسة المرفقة بالفعل tmux detach-client -s <attached_session_name>

0
2018-03-12 06:28