Tmux چیست و لزوم یادگیری آن برای لینوکسی ها
![](https://infu.ir/wp-content/uploads/2022/12/substation.jpg)
یکی از مشکلاتی که به عنوان یک مدیر لینوکس مدتها باهاش سر و کله میزدم باز بودن تب ها و ترمینال های مختلف برای کار با سرور ها بود.
زمانی که تنها از zsh
استفاده میکردم و کامپوننت دیگه ای نداشتم مجبور بودم تب های زیادی باز کنم ، تب ها زیاد میشد و معلوم نبود هر کدوم از تب ها چه کارهایی انجام میدادن و در کدوم مسیر بودن.
معمولا اکثر لینوکسی ها عاشق ترمینال هستن و داشتن یه ترمینال جذاب و همچنین کار آمد خیلی میتونه کمک کنه.
چند وقت پیش بود که با استفاده از Tmux
تونستم مشکلم رو حل کنم . Tmux
یک ترمینال چندگانه که به شما اجازه اجرا همزمان چندین برنامه ( که به صورت جداگانه در پس زمینه در حال اجرا هستند) در یک ترمینال رو میده.
Tmux
این قابلیت رو داره که از صفحه نمایش ( ترمینالی که دارید باهاش کار میکنید) جدا بشه و هر زمان که نیاز داشتید دوباره میتونید بهش وصل بشید.
برای نصب Tmux
ابتدا باید libevent
رو نصب کرده باشید که میتونید اون رو از وبسایت اصلی دانلود و نصب کنید.
حالا نوبت نصب tmux
میرسه که با دستورات زیر میتونید این کار رو انجام بدید :
git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure && make
ابتدا repository
اصلی tmux
رو بارگذاری میکنیم روی سیستم خودمون (کلون میگیریم) ، پیشنهادم اینه قبل از انجام به پوشه tmp
برید ، با استفاده از دستور بعدی وارد دایرکتوری بارگذاری شده میریم و سپس فایل های نصبی رو اجرا میکنیم.
معمولا اکثر افراد با zsh
کار کردن و به عنوان ترمینال اصلی قرار دادنش ، اگر از zsh
نمیکنید برای تکمیل خودکار دستورات پیشنهاد میکنم این پکیج رو هم نصب کنید .
حالا با زدن دستور زیر میتونید وارد محیط Tmux
بشید :
tmux
برای استفاده از Tmux
به عنوان ترمینال پیش فرض باید کد زیر را در تنظیمات ترمینال پیش فرض که در اینجا برای من zsh
هست قرار بدید :
[[ $TERM != "screen" ]] && exec tmux
معمولا فایل کانفیگ bash
پیش فرض در ~/.bashrc
و برای zsh
در ~/.zshrc
هست.
از سیستم خارج شده و دوباره وارد سیستم بشید و ترمینال رو باز کنید ، پنجره باز شده محیطی از tmux
هست که یک صفحه ساده و بدون هیچ امکاناتی است. شاید تو نگاه اول بگید هیچ تغییر وجود نداره ولی باید بگم که با تنظیماتی که در ادامه توضیح میدم چطور میتونید یک ترمینال لذت بخش بسازید.
تعداد کمی از دستورات کلیدی رو من در اینجا توضیح میدم و برای اطلاعات بیشتر میتونید به این صفحه مراجعه کنید .
در تنظیمات و آموزش هایی که برای این کامپوننت هست معمولا کلمه prefix
را زیاد میبینید که به صورت پیش فرض منظور ترکیب کلید های ctrl + b
هست.
در Tmux
شما میتونید به جای استفاده از پنجر های مختلف از یک پنجره با چندین panes
استفاده کنید.
برای ساخت از دستورات زیر میتونید استفاده کنید :
Prefix + “
Prefix + %
با استفاده از دستور اول pane
به صورت افقی و در دستور دوم به صورت عمودی ایجاد میشه.
برای بستن هر کدوم از pane
هم میتونید از Ctrl +d
استفاده کنید.
برای تغییر اسم pane
از Prefix + ,
بعد از تغییر هم Enter
بزنید.
برای جابه جایی بین Pane
ها میتونید از Prefix + [arrow key]
استفاده کنید.
اگر دوست داشتید یکی از pane
ها به صورت تمام صفحه بشه از Prefix + z
و برای برگشت به حالت قبل هم از همین دستور استفاده کنید.
برای تغییر سایز pane
از دستور Prefix + Ctrl +[arrow key]
میشه بهره گرفت.
با استفاده از لینکی که در بالا قرار دادم میتونید لیست کامل کلید های میانبر رو ببینید.
Tmux
پلاگین های زیادی داره که میتونید ازشون استفاده کنید، برای استفاده از این پلاگین ها از Tmux plugin manager
استفاده میکنیم.
با استفاده از دستور زیر Tmux plugin manager
را نصب کنید :
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
برای استفاده از پلاگین ها و همچنین شخصی سازی باید یک فایل با نام .tmux.conf
در مسیر کاربر جاری یا همون ~
داشته باشیم.
در صورتی که فایل وجود داشت محتوا زیر را به انتها فایل اضافه کنید و در صورتی که وجود نداشت فایل را بسازید :
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
run '~/.tmux/plugins/tpm/tpm'
برای اضافه کردن پلاگین جدید تنها باید خط زیر رو به فایل کانفیگ اضافه کنید:
set -g @plugin 'github_username/plugin_name'
بعد از اضافه کردن هر پلاگین باید تنظیمات tmux
را با استفاده از دستور زیر بارگذاری کنید:
tmux source ~/.tmux.conf
مدیران لینوکسی مثل من دوست دارن تنها یک صفحه ترمینال به صورت تمام صفحه جلوشون باز باشه و تمامی کارها با استفاده از ترمینال صورت بگیره . کارهای زیادی میشه انجام داد از نمایش باتری ، تاریخ ، میزان مصرف رم و cpu
تا شخصی سازی clipboard
و … .
برای مثال من دوست دارم همیشه میزان مصرف باتری و تاریخ در بالای ترمییال نمایش داده بشه با اضافه کردن خط زیر به فایل .tmux.conf.
منو به بالای ترمینال اضافه میشه :
set -g status-right '#{battery_status_bg} Batt: #{battery_icon} #{battery_percentage} #{battery_remain} | %a %h-%d %H:%M ' set-option -g status-position top
در اینجا سعی کردم به صورت خلاصه شما با Tmux
آشنا بشید ، با توجه به اینکه پلاگین ها و قابلیت های زیادی وجود داره برای اطلاعات بیشتر میتونید از لینک های این مقاله و یا دستورPrefix + ?
در ترمینال استفاده کنید.