كيفية تثبيت واستخدام tmux على أوبونتو: دليل كامل 2025
المقدمة
tmux (Terminal Multiplexer) هو أداة قوية سطر الأوامر تعزز تجربتك في الطرفية على أوبونتو وأنظمة يونكس الأخرى. يتيح لك إنشاء جلسات طرفية متعددة داخل نافذة واحدة، مما يجعله أداة لا تقدر بثمن للمطورين ومديري النظام والمستخدمين المتقدمين.
ما هو tmux؟
tmux هو مضاعف طرفية يمكّنك من:
- إنشاء جلسات طرفية متعددة داخل نافذة واحدة
- الحفاظ على تشغيل البرامج حتى بعد قطع الاتصال بـ SSH
- تقسيم نافذة الطرفية إلى عدة أقسام
- التبديل بين جلسات الطرفية المختلفة بسلاسة
- مشاركة جلسات الطرفية مع مستخدمين آخرين
فوائد استخدام tmux
عند العمل على خوادم أوبونتو أو الآلات المحلية، يقدم tmux عدة مزايا جذابة:
-
الجلسات المستمرة: تستمر أعمالك في التشغيل حتى إذا انقطع اتصال SSH أو أغلقت الطرفية عن طريق الخطأ. ببساطة أعد الاتصال بجلستك، وسيكون كل شيء كما تركته بالضبط.
-
زيادة الإنتاجية: العمل مع نوافذ طرفية متعددة في نفس الوقت دون فوضى على سطح المكتب. يمكنك بسهولة التبديل بين المهام المختلفة مع الحفاظ على نظرة واضحة على عملك.
-
تعزيز التعاون: شارك جلسات الطرفية الخاصة بك مع أعضاء الفريق، مما يجعلها مثالية للبرمجة الزوجية أو استكشاف الأخطاء معًا.
متطلبات النظام
قبل تثبيت tmux على أوبونتو، تأكد من أن نظامك يلبي هذه المتطلبات الدنيا:
- أوبونتو 18.04 LTS أو أحدث
- معرفة أساسية بالطرفية
- صلاحيات كافية للنظام (وصول sudo) للتثبيت
- على الأقل 50 ميغابايت من مساحة القرص الحرة
طرق التثبيت
هناك طريقتان رئيسيتان لتثبيت tmux على أوبونتو: استخدام مدير الحزم apt أو البناء من المصدر. دعنا نستكشف كلا الخيارين بالتفصيل.
استخدام مدير الحزم apt
أسهل وأفضل طريقة لتثبيت tmux هي من خلال مدير الحزم apt في أوبونتو. إليك كيفية القيام بذلك:
# تحديث قائمة الحزم
sudo apt update
# تثبيت tmux
sudo apt install tmux -y
# التحقق من التثبيت
tmux -V
تتعامل هذه الطريقة تلقائيًا مع التبعيات وتوفر إصدارًا مستقرًا من tmux تم اختباره مع إصدار أوبونتو الخاص بك.
البناء من المصدر
بالنسبة للمستخدمين الذين يحتاجون إلى أحدث الميزات أو إصدارات محددة، فإن البناء من المصدر هو خيار:
# تثبيت التبعيات المطلوبة
sudo apt install git automake build-essential libevent-dev ncurses-dev
# استنساخ الشيفرة المصدرية
git clone https://github.com/tmux/tmux.git
cd tmux
# البناء والتثبيت
sh autogen.sh
./configure
make
sudo make install
مقارنة الإصدارات
دعنا نقارن طرق التثبيت المختلفة:
-
تثبيت APT:
- الإيجابيات: سهل التثبيت والترقية، إصدار مستقر، إدارة تلقائية للتبعيات
- السلبيات: قد لا يكون أحدث إصدار
- الإصدار الحالي في مستودعات أوبونتو: عادةً 1-2 إصدار خلف الأحدث
-
تثبيت المصدر:
- الإيجابيات: الوصول إلى أحدث الميزات، القدرة على تخصيص التجميع
- السلبيات: يتطلب إدارة يدوية للتبعيات، عملية تثبيت أكثر تعقيدًا
- أحدث إصدار متاح: دائمًا محدث مع المستودع الرسمي
بعد التثبيت، يمكنك التحقق من إصدار tmux الخاص بك عن طريق تشغيل:
tmux -V
التكوين الأساسي
يمكن تخصيص سلوك tmux من خلال ملف التكوين الخاص به وإعدادات متنوعة. دعنا نستكشف كيفية إعداد وتخصيص tmux ليناسب احتياجاتك.
موقع ملف التكوين
يبحث tmux عن ملف التكوين الخاص به في دليل منزلك:
# إنشاء ملف تكوين tmux الخاص بك
touch ~/.tmux.conf
# فتحه باستخدام محرر النصوص المفضل لديك
nano ~/.tmux.conf
التكوينات الأساسية
إليك بعض التكوينات الشائعة الاستخدام لتعزيز تجربتك مع tmux:
# تغيير مفتاح البادئة إلى Ctrl+a (أكثر ملاءمة من Ctrl+b الافتراضي)
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# تمكين دعم الماوس
set -g mouse on
# بدء ترقيم النوافذ من 1 (بدلاً من 0)
set -g base-index 1
# تعيين مفاتيح تقسيم النوافذ بشكل أسهل
bind-key v split-window -h
bind-key h split-window -v
# تعيين مفاتيح حركة النوافذ بشكل أسهل
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# تحسين الألوان
set -g default-terminal "screen-256color"
# تعيين حجم ذاكرة التخزين المؤقت للتراجع
set -g history-limit 10000
تخصيص اختصارات المفاتيح
يمكنك تخصيص اختصارات المفاتيح لجعل tmux أكثر بديهية وكفاءة لعملك:
-
بنية اختصار مفتاح أساسية:
bind-key key command bind key command
-
اختصارات مخصصة شائعة:
# إعادة تحميل ملف التكوين bind r source-file ~/.tmux.conf \; display "تم إعادة تحميل التكوين!" # التبديل السريع بين الأقسام unbind ^A bind ^A select-pane -t :.+ # أوامر تقسيم أكثر بديهية bind | split-window -h bind - split-window -v
بعد إجراء تغييرات على ملف التكوين الخاص بك، يمكنك إما:
- إعادة تشغيل tmux لتصبح التغييرات سارية المفعول
- أو إعادة تحميل التكوين أثناء تشغيل tmux بالضغط على
prefix
+r
(إذا كنت قد أضفت اختصار إعادة التحميل أعلاه)
البدء مع tmux
بعد التثبيت والتكوين الأساسي، دعنا نتعلم كيفية استخدام tmux بفعالية. تغطي هذه القسم الأوامر والعمليات الأساسية التي ستحتاجها للاستخدام اليومي.
بدء جلستك الأولى
إليك الأوامر الأساسية لبدء وإدارة جلسات tmux:
# بدء جلسة جديدة
tmux
# بدء جلسة جديدة مسماة
tmux new -s mysession
# قائمة بجميع الجلسات
tmux ls
# الاتصال بجلسة موجودة
tmux attach -t mysession
# فصل الجلسة الحالية (داخل tmux)
# اضغط على مفتاح البادئة (Ctrl+b أو Ctrl+a) ثم d
الأوامر والاختصارات الأساسية
تبدأ جميع أوامر tmux بمفتاح بادئة (افتراضي: Ctrl+b). إليك الاختصارات الأساسية:
# إدارة الجلسات
prefix + d # فصل من الجلسة
prefix + s # قائمة الجلسات
prefix + $ # إعادة تسمية الجلسة الحالية
# إدارة النوافذ
prefix + c # إنشاء نافذة جديدة
prefix + n # الانتقال إلى النافذة التالية
prefix + p # الانتقال إلى النافذة السابقة
prefix + , # إعادة تسمية النافذة الحالية
prefix + w # قائمة النوافذ
# عمليات الأقسام
prefix + % # تقسيم القسم عموديًا
prefix + " # تقسيم القسم أفقيًا
prefix + o # التبديل إلى القسم التالي
prefix + x # إغلاق القسم الحالي
إدارة الجلسات
تعتبر الجلسات أعلى مستوى من التنظيم في tmux. إليك كيفية إدارتها بفعالية:
-
إنشاء الجلسات:
# إنشاء جلسة جديدة باسم محدد tmux new -s development # إنشاء جلسة جديدة مع دليل عمل محدد tmux new -s project -c ~/projects/myproject
-
إدارة جلسات متعددة:
# التبديل بين الجلسات tmux switch -t session_name # قتل جلسة محددة tmux kill-session -t session_name # قتل جميع الجلسات باستثناء الجلسة الحالية tmux kill-session -a
-
تنقل الجلسات:
- استخدم
prefix + (
للانتقال إلى الجلسة السابقة - استخدم
prefix + )
للانتقال إلى الجلسة التالية - استخدم
prefix + s
لعرض قائمة الجلسات واختيارها تفاعليًا
- استخدم
الميزات المتقدمة
يوفر tmux ميزات قوية للمستخدمين المتقدمين التي يمكن أن تعزز الإنتاجية بشكل كبير. دعنا نستكشف بعض هذه القدرات المتقدمة.
إدارة النوافذ
تعمل النوافذ في tmux بشكل مشابه للتبويبات في طرفية حديثة. إليك بعض العمليات المتقدمة للنوافذ:
# أوامر نافذة متقدمة
prefix + . # نقل النافذة إلى رقم مختلف
prefix + f # البحث عن نافذة بالاسم
prefix + & # قتل النافذة
prefix + 0-9 # التبديل إلى النافذة حسب الرقم
# تبديل مواقع النوافذ
swap-window -s 2 -t 1 # تبديل النوافذ 2 و 1
swap-window -t -1 # نقل النافذة الحالية إلى اليسار
عمليات الأقسام
تتيح لك الأقسام تقسيم نافذتك إلى عدة أقسام. إليك تقنيات إدارة الأقسام المتقدمة:
-
تغيير حجم الأقسام:
# باستخدام البادئة متبوعة بـ: Alt + مفاتيح الأسهم # تغيير حجم القسم في اتجاه السهم # أو امسك البادئة واضغط على: Ctrl + مفاتيح الأسهم # تغيير حجم القسم بزيادات أكبر
-
التنقل المتقدم بين الأقسام:
prefix + { # نقل القسم الحالي إلى اليسار prefix + } # نقل القسم الحالي إلى اليمين prefix + z # تبديل تكبير القسم (تكبير/استعادة) prefix + ! # تحويل القسم إلى نافذة
-
تزامن الأقسام:
# تبديل تزامن الأقسام (إرسال الأوامر إلى جميع الأقسام) :setw synchronize-panes
وضع النسخ والتمرير
يتيح لك وضع النسخ التمرير والبحث ونسخ النص:
-
الدخول والتنقل في وضع النسخ:
prefix + [ # الدخول إلى وضع النسخ q # الخروج من وضع النسخ Space # بدء التحديد Enter # نسخ التحديد # التنقل في وضع النسخ: مفاتيح الأسهم # تحريك المؤشر Page Up/Down # التمرير لأعلى/أسفل g # الانتقال إلى الأعلى G # الانتقال إلى الأسفل / # البحث للأمام ? # البحث للخلف n # المطابقة التالية للبحث N # المطابقة السابقة للبحث
-
عمليات النسخ المتقدمة:
# تمكين وضع vi لعمليات نسخ أفضل set-window-option -g mode-keys vi # اختصارات مخصصة لوضع النسخ bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi y send-keys -X copy-selection
-
التكامل مع الحافظة النظامية:
# على أوبونتو، قم بتثبيت xclip أولاً: sudo apt install xclip # أضف إلى .tmux.conf: bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -sel clip -i"
يمكن دمج هذه الميزات المتقدمة لإنشاء سير عمل قوي. على سبيل المثال، يمكنك:
- إعداد عدة أقسام لمراقبة خدمات مختلفة
- استخدام الأقسام المتزامنة لتنفيذ الأوامر على عدة خوادم في نفس الوقت
- إنشاء تخطيطات نوافذ معقدة لمهام تطوير مختلفة
- إعداد النسخ الاحتياطي التلقائي لجلسات tmux
أفضل الممارسات
يمكن أن يؤدي اعتماد ممارسات جيدة مع tmux إلى تحسين سير العمل والإنتاجية بشكل كبير. دعنا نستكشف بعض الاقتراحات والنصائح الموصى بها.
سير العمل الشائعة
-
إعداد بيئة التطوير:
# إنشاء جلسة جديدة للتطوير tmux new -s dev # تخطيط تطوير شائع # تقسيم النافذة للتحرير والطرفية tmux split-window -v -p 30 # 70% محرر، 30% طرفية # تقسيم إضافي لتشغيل الاختبارات/الخوادم tmux split-window -h # تقسيم قسم الطرفية أفقيًا
-
إعداد مراقبة الخادم:
# إنشاء جلسة مراقبة tmux new -s monitoring # تقسيم لمهام المراقبة المختلفة tmux split-window -h # تقسيم لمراقبة النظام tmux split-window -v # تقسيم للسجلات # تشغيل أوامر المراقبة # القسم الأول: htop # القسم الثاني: tail -f /var/log/syslog # القسم الثالث: مراقبة الشبكة
نصائح الإنتاجية
-
تنظيم الجلسات:
- استخدم أسماء وصفية للجلسات (مثل
client1
،backend
،docs
) - احتفظ بالمهام ذات الصلة في نفس الجلسة ولكن في نوافذ مختلفة
- استخدم اتفاقيات تسمية نوافذ متسقة
- تنظيف الجلسات بانتظام لتحسين الإدارة
- استخدم أسماء وصفية للجلسات (مثل
-
تحسين الأداء:
# أضف إلى .tmux.conf # تقليل تأخير الهروب set -sg escape-time 0 # زيادة الاستجابة set -g status-interval 1 # تحديد تاريخ الجلسة لتجنب مشاكل الذاكرة set -g history-limit 50000
-
برامج إعداد تلقائية:
#!/bin/bash # احفظ كـ dev-setup.sh # إنشاء جلسة جديدة في حالة مفصولة tmux new-session -d -s development # إعداد النوافذ والأقسام tmux rename-window -t development:1 'editor' tmux send-keys -t development:1 'vim' C-m tmux new-window -t development:2 -n 'server' tmux send-keys -t development:2 'npm run dev' C-m # الاتصال بالجلسة tmux attach -t development
التكامل مع أدوات أخرى
-
تكامل التحكم في الإصدارات:
- إنشاء نوافذ مخصصة لعمليات git
- استخدام تزامن الأقسام لإدارة مستودعات متعددة
- إعداد التحقق التلقائي من الحالة
-
أفضل ممارسات مضاعف الطرفية:
# أضف إلى .bashrc أو .zshrc # الاتصال التلقائي بجلسة tmux عند SSH if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux fi
-
التطوير عن بُعد:
- استخدام جلسات tmux المتداخلة للعمل المحلي/عن بُعد
- تعيين ألوان شريط الحالة المختلفة للجلسات المحلية/عن بُعد
- تكوين مفاتيح بادئة مختلفة للجلسات المتداخلة
# للجلسات المتداخلة (.tmux.conf)
bind-key -n C-a send-prefix # للجلسة الداخلية
set -g status-bg colour40 # أخضر للمحلي
set -g status-bg colour160 # أحمر عن بُعد

الأسئلة الشائعة (FAQ)
س1: كيف أخرج من tmux؟
# الطريقة 1: الخروج تمامًا من tmux
exit # اكتب في نافذة tmux
# أو
prefix + d # فصل من الجلسة الحالية مع الحفاظ على تشغيلها
# الطريقة 2: إغلاق جميع الجلسات بالقوة
tmux kill-server
س2: لماذا لا تعمل خاصية التمرير بالماوس؟
في الإصدارات الأحدث من tmux، تحتاج إلى تمكين دعم الماوس في ملف التكوين الخاص بك:
# أضف إلى ~/.tmux.conf
set -g mouse on
س3: كيف يمكنني نسخ النص في tmux؟
-
باستخدام الماوس (إذا تم تمكين دعم الماوس):
- ببساطة حدد النص
- استخدم اختصارات الحافظة النظامية
-
باستخدام لوحة المفاتيح:
prefix + [ # الدخول إلى وضع النسخ Space # بدء التحديد Enter # نسخ التحديد prefix + ] # لصق
س4: كيف أستعيد جلسة tmux مفقودة؟
# قائمة بجميع الجلسات
tmux ls
# إعادة الاتصال بالجلسة الأخيرة
tmux attach
# الاتصال بجلسة محددة
tmux attach -t session_name
س5: كيف يمكنني تغيير حجم الأقسام في tmux؟
# استخدم مفتاح البادئة + مفاتيح الأسهم لتغيير حجم الأقسام
prefix + Up # توسيع القسم الحالي لأعلى
prefix + Down # توسيع القسم الحالي لأسفل
prefix + Left # توسيع القسم الحالي لليسار
prefix + Right # توسيع القسم الحالي لليمين
س6: كيف أطبق تغييرات التكوين؟
# الطريقة 1: إعادة التحميل داخل tmux
prefix + :
source-file ~/.tmux.conf
# الطريقة 2: إعادة التحميل من الطرفية
tmux source-file ~/.tmux.conf
س7: كيف يمكنني تزامن الإدخال عبر الأقسام؟
# في وضع أوامر tmux
:setw synchronize-panes on
# إيقاف التزامن
:setw synchronize-panes off
س8: لماذا لا تظهر ألواني بشكل صحيح؟
أضف هذه الأسطر إلى ~/.tmux.conf
:
# تمكين دعم الألوان 256
set -g default-terminal "screen-256color"
# تمكين دعم الألوان الحقيقية
set-option -sa terminal-overrides ",xterm*:Tc"
س9: كيف يمكنني حفظ واستعادة جلسات tmux؟
يمكنك استخدام ملحق tmux-resurrect
:
# تثبيت مدير ملحقات tmux
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# أضف إلى .tmux.conf:
set -g @plugin 'tmux-plugins/tmux-resurrect'
# حفظ الجلسات
prefix + Ctrl-s
# استعادة الجلسات
prefix + Ctrl-r
س10: كيف أغير مظهر شريط الحالة الخاص بي؟
# أضف إلى ~/.tmux.conf
# تغيير خلفية شريط الحالة
set -g status-bg black
# تغيير لون خط شريط الحالة
set -g status-fg white
# تغيير تنسيق النافذة الحالية
set-window-option -g window-status-current-style bg=red,fg=white,bold
س11: كيف أتعامل مع جلسات tmux المتداخلة؟
# أضف إلى .tmux.conf لاستخدام بادئة مختلفة للجلسات المتداخلة
bind-key -n C-a send-prefix # للجلسة الداخلية
set -g status-bg blue # لون مختلف للجلسة المتداخلة
س12: مفاتيح الوظائف الخاصة بي لا تعمل في tmux؟
# أضف إلى ~/.tmux.conf
set-option -g xterm-keys on
set-window-option -g xterm-keys on