02 Jun

برنامه tmux چیست؟ و چرا باید از آن استفاده کنیم

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

اما کاربرد اصلی tmux، امکان استفاده همزمان از چند ترمینال، امکان سوییچ کردن آسان بین آنها، امکان اجرای برنامه ها در پس زمینه و تقسیم کردن صفحه ترمینال بین Session های مختلف است.

نصب tmux

برای نصب تیموکس، کافی است پس از ارتباط با سرور از طریق SSH، از دستور زیر در ترمینال استفاده کنید:

$ yum install -y tmux

پس از چند ثانیه tmux نصب می شود. برای اجرای اولیه آن، کافی است در ترمینال دستور زیر را وارد کنید:

$ tmux

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

تصویر برنامه tmux

ورود به محیط tmux و نوار سبز رنگ وضعیت

استفاده از امکانات محیط tmux

از قابلیت های مهم tmux این است که به شما اجازه می دهد، هم زمان چند ترمینال را بر روی سرور داشته باشید. این کار را می توانید با تقسیم صفحه به دو یا چند پنل مختلف انجام دهید. برای مدیریت پنل ها، اصولا باید ابتدا کلیدهای CTRL+B را بزنید سپس کلید دستور مربوطه را وارد کنید. در اینجا چند نمونه از قابلیت ها را به شما آموزش می دهیم:

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

برای تقسیم صفحه به صورت عمودی، از کلید های CTRL+B و سپس کلید % استفاده می کنیم. نتیجه به شکل زیر خواهد بود:

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

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

تقسیم صفحه به صورت افقی

برای تقسیم صفحه به صورت افقی، ابتدا کلید های CTRL+B و سپس کلید “ را فشار می دهیم:

تقسیم افقی صفحه در تی موکس

تقسیم افقی صفحه در تی موکس

جابجایی بین پنل ها

برای جابجایی بین پنل ها، می توانیم به سه روش اقدام کنیم.

اولین روش این است که کلید های CTRL+B را بزنیم، سپس با استفاده از Arrow Keys یا همان دکمه های بالا، پایین، چپ و راست، به پنل مورد نظر جا به جا شویم. دقت کنید که دور پنل فعال، با حاشیه و خط سبز رنگ مشخص می شود.

دومین روش، فشردن کلید های CTRL+B و بعد کلید O می باشد. با هر بار انجام این کار، پنل فعال به پنل بعدی سوییچ می شود.

و روش سوم، این است که از شماره هر پنل استفاده کنید. این روش برای زمانی مناسب است که تعداد پنل های زیادی را به صورت همزمان روی صفحه باز کرده اید:

سوییچ بین پنل های تی موکس

سوییچ بین پنل های تی موکس

برای این کار، کلید CTRL+B را می زنیم، سپس کلید Q را وارد می کنیم. به محض مشاهده عدد هر پنل، آن عدد را وارد می کنیم و پنل فعال، به آن پنل تغییر می یابد.

جابجایی محل پنل ها

برخی اوقات لازم دارید که پنل ها را جابجا کنید. مثلا زمانی شما پنل بالایی را به نمایش زنده لاگ فایل ها اختصاص داده اید، و در پنل دیگر تنظیمات و … را تغییر می دهید. شاید برای شما راحت تر باشد که لاگ ها را در قسمت پایین صفحه مشاهده کنید. برای این کار، پنل ها را با هم جابجا می کنید. برای این کار کلیدهای CTRL+B را زده و سپس کلید { یا } را وارد می کنید تا پنل فعلی با پنل قبلی یا بعدی جابجا شود. به عنوان مثال، تصویر زیر را مشاهده کنید:

جابجایی محل پنل ها در تی موکس

جابجایی محل پنل ها در تی موکس

زوم کردن روی یک پنل

برای زوم کردن روی یک پنل خاص یا به اصطلاح نمایش یک پنل به صورت full screen، می توانید از کلیدهای CTRL+B و سپس کلید Z استفاده کنید. با یک بار فشار دادن این ترکیب، پنل فعال که دور آن با خط سبز مشخص شده است، به صورت تمام صفحه نمایش داده می شود و با تکرار همین دستور یعنی CTRL+B و سپس کلید Z، از حالت زوم و تمام صفحه خارج می شود:

نمایش یک پنل به صورت تمام صفحه

نمایش یک پنل به صورت تمام صفحه

بستن یک پنل

اگر کار شما با یک پنل تمام شد و قصد داشتید که آن را برای همیشه ببنید، می توانید از دستور CTRL+B و سپس کلید X استفاده کنید. با این کار از شما یک تایید گرفته می شود که برای تایید آن، کلید y و برای لغو آن n را فشار می دهید.

بستن یک پنل در تی موکس

بستن یک پنل در تی موکس

بستن صفحه و برگشت در آینده

اگر شما هم مثل من از PuTTY برای وصل شدن به سرور استفاده می کنید، می توانید در هر مرحله ای، صفحه PuTTY را ببندید. سپس پس از ورود مجدد به سرور، با ورود دستور زیر:

$ tmux -a #0

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

خروج موقت از محیط tmux

برای خروج موقت از محیط tmux می توانید از دستور CTRL+B و سپس کلید D استفاده کنید. با این کار بدون اینکه برنامه های باز شما در تی موکس بسته شوند و روند اجرای آنها مختل شود، شما از این Session خارج می شوید و همانطور که در بالا اشاره شد، می توانید مجددا با دستور tmux a #0 به همین Session برگردید.

پنجره های مختلف در tmux

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

ایجاد پنجره با دستور CTRL+B و سپس کلید C

مشاهده لیست پنجره ها با دستور CTRL+B و سپس W

جابجایی به پنجره بعدی با دستور CTRL+B و سپس N

جابجایی به پنجره قبلی با دستور CTRL+B و سپس P

بستن پنجره با دستور CTRL+B و سپس &

خلاصه و جمع بندی

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

Share this

نظرات (۱)

محسن

عالی بود! مشکل بزرگی رو برای من حل کرد. فقط آموزشی که گذاشتید مربوط به Centos هست. دستور نصب روی Ubuntu رو هم اضافه کنید، بهتر میشه.

نظر شما چیست؟