راهنمای کامل tmux؛ ابزاری برای مدیریت ترمینال

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

بسیاری از کاربران لینوکس سال‌ها از ابزار screen استفاده می‌کردند، اما tmux تقریبا تمام قابلیت‌های screen را ارائه می‌دهد و در کنار آن امکانات بیشتری نیز در اختیار شما قرار می‌دهد. در این مقاله به صورت کامل با tmux، نحوه نصب، تنظیمات و کاربردهای عملی آن آشنا می‌شویم.

tmux چیست؟

tmux مخفف عبارت Terminal Multiplexer است. شاید این اصطلاح در نگاه اول کمی پیچیده به نظر برسد، اما مفهوم آن بسیار ساده است:

شما تنها یک پنجره ترمینال دارید، اما می‌توانید چندین محیط کاری مختلف را درون آن مدیریت کنید.

سه مفهوم اصلی در tmux وجود دارد:

Session

سشن بالاترین سطح ساختار tmux است. شما می‌توانید از یک سشن خارج شوید و بعدا دوباره به آن متصل شوید، بدون اینکه برنامه‌های در حال اجرا متوقف شوند.

Window

هر سشن می‌تواند شامل چندین پنجره باشد. این پنجره‌ها مشابه تب‌های مرورگر عمل می‌کنند.

Pane

هر پنجره می‌تواند به چند بخش تقسیم شود. این بخش‌ها که Pane نام دارند به شما اجازه می‌دهند چندین ترمینال را همزمان مشاهده کنید.

نصب tmux

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

اوبونتو و دبیان

sudo apt install tmux

فدورا، RHEL و CentOS

sudo dnf install tmux

آرچ لینوکس و مانجارو

sudo pacman -S tmux

پس از نصب می‌توانید نسخه نصب‌شده را بررسی کنید:

tmux -V

پیشنهاد می‌شود از نسخه ۳.۰ یا جدیدتر استفاده کنید.

شروع اولین سشن

برای ایجاد یک سشن جدید کافی است دستور زیر را اجرا کنید:

tmux

در پایین صفحه یک نوار وضعیت ظاهر می‌شود که نشان می‌دهد اکنون داخل tmux هستید.

برای ایجاد یک سشن نام‌گذاری شده:

tmux new -s mysession

نام‌گذاری سشن‌ها زمانی که چند سشن مختلف دارید بسیار مفید خواهد بود.

کلید Prefix

تقریبا تمام دستورات tmux با یک کلید پیشوند آغاز می‌شوند.

کلید پیش‌فرض:

Ctrl + b

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

برای مثال:

Prefix + c

یعنی ابتدا Ctrl+b و سپس c.

میانبرهای مهم tmux

مدیریت سشن‌ها

قطع اتصال از سشن فعلی:

Prefix + d

تغییر نام سشن:

Prefix + $

نمایش لیست سشن‌ها:

Prefix + s

بازگشت به آخرین سشن:

Prefix + L

اتصال مجدد به سشن:

tmux attach -t mysession

نمایش تمام سشن‌ها:

tmux ls

مدیریت پنجره‌ها

ایجاد پنجره جدید:

Prefix + c

تغییر نام پنجره:

Prefix + ,

رفتن به پنجره بعدی:

Prefix + n

رفتن به پنجره قبلی:

Prefix + p

پرش به پنجره شماره مشخص:

Prefix + ۰-۹

نمایش تمام پنجره‌ها:

Prefix + w

بستن پنجره فعلی:

Prefix + &

مدیریت Pane ها

تقسیم عمودی صفحه:

Prefix + %

تقسیم افقی صفحه:

Prefix + "

جابجایی بین Pane ها:

Prefix + Arrow Keys

بزرگ‌نمایی موقت Pane فعلی:

Prefix + z

بستن Pane:

Prefix + x

تعویض جای Pane ها:

Prefix + {  یا  }

جابجایی بین چیدمان‌های مختلف:

Prefix + Space

حالت Copy Mode

برای پیمایش در خروجی‌های قبلی ترمینال می‌توانید وارد Copy Mode شوید.

ورود به حالت کپی:

Prefix + [

خروج از حالت کپی:

q

جستجو در خروجی:

/search-term

شروع انتخاب متن:

Space

کپی متن انتخاب شده:

Enter

چسباندن متن:

Prefix + ]

پیکربندی tmux

فایل تنظیمات tmux در مسیر زیر قرار دارد:

~/.tmux.conf

نمونه‌ای از تنظیمات کاربردی:

# تغییر Prefix به Ctrl+a
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# بارگذاری مجدد تنظیمات
bind r source-file ~/.tmux.conf \; display "Config reloaded!"

# فعال کردن ماوس
set -g mouse on

