برنامه Timux
تمام تلاش برنامه سازان در زمینه سیستم عامل ها این است که محیط کاربری را برای کاربران ساده کند و به شکلی در آورد که کاربران راحت تر با این محیط ها کار انجام دهند. در بسیاری از موارد فرض کنید که شما از محیط خط فرمان برای مدیریت سرورهای خود استفاده می کنید و چون در محیط ssh قرار دارید فقط و فقط یک خط فرمان در اختیار دارید و زمانی که سیستم شما یک کار ار انجام می دهد دیگر شما قادر به استفاده و راه اندازی از برنامه دیگری نیستید.
برای رفع این مشکل راه های زیادی وجود دارد یکی از راحت ترین و بهترین راه ها استفاده از برنامه tmux است این برنامه در پروژه OpenBSD متولد شده است و یکی از برنامه های کاربردی در این زمینه می باشد. با استفاده از این برنامه شما می توانید صفحه نمایش خود را به صورت زیر در آورید به راحتی در بین بخش های مختلفی که ایجاد کرده اید حرکت کنید:
اندازه این تصویر بسیار بزرگ است به همین دلیل ممکن است محتویات آن به خوبی دیده نشود. برای دیدن اندازه بزرگتر بر روی آن کلیک کنید.
tmux چیست؟
tmux یک برنامه terminal multiplexer است و می تواند یک محیط کاربری را برای شما به چند بخش همزمان تقسیم کند و یا می تواند چندین پنجره برای شما در یک خط فرمان ایجاد کند که هر پنجره هم برای خود پرداز شی جداگانه داشته باشد. در ادامه این مقاله شما با کاربر و روش استفاده از tmux آشنا خواهید شد.
نصب tmux:
اگر شما از سیستم عامل OpenBSD استفاده می کنید این برنامه به صورت پیش فرض برای شما نصب شده است و نیازی به نصب ندارید ولی در سیستم عامل های دیگر شما نیاز به نصب و راه اندازی این برنامه دارید. این برنامه هم در قالب بسته و هم در قالب سورس در اختیار شما قرار دارد و شما حتی می توانید با استفاده از سیستم ports در FreeBSD این برنامه را به راحتی نصب کنید. فقط به این مطلب دقت داشته باشید که از ورژن ۱٫۶ به بعد این برنامه استفاده کنید. به دلیل اینکه در این مقاله از این ورژن به بعد مورد استفاده قرار گرفته است و شاید بعضی از قابلیت های ذکر شده در این مطلب در ورژن های قدیمی تر وجود نداشته باشد. نصب این برنامه از طریق کد سورس بسیار ساده است و در بخش زیر با فرمان های نصب آن آشنا می شوید:
$ tar -zxvf tmux-1.6.tar.gz
$ cd tmux-1.6
$ ./configure
$ make
$ sudo make install
همچنین در سیستم عامل FreeBSD میتوانید این برنامه را از طریق ports نصب کنید:
$ cd /usr/ports/sysutils/tmux
$ make install clean
شروع به کار Tmux:
برای راه اندازی این برنامه شما به راحتی می توانید با استفاده از فرمان زیر این برنامه را راه اندازی کنید:
$ tmux
این برنامه راه اندازی می شود و شما وارد یک محیطی به شکل زیر می شوید:
این برنامه در شکل ظاهری شبیه یک برنامه ترمینال ساده است که شما در بخش های بعدی خواهید آموخت که به چه صورت این برنامه را به صورت دلخواه خود مدیریت کنید. برای خروج از این برنامه در این مرحله بسیار ساده از فرمان exit استفاده کنید تا با استفاده از این فرمان به محیط shell قبلی خود باز گردید.
تغییر نام Sessionها:
شما می توانید چندین و چند جلسه یا همان session ها را در یک خط فرمان داشته باشید برای این کار نیاز به مدیریت این جلسه ها دارید. برای رسیدن به این هدف می توانید نام های خاصی به هر session بدهید تا به راحتی با آنها کار کنید. در مثال زیر برای یک session نام basic را انتخاب می کنیم:
$ tmux new-session -s basic
برای راحت تر شدن کار می توانید به صورت خلاصه این کار را با فرمان زیر انجام دهید:
$ tmux new -s basic
بعد از اجرا کردن این فرمان در بخش پایینی صفحه tmux نامی که انتخاب کردید ظاهر می شود. برای خروج از این بخش از فرمان exit استفاده کنید.
detaching کردن یک Session:
یکی از قابلیت های مهمی که در tmux وجود دارد این است که شما می توانید یک Session را به طور کامل به پس زمینه منتقل کنید و یا به اصطلاح detaching کردن یک جلسه. با این کار همه برنامه ها در پس زمینه به کار خود ادامه می دهند و شما هر زمان که نیاز داشتید می توانید به این محیط برگردید. برای شروع یک session به روش زیر ایجاد کنید:
$ tmux new -s basic
درون این session یک برنامه مانیتور کننده سیستم به نام top را راه اندازی کنید. این کار با اجرای فرمان زیر شروع می شود:
$ top
بعد از اجرای این خروجی به شکل زیر مشاهده می کنید:
حال برای detach کردن این برنامه کافی است ابتدا از کلید های Ctrl+b استفاده کنید و بعد کلید از d استفاده کنید، سپس شما به محیط Shell باز می گردید با این تفاوت که به شما این پیغام را می دهد که برنامه detach شده نه exit. در ادامه این مقاله به این نکته توجه داشته باشید که برای راه اندازی هر فرمان در محیط tmux شما باید ابتدا از کلید های Ctrl+b استفاده کنید. حال شما قصد دارید که به برنامه detach شده بازگردید برای این کار باید فرمان زیر را اجرا کنید:
$ tmux list-sessions
این فرمان لیست همه sessionها را برای شما نمایش می دهد. شما برای راحتی کار می توانید این فرمان را به صورت خلاصه و به شکل زیر اجرا کنید:
$ tmux ls
خروجی این فرمان به صورت زیر است:
basic: 1 windows (created Mon Jan 30 16:58:26 2012) [105×25]
second_session: 1 windows (created Mon Jan 30 17:49:21 2012) [105×25]
حال شما می توانید با استفاده از –t به صوت زیر به یک session وارد شوید:
$ tmux attach -t second_session
kill کردن یک session:
شما بعد از وارد شدن به یک session می توانید با استفاده از فرمان exit به اصطلاح session را kill کنید. راه دیگری هم برای انجام دادن این عمل وجود دارد آن هم با استفاده از فرمان tmux است که در زیر فرمان های این بخش را مشاهده می کنید، البته برای بسته یک session از شما یک پیغام تایید می گیرد:
$ tmux kill-session -t basic
$ tmux kill-session -t second_session
حال بعد از اجرای فرمان tmux ls خروجی به صورت زیر مشاهده می کنید:
$ tmux ls
failed to connect to server: Connection refused
کار با پنجره ها:
یک قابلیت بسیار جذاب در tmux این است که شما می توانید چندین صفحه جدید در یک صفحه داشته باشید و یا یک صفحه را به چند بخش به صورت افقی و عمودی تقسیم کنید. چندین راه برای ایجاد کردن صفحه های جدید در یک صفحه وجود دارد که در ادامه با آنها آشنا می شوید.
برای شروع اول باید صفحه اول را با استفاده از خط فرمان ایجاد کنید و بعد در صفحه اول صفحه های دیگر را ایجاد کنید برای شروع از فرمان زیر استفاده کنید:
با استفاده از این فرمان شما یک صفحه جدید باز کردید با استفاده از سویچ –n برنامه tmux راحت تر می تواند صفحه ها را پیدا کند. بخش –s در کل نام اصلی صفحه را ایجاد می کند و با استفاده از سویچ –n شما می توانید یک نام برای صفحه در نظر بگیرد که در بخش زیرین صفحه قابل مشاهده است. برای ایجاد یک صفحه جدید در این صفحه کافی است که از کلیدهای هم زمان Ctrl+b استفاده کنید و در مرحله بعد کلید c را فشار دهید تا یک صفحه جدید ایجاد کنید. اولین صفحه ای که شما ایجاد کرده بودید به نام Shell نام گذاری شده است ولی صفحه جدید یک نام پیش فرض دارد. برای تغییر این نام پیش فرض شما بعد از استفاده از کلیدهای Ctrl+b کلید , یا همان کاما را فشار دهید تا بخش تغییر نام صفحه برای شما باز شود و نام دلخواه خود را تایپ کنید.
حرکت کردن در بین پنجره ها:
زمانی که شما دو یا چند پنجره در یک صفحه ایجاد می کنید امکان این را دارید که در بین این صفحات حرکت کنید. برای حرکت سریع بین پنجره های ایجاد شده می توانید از کلید های Ctrl+b و بعد n استفاده کنید تا به اصطلاح به پنجره بعدی بروید برای رفتن به پنجره قبلی هم از کلیدهای Ctrl+b به همراه p استفاده کنید.
به صورت پیش فرض هر پنجره در tmux یک شماره به خود اختصاص می دهد اگر تعداد پنجره های شما زیاد بود و قصد این را داشتید که به سرعت به پنجره اول باز گردید می توانید از عدد آن پنجره استفاده کنید این اعداد از ۰ شروع می شوند. مثلا برای رفتن به پنجره اول از کلید های Ctrl+b به همراه عدد ۰ استفاده کنید .
در بعضی از موارد شما قصد دارید که با استفاده از نام پنجره ها آنها را پیدا کنید. برای این منظور از کلیدهای Ctrl+b به همراه f استفاده کیند تا خطی برای شما باز شود و نام مورد نظر خود را در آن جستجو کنید. برای نمایش لیست همه پنجره های هم می توانید از کلیدهای Ctrl+b به همراه w استفاده کنید تا یک منو برای شما باز شود و شما بتوانید با استفاده از کلیدهای جهت نما در بین آنها حرکت کنید و با Enter کردن پنجره مورد نظر خود را انتخاب کنید.
خارج شدن از یک پنجره:
برای خارج شدن از یک پنجره می توانید دو کار انجام دهید. در مرحله اول فرمان exit را اجرا کنید تا پنجره بسته شود یا با استفاده از کلیدهای Ctrl+b به همراه علامت & این کار را انجام دهید در حالت دوم برای شما یک پیغام به نمایش در می آید که تاییدی از شما برای خروج از پنجره را می گیرد.
کار با Panes یا همان شیشه ها:
داشتن برنامه ها در پنجره های مختلف قابلیت خوب و جالبی است ولی شما در بعضی از موارد دوست دارید که در یک صفحه چندین برنامه را به صورت هم زمان داشته باشید و در پنجره بتوانید چندین برنامه را مشاهده کنید. برنامه Tmux می تواند صفحه شما را به چند بخش به نام pane یا شیشه تقسیم کند. برای اینکه بتوانید از این قابلیت استفاده کنید ابتدا باید یک جلسه با استفاده از فرمان زیر ایجاد کنید:
$ tmux new -s panes
حال شما می توانید این صفحه را در حالت افقی و عمودی تقسیم کنید در یک مثال شما می توانید صفحه را در حالت عمودی تقسیم کنید و بعد یک بخش را در حالت افقی هم تقسیم کنید در شکل زیر این مثال نمایش داده شده :
حال وقت شروع به کار در این بخش است بعد از وارد شدن به بخش tmux از کلید های Ctrl+b و بعد کلید % استفاده کنید تا صفحه در بخش اول به دو قسمت در حالت عمودی تقسیم می شود. بعد برای تقسیم کردن بخش سمت راست در حالت افقی از کلید های Ctrl+b به همراه کلید “ استفاده کنید حال به حالت مورد نظر رسیدید.
برای حرکت کردن در بین این بخش ها کافی است که از کلید های Ctrl+b به همراه کلید o استفاده کنید، با هر بار اجرای این فرمان شما وارد یک بخش می شوید. برای انتخاب کردن صفحه مورد نظر کافی است که دوباره کلید های Ctrl+b را فشار دهید و این بار بعد از کلید o دوباره کلیدهای Ctrl+b را فشار دهید و بعد با استفاده از کلیدهای جهت نما صفحه مورد نظر خود را انتخاب کنید و بعد در آن بخش ↵ Enter را فشار دهید تا وارد بخش مربوط شوید. شما می توانید حالت های مختلف را برای سایز این صفحه ها انتخاب کنید برای این کار از کلیدهای Ctrl+b به همراه کلید SPACEBAR انجام می شود این بخش را تکرار کنید تا به اندازه دلخواه خود برسید و دیگر از این کلیدها استفاده کنید.
بستن panes ها:
برای بستن این بخش ها شما چند راه دارید. راه اول استفاده از فرمان exit در بخش جاری است که شما در آن قرار دارید و بخش بعدی استفاده از کلیدهای Ctrl+b به همراه کلید x است در روش دوم قبل از بسته شدن یک پیغام تایید نمایش داده می شود که آیا شما مایل به بسته شدن این بخش هستید یا نه.
استفاده از حالت خط فرمان:
شما می توانید در محیط tmux فرمان هایی را اجرا کنید برای این منظور کافی است که از کلید های Ctrl+b به همراه کلید : استفاده کنید تا در زیر بخش tmux وارد محیط خط فرمان شوید بعد از ورود به این خط فرمان شما می توانید فرمان زیر را اجرا کنید تا یک پنجره جدید باز کنید:
new-window -n console
شما همچنین می توانید یک برنامه را به صورت مستقیم در صفحه جدید راه اندازی کنید و با خاتمه یافتن برنامه این صفحه هم بسته می شود، برای این منظور باید فرمان را در داخل علامت های “” قرار دهید، برای مثال فرمان top را به صورت زیر اجرا کنید:
new-window -n processes “top”
حال کلید enter را فشار دهید تا برنامه اجرا شود بعد از خروج از این فرمان صفحه هم به صورت خودکار بسته می شود.
استفاده از حالت copy و past در tmux:
برای وارد شدن به این بخش از کلیدهای [+Ctrl+b استفاده کنید تا وارد حالت کپی شوید، بعد از ورود به این بخش از کلیدهای SPACEBAR+Ctrl استفاده کنید تا حالت انتخاب متن فعال شود و بعد از انتخاب متن مورد نظر از کلیدهای هم زمان Ctrl+W استفاده کنید تا این بخش در حافظه بارگذاری شود بعد از این عمل در محل مورد نظر برای past قرار بگیرید و از کلید های هم زمان ]+Ctrl+b استفاده کنید.