tmux یک ترمینال مالتیپلکسر است: نشست لینوکس را از پنجرهٔ SSH جدا میکند تا اگر اتصال قطع شد، فرایندها زنده بمانند و بعداً دوباره attach کنید. ویکی رسمی Getting Started با tmux new، کلید پیشوند Ctrl-b، تقسیم پنل و detach همین مهارت را آموزش میدهد.
آموزش tmux در لینوکس؛ چند پنل و سشن پایدار روی SSH
پیشنیاز: دسترسی شِل به یک لینوکس (محلی یا سرور)، نصب بستهٔ tmux با مدیر بستهٔ توزیع، و عادت کنید کارهای طولانی را داخل tmux اجرا کنید نه مستقیم روی SSH خام. نقشها را جدا نگه دارید: کلاینت SSH روی لپتاپ فقط نمایش است؛ سرور tmux روی میزبان نشست و برنامهها را نگه میدارد.
- نصب روی دبیان/اوبونتو: sudo apt update && sudo apt install tmux.
- بعد از SSH، اولین نشست نامدار را بسازید: tmux new -s work (یا کوتاه: tmux new).
- کار طولانی (کامپایل، مهاجرت، top، ویرایش) را همینجا اجرا کنید.
- برای جدا شدن بدون کشتن کار: اول Ctrl-b را بزنید، رها کنید، بعد کلید d (detach).
- SSH را حتی میتوانید ببندید؛ بعداً وصل شوید و بزنید tmux attach -t work یا tmux ls برای فهرست.
- پنجرهٔ جدید: Ctrl-b سپس c. تقسیم پنل: Ctrl-b سپس % (چپ/راست) یا " (بالا/پایین).
- جابهجایی بین پنلها: Ctrl-b سپس o.
قانون طلایی مبتدی: هر کلیدی که برای کنترل tmux است بعد از prefix میآید؛ بدون Ctrl-b آن کلید به برنامهٔ داخل پنل میرود. در ویکی، new-session، split-window و detach/attach ستون فقرات گردش کارند؛ همین سه مهارت جلوی از دست رفتن کار روی Wi-Fi ضعیف را میگیرد.
اگر prefix را مدام فراموش میکنید، همان را در نظرات بگویید تا میانبر تمرینی پیشنهاد کنیم.
اشتباههای رایج و چک مهارت
- تمرین اجباری: داخل tmux برنامهٔ top را اجرا کنید، detach کنید، SSH را قطع کنید، دوباره وصل شوید و attach کنید—باید top هنوز باشد.
- بستن پنجرهٔ ترمینال محلی بهتنهایی همیشه معادل kill نشست نیست؛ با این حال عادت درست همان Ctrl-b d است.
- tmux تودرتو (SSH به ماشینی که خودش tmux دارد) بدون عوض کردن prefix گیجکننده است؛ اول روی یک لایه مسلط شوید.
- نشست اضافه را با tmux kill-session -t name پاک کنید تا فهرست شلوغ نشود.
- برای کار تیمی، نام نشست معنادار بگذارید (api، migrate) تا attach اشتباهی پیش نیاید.
اولین سناریویی که با tmux نجات دادید چه بود—کامپایل شبانه، اسکریپت بکآپ، یا صرفاً چند پنل روی یک SSH؟
هدف اول tmux زیبایی ترمینال نیست؛ نجات کار از قطع SSH است. هر بار که روی سرور apt upgrade طولانی، مهاجرت دیتابیس یا ساخت باینری میروید و مستقیم روی شِل خام میمانید، یک قطعی وایفای میتواند فرایند را با SIGHUP بکشد. نشست tmux همان بیمه است.
ویکی Getting Started تأکید میکند بعد از attach، کلیدها به برنامهٔ داخل پنل میروند مگر اول prefix بزنید. پیشفرض Ctrl-b است. این را با صدای بلند تمرین کنید: Ctrl-b، رها، بعد d برای detach. خیلی از مبتدیها Ctrl را نگه میدارند و d را همزمان میزنند و نتیجه نمیگیرند.
پنجرهها مثل تب هستند؛ پنلها تقسیم یک پنجرهاند. اول فقط یک پنجره و detach/attach را Circ کنید، بعد % و " را اضافه کنید. اگر از روز اول شش پنل بسازید، فقط سردرگم میشوید. نام نشست (-s work) را جدی بگیرید تا وقتی tmux ls چند خط شد بدانید به کدام attach کنید.
روی سرورهای اشتراکی، اخلاق کاری مهم است: نشست رهاشده با فرایند سنگین را بیخبر برای همیشه باز نگذارید، و به نشست همکار بدون هماهنگی attach نکنید. برای کار شخصی روی VPS خودتان، یک نشست main پایدار معمولاً کافی است.
اگر از موبایل با کلاینت SSH وصل میشوید، tmux دو برابر میارزد چون قطعی موبایل بیشتر است. همان attach بعدی کار را ادامه میدهد. وقتی رایانهٔ دیگری دارید، از همان سرور tmux attach میزنید و محیط عین قبل است.
پیکربندی پیشرفته و عوض کردن prefix به Ctrl-a را بگذارید برای بعد؛ اول پیشفرض ویکی را عضلهای کنید. مرجع کلیدها و مفهوم session/window/pane همان صفحهٔ Getting Started در ویکی tmux است؛ man صفحه هم جزئیات bind را دارد.