Tmux (مخفف Terminal Multiplexer) ابزاری قدرتمند و ضروری برای هر کاربر، توسعه‌دهنده یا مدیر سیستم لینوکس است. این ابزار به شما اجازه می‌دهد تا چندین ترمینال (یا به اصطلاح "Pane" و "Window") را در یک پنجره واحد ترمینال مدیریت کنید.

چرا باید از Tmux استفاده کنیم؟

استفاده از Tmux سه مزیت کلیدی دارد که بهره‌وری شما را در محیط خط فرمان لینوکس به شدت افزایش می‌دهد:

  1. پایداری (Persistence): اگر اتصال اینترنت شما قطع شود، یا به طور تصادفی ترمینال خود را ببندید، برنامه‌های در حال اجرا در یک جلسه‌ی (Session) Tmux همچنان فعال باقی می‌مانند. می‌توانید بعداً دوباره به همان جلسه متصل شوید و کارتان را از همان جایی که رها کرده‌اید، ادامه دهید. این ویژگی برای کار روی سرورهای ریموت از طریق SSH حیاتی است.

  2. چندکاره بودن (Multitasking): Tmux به شما امکان می‌دهد صفحه ترمینال خود را به چندین پنل (Pane) عمودی و افقی تقسیم کرده و در هرکدام یک کار مجزا انجام دهید (مثلاً ویرایش کد در یک پنل، اجرای تست‌ها در پنل دیگر، و نظارت بر لاگ‌ها در سومی).

  3. مدیریت آسان: می‌توانید چندین پنجره (Window) در یک جلسه ایجاد کنید (مانند تب‌های مرورگر) و برای هر پروژه یا وظیفه یک پنجره اختصاص دهید.


شروع کار با Tmux

۱. نصب Tmux

Tmux در مخازن نرم‌افزاری اکثر توزیع‌های لینوکس موجود است.

توزیع دستور نصب
دبیان/اوبونتو (Debian/Ubuntu) sudo apt update && sudo apt install tmux -y
فدورا/سنت‌اواس (Fedora/CentOS) sudo dnf install tmux -y یا sudo yum install tmux -y
آرچ لینوکس (Arch Linux) sudo pacman -S tmux

۲. ایجاد و ورود به Session

برای شروع کار با Tmux، کافی است دستور tmux را اجرا کنید:

tmux 

با این کار یک جلسه جدید (Session) با نام پیش‌فرض (مثل 0 یا 1) و یک پنجره (Window) درون آن باز می‌شود. در پایین ترمینال یک نوار وضعیت (Status Bar) سبز رنگ ظاهر می‌شود که اطلاعاتی مانند نام Session و لیست Window ها را نمایش می‌دهد.

برای ایجاد یک Session با نام دلخواه (توصیه می‌شود):

tmux new -s my_project 

my_project نام Session شما خواهد بود.


دستورات ضروری Tmux (کلیدهای میانبر)

تمامی دستورات کنترلی در Tmux با فشردن یک کلید پیشوند (Prefix Key) آغاز می‌شوند. کلید پیشوند پیش‌فرض در Tmux عبارت است از:

Ctrl+b

این بدین معناست که ابتدا Ctrl و b را همزمان فشار داده و رها می‌کنید، سپس کلید دستور مورد نظر را می‌فشارید.

۱. مدیریت Session ها (جلسات)

عملکرد کلید میانبر دستور کامل (از خط فرمان) توضیح
جدا شدن (Detach) Ctrl+b سپس d tmux detach خروج موقت از Session، در حالی که Session در پس‌زمینه فعال است.
لیست Session ها Ctrl+b سپس s tmux ls مشاهده لیست تمام Session های فعال.
اتصال مجدد (Attach) Ctrl+b سپس a tmux attach -t 0 (یا نام Session) اتصال مجدد به یک Session فعال (مثلاً Session شماره 0).
بستن Session tmux kill-session -t 0 (یا نام Session) بستن کامل یک Session و توقف برنامه‌های آن.

۲. مدیریت Window ها (پنجره‌ها - شبیه به تب‌ها)

عملکرد کلید میانبر توضیح
ایجاد Window جدید Ctrl+b سپس c یک تب/پنجره جدید در Session فعلی ایجاد می‌کند.
رفتن به Window بعدی Ctrl+b سپس n جابجایی به Window بعدی.
رفتن به Window قبلی Ctrl+b سپس p جابجایی به Window قبلی.
رفتن به Window با شماره Ctrl+b سپس 0…9 جابجایی مستقیم به Window با شماره مشخص.
تغییر نام Window Ctrl+b سپس , (کاما) نام Window فعلی را تغییر می‌دهد.

۳. مدیریت Pane ها (پنل‌ها - تقسیم صفحه)

عملکرد کلید میانبر توضیح
تقسیم عمودی Ctrl+b سپس % (درصد) تقسیم Pane فعال به دو Pane عمودی (کنار هم).
تقسیم افقی Ctrl+b سپس " (کوتیشن) تقسیم Pane فعال به دو Pane افقی (بالا و پایین).
جابجایی بین Pane ها Ctrl+b سپس کلیدهای جهت‌نما جابجایی تمرکز (Focus) بین Pane های مختلف.
چرخش Pane ها Ctrl+b سپس o جابجایی دورانی تمرکز بین Pane ها.
بستن Pane فعال Ctrl+b سپس x بستن Pane فعال (نیاز به تأیید دارد).
تمام صفحه کردن (Zoom) Ctrl+b سپس z بزرگنمایی روی Pane فعال (برای بازگشت دوباره کلیدها را بزنید).

قابلیت‌های پیشرفته

۱. حالت کپی (Copy Mode)

اگر نیاز دارید متنی را از ترمینال کپی کنید و یا به لاگ‌های قبلی پیمایش کنید، باید وارد Copy Mode شوید:

عملکرد کلید میانبر توضیح
ورود به Copy Mode Ctrl+b سپس [ (قلاب باز) می‌توانید با کلیدهای جهت‌نما یا Vim/Emacs در متن پیمایش کنید.
شروع انتخاب متن Space (در Copy Mode) نشانگر را در محل شروع انتخاب قرار دهید و Space را فشار دهید.
کپی کردن Enter (در Copy Mode) پس از انتخاب، Enter را بزنید تا متن کپی شود و از Copy Mode خارج شوید.
جایگذاری (Paste) Ctrl+b سپس ] (قلاب بسته) محتویات کپی شده (در بافر Tmux) را جایگذاری می‌کند.

۲. شخصی‌سازی و فایل پیکربندی

Tmux را می‌توان با استفاده از فایل پیکربندی ~/.tmux.conf کاملاً شخصی‌سازی کرد. بسیاری از کاربران برای راحت‌تر شدن، کلید پیشوند پیش‌فرض Ctrl+b را به Ctrl+a تغییر می‌دهند.

مثالی از پیکربندی ~/.tmux.conf:

# تغییر کلید پیشوند به Ctrl+a
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# فعال‌سازی پیمایش با ماوس
set -g mouse on

# تنظیم ترمینال برای رنگ‌های 256
set -g default-terminal "screen-256color"

# تنظیمات برای جابجایی بین پنل‌ها با Ctrl + جهت‌نما (بعد از کلید پیشوند)
bind -n C-Left select-pane -L
bind -n C-Right select-pane -R
bind -n C-Up select-pane -U
bind -n C-Down select-pane -D

بعد از ویرایش، برای اعمال تغییرات بدون راه‌اندازی مجدد، دستور زیر را در خط فرمان Tmux (با Ctrl+b و سپس :) اجرا کنید:

:source-file ~/.tmux.conf

جمع بندی

Tmux یک ابزار حیاتی برای هر کسی است که وقت زیادی را در ترمینال لینوکس می‌گذراند. با تسلط بر این ابزار، می‌توانید بهره‌وری خود را به طور چشمگیری افزایش دهید و نگران قطع شدن اتصال‌های SSH خود نباشید.