# استفاده از کلیدهای Vim در Copy Mode
setw -g mode-keys vi

# شروع شماره‌گذاری از ۱
set -g base-index ۱
setw -g pane-base-index ۱

# افزایش بافر تاریخچه
set -g history-limit ۱۰۰۰۰

# حذف تاخیر کلید Escape
set -s escape-time ۰

پس از ذخیره فایل:

Prefix + r

یا:

tmux source-file ~/.tmux.conf

فعال کردن ماوس

برای فعال شدن قابلیت‌های ماوس:

set -g mouse on

پس از فعال‌سازی می‌توانید:

  • روی Pane ها کلیک کنید.
  • اندازه Pane ها را تغییر دهید.
  • با چرخ ماوس اسکرول کنید.
  • راحت‌تر بین بخش‌های مختلف جابه‌جا شوید.

کاربردهای عملی tmux

حفظ اجرای برنامه‌ها پس از قطع SSH

یکی از مهم‌ترین مزایای tmux این است که حتی اگر اتصال SSH قطع شود، فرآیندهای در حال اجرا متوقف نمی‌شوند.

ایجاد سشن:

tmux new -s deploy

اجرای یک وظیفه طولانی:

rsync -avz /data/ backup@۱۹۲.۱۶۸.۱.۵۰:/backup/

خروج از سشن:

Ctrl+b d

اتصال مجدد:

tmux attach -t deploy

ایجاد محیط مانیتورینگ سرور

یک ساختار رایج شامل:

  • پنل اصلی برای اجرای دستورات
  • پنل مشاهده لاگ‌ها
  • پنل مانیتورینگ منابع سیستم

نمونه ابزارهای مناسب:

tail -f /var/log/syslog

و:

htop

اجرای خودکار چیدمان‌ها

می‌توانید یک اسکریپت بسازید تا محیط کاری شما به صورت خودکار آماده شود.

نمونه:

#!/bin/bash

tmux new-session -d -s work

tmux rename-window -t work:۱ 'main'

tmux new-window -t work:۲ -n 'logs'

tmux new-window -t work:۳ -n 'monitor'

tmux attach-session -t work

اجرا:

chmod +x start-work.sh
./start-work.sh

دستورات کاربردی خارج از tmux

نمایش سشن‌ها:

tmux ls

حذف یک سشن:

tmux kill-session -t mysession

حذف تمام سشن‌ها:

tmux kill-server

ارسال دستور به یک سشن فعال:

tmux send-keys -t mysession 'uptime' Enter

اجرای یک فرمان در سشن پس‌زمینه:

tmux new -d -s background -n task 'bash backup.sh'

tmux یا screen؟

هر دو ابزار امکان حفظ سشن‌ها را فراهم می‌کنند، اما tmux مزایای مهمی دارد:

  • فایل پیکربندی قدرتمندتر
  • مدیریت بهتر Pane ها
  • امکان اسکریپت‌نویسی پیشرفته
  • حالت Copy Mode بهتر
  • توسعه فعال و مداوم

اگر تازه می‌خواهید یادگیری را شروع کنید، tmux انتخاب مناسب‌تری خواهد بود.

مدیریت افزونه‌ها با TPM

برای نصب مدیر افزونه tmux:

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

افزودن به انتهای فایل تنظیمات:

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'

run '~/.tmux/plugins/tpm/tpm'

نصب افزونه‌ها:

Prefix + I

برخی افزونه‌های محبوب:

  • tmux-resurrect
  • tmux-continuum
  • tmux-yank
  • tmux-cpu

سخن پایانی

tmux یکی از ارزشمندترین ابزارهایی است که هر کاربر حرفه‌ای لینوکس باید یاد بگیرد. شاید در روزهای اول حفظ کردن میانبرها کمی دشوار به نظر برسد، اما پس از مدتی استفاده، کار کردن بدون tmux برایتان عجیب خواهد شد.

اگر مدیریت سرورهای لینوکسی، برنامه‌نویسی، DevOps یا کارهای طولانی در ترمینال بخشی از فعالیت روزانه شماست، یادگیری tmux می‌تواند بهره‌وری شما را به شکل چشمگیری افزایش دهد. پیشنهاد می‌شود ابتدا مدیریت سشن‌ها و تقسیم صفحه را یاد بگیرید و سپس به سراغ شخصی‌سازی تنظیمات و استفاده از افزونه‌ها بروید. در این صورت tmux به یکی از مهم‌ترین ابزارهای روزمره شما تبدیل خواهد شد.

هشتگ‌ها: #لینوکس #برنامه_نویسی


نظرات

هنوز نظری ثبت نشده است.

برای ارسال نظر باید وارد شوید.