انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

دليل Tmux وScreen: إدارة جلسات SSH

إدارة جلسات SSH باستخدام Tmux وGNU Screen. التثبيت وإدارة النوافذ والأجزاء وفصل/إعادة الاتصال واستمرارية الجلسات والمقارنة.

وقت القراءة: 12 دقيقة إدارة الخادم
tmuxscreensshإدارة الجلساتterminallinuxمضاعف طرفية

جدول المحتويات

دليل Tmux وScreen: إدارة جلسات SSH

من أكبر التحديات عند العمل على الخوادم البعيدة هو انقطاع اتصال SSH. عند انقطاع الاتصال، تنتهي العمليات الجارية. Tmux وGNU Screen هما مضاعفا طرفية يحلان هذه المشكلة. يغطي هذا الدليل كلا الأداتين ويشرح متى تستخدم كل منهما.

لماذا تستخدم Tmux أو Screen؟

عند انقطاع جلسة SSH:

  • تتوقف عمليات البناء الجارية
  • تنقطع التنزيلات
  • تنتهي السكريبتات طويلة التشغيل
  • تُغلق محررات النصوص المفتوحة

يحافظ Tmux وScreen على الجلسات من جانب الخادم. حتى لو انقطع اتصالك، تستمر العمليات في العمل في الخلفية. عند إعادة الاتصال، تستأنف من حيث توقفت.

Tmux هو الأداة الأحدث والمطورة بنشاط. Screen أقدم وغالباً مثبت مسبقاً. معرفة كلتيهما مفيدة.

تثبيت Tmux

Ubuntu/Debian

hljs bash
sudo apt update
sudo apt install tmux -y

# التحقق من الإصدار
tmux -V

CentOS/AlmaLinux/RHEL

hljs bash
sudo dnf install tmux -y
# أو على الأنظمة القديمة
sudo yum install tmux -y

الاستخدام الأساسي لـ Tmux

إدارة الجلسات

hljs bash
# بدء جلسة جديدة
tmux

# بدء جلسة مسماة
tmux new-session -s myproject
# أو اختصاراً
tmux new -s myproject

# الفصل عن الجلسة (detach) — العمليات تستمر
# Ctrl+b ثم d

# سرد الجلسات الموجودة
tmux list-sessions
# أو اختصاراً
tmux ls

# إعادة الاتصال بجلسة (attach)
tmux attach-session -t myproject
# أو اختصاراً
tmux attach -t myproject

# الاتصال بآخر جلسة
tmux attach

# إنهاء جلسة
tmux kill-session -t myproject

# إنهاء جميع الجلسات
tmux kill-server

مفتاح البادئة في Tmux

جميع أوامر tmux تبدأ بمفتاح بادئة. البادئة الافتراضية: Ctrl+b

بعد إرسال البادئة، اضغط مفتاح الأمر:

الأمرالوصف
Ctrl+b dالفصل عن الجلسة
Ctrl+b cإنشاء نافذة جديدة
Ctrl+b nالنافذة التالية
Ctrl+b pالنافذة السابقة
Ctrl+b 0-9التبديل إلى نافذة برقمها
Ctrl+b ,إعادة تسمية النافذة
Ctrl+b &إغلاق النافذة الحالية
Ctrl+b %تقسيم عمودي (يميناً)
Ctrl+b "تقسيم أفقي (أسفل)
Ctrl+b أسهمالتنقل بين الأجزاء
Ctrl+b zتبديل ملء الشاشة للجزء
Ctrl+b [وضع التمرير
Ctrl+b ?المساعدة

إدارة النوافذ

hljs bash
# إنشاء نافذة جديدة داخل tmux
# Ctrl+b ثم c

# سرد النوافذ
# Ctrl+b ثم w

# إعادة تسمية النافذة
# Ctrl+b ثم ,

# إغلاق النافذة
# Ctrl+b ثم &

إدارة الأجزاء (Panes)

تتيح الأجزاء تقسيم نافذة واحدة إلى عدة طرفيات.

hljs bash
# تقسيم عمودي (جنباً إلى جنب)
# Ctrl+b ثم %

# تقسيم أفقي (أعلى/أسفل)
# Ctrl+b ثم "

# التنقل بين الأجزاء
# Ctrl+b ثم الأسهم

# تبديل ملء الشاشة للجزء
# Ctrl+b ثم z

# إغلاق الجزء
# Ctrl+b ثم x

# تغيير حجم الجزء
# Ctrl+b ثم Ctrl+الأسهم

إعداد Tmux

أنشئ ~/.tmux.conf للتخصيص:

hljs bash
nano ~/.tmux.conf
hljs bash
# تغيير البادئة إلى Ctrl+a (مثل Screen)
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# تفعيل دعم الفأرة
set -g mouse on

# بدء ترقيم النوافذ من 1
set -g base-index 1
setw -g pane-base-index 1

# تخصيص شريط الحالة
set -g status-bg colour235
set -g status-fg white
set -g status-left '[#S] '
set -g status-right '%H:%M %d-%b-%y'

# زيادة حد السجل
set -g history-limit 10000
hljs bash
# إعادة تحميل الإعداد
tmux source-file ~/.tmux.conf

استخدام GNU Screen

Screen أقدم من tmux لكنه غالباً مثبت مسبقاً على كثير من الأنظمة.

تثبيت Screen

hljs bash
# Ubuntu/Debian
sudo apt install screen -y

# CentOS/AlmaLinux
sudo dnf install screen -y

أوامر Screen الأساسية

hljs bash
# بدء جلسة جديدة
screen

# بدء جلسة مسماة
screen -S myproject

# الفصل عن الجلسة
# Ctrl+a ثم d

# سرد الجلسات
screen -ls

# إعادة الاتصال بجلسة
screen -r myproject

# الاتصال بالمعرف عند وجود جلسات متعددة
screen -r 12345.myproject

# إنهاء جلسة
screen -X -S myproject quit

اختصارات Screen

مفتاح بادئة Screen هو Ctrl+a:

الأمرالوصف
Ctrl+a dالفصل عن الجلسة
Ctrl+a cإنشاء نافذة جديدة
Ctrl+a nالنافذة التالية
Ctrl+a pالنافذة السابقة
Ctrl+a "قائمة النوافذ
Ctrl+a Aإعادة تسمية النافذة
Ctrl+a Sتقسيم أفقي
`Ctrl+a`
Ctrl+a Tabالتبديل بين الأجزاء
Ctrl+a [وضع التمرير
Ctrl+a ?المساعدة

مقارنة Tmux وScreen

الميزةTmuxScreen
تطوير نشطنعملا
تقسيم عمودينعمنعم (إصدارات أحدث)
دعم الفأرةنعممحدود
الإعدادقويأساسي
مثبت مسبقاًلاغالباً نعم
منحنى التعلممتوسطمنخفض
دعم السكريبتممتازجيد

حالات الاستخدام العملية

العمليات طويلة التشغيل

hljs bash
# بدء جلسة جديدة
tmux new -s build

# تشغيل أمر طويل
make all

# الفصل — العملية تستمر
# Ctrl+b d

# التحقق لاحقاً
tmux attach -t build

مراقبة الخادم في أجزاء متعددة

hljs bash
# بدء الجلسة
tmux new -s monitoring

# تقسيم عمودي
# Ctrl+b %

# مراقبة CPU في الجزء الأيسر
htop

# التبديل إلى الجزء الأيمن (Ctrl+b السهم الأيمن)
# مراقبة I/O القرص
iostat -x 2

استخدم الاتصال التلقائي بحذر. قد يتعارض مع أتمتة SSH المستندة إلى المفاتيح على بعض الأنظمة.

وسّع tmux باستخدام Tmux Plugin Manager (TPM). يحافظ ملحق tmux-resurrect على الجلسات حتى بعد إعادة تشغيل النظام.

الخلاصة

Tmux وScreen أدوات أساسية لإدارة الخوادم البعيدة. عند تشغيل عمليات طويلة أو مهام بناء أو أوامر مراقبة مستمرة على خوادم REXE، تضمن هذه الأدوات سلامة عملك حتى عند انقطاع اتصال SSH. Screen نقطة بداية أبسط للمبتدئين، لكن مرونة Tmux وميزاته تجعله الخيار الأفضل على المدى البعيد.