دستور screen در لینوکس

دستور screen

اشتراک گذاری پست

یکی از دستورات لینوکس که در اصل یک بسته نرم افزاری است، Screen نام دارد. کاربرد این دستور اوقاتی است که اتصال به اینترنت ما، برای دسترسی به سرور از طریق خط فرمان یا SSH ضعیف است و احتمال قطع شدن آن وجود دارد. از طرف دیگر اجرای یک دستور طولانی را داریم که زمان زیادی را صرف می کند تا به اتمام برسد. مثلاً در مواقعی که قصد نصب کنترل پنل هایی مثل cPanel یا DirectAdmin را داریم، بهره بردن از Screen هم از خراب شدن سرور جلوگیری می کند. هم عملیات را بدون شکست به اتمام می رساند. در صورتی که حتی می توانیم اتصال SSH خود به سرور را قطع کنیم.

آموزش کار با دستور screen در لینوکس

کار دستور Screen چیست؟

از آن جایی که در هنگام کار با خط فرمان لینوکس به واسطۀ SSH اگر ارتباط ما با شبکه قطع شود، عملیات مختل شده و اجرای دستورات از همان جا قطع می گردد، باید روشی وجود داشته باشد که دستور یا دستورات مورد نظر ما را بدون در نظر گرفتن اینکه آیا همچنان دسترسی ما به SSH برقرار است یا خیر، تا انتها دنبال کند.

این کار توسط بستۀ نرم افزاری ای به نام screen به سادگی انجام می شود. طریقه استفاده از آن هم ساده است. تنها کافی است دستور screen را در ابتدای هر دستور دیگری بیاورید تا یک صفحۀ دیگر باز شده و شما بتوانید دستورات خود را در آنجا وارد نمایید.

بدون هیچ محدودیتی می توان چندین screen باز کرد و هر screen دستورات مختص خود را اجرا کند. حتی اگر اتصال به کلی قطع گردد. برای باز کردن یک screen خالی هم همین دستور را در خط فرمان وارد می کنیم.

نصب Screen

در اولین گام بهتر است بررسی کنید که ببینید آیا Screen روی سیستم شما نصب شده یا خیر. برای این کار دستور زیر را بزنید که نسخه Screen را نمایش می دهد.

screen --version

اگر این دستور خروجی داشت و نسخه Screen را نشان داد، یعنی Screen نصب شده است. در غیر این صورت دستور زیر را در سرورهای CentOS برای نصب آن بزنید.

yum -y install screen

در سرور های مبتنی بر Debian:

apt-get install screen


شروع یک Screen جدید

برای ایجاد کردن یک Screen جدید، به محض اینکه دستور screen را بدون هیچ گونه نشانوندی بزنید، این کار انجام می شود. حالا هر دستوری که بزنید، این دستور در محیط این نما یا Screen اجرا می گردد و اگر هم حتی پنجره Putty یا Terminal را ببندید، دستور تا انتها به کار خودش ادامه می دهد. حتی بعد از باز کردن مجدد Putty یا Terminal می توانید با وارد شدن به همان نما نتیجه را ببینید یا ادامه کار را پی بگیرید.

زمانی که در محیط Screen هستید، اگر Ctrl+a را بزنید و سپس ? را تایپ کنید، راهنمای کل دستورات مرتبط با دستور screen ظاهر می گردد. دقت داشته باشید که در محیط screen اگر بدون Ctrl+a دستوری را بزنید، دستور روی سرور اجرا می شود. اما وقتی Ctrl+a را می زنید و چیزی تایپ می کنید، در اصل در حال دادن دستور به خود برنامه Screen هستید. به این نکته دقت کافی داشته باشید.

هر نما یا جلسه یا Screen ای که ساخته می شود برای خودش نامی دارد. برای باز کردن مجدد همان Screen باید نام آن را دانست. با ساخت یک Screen جدید، نامگذاری به صورت خودکار انجام می شود. اما اگر بخواهیم نام گذاری دلخواه باشد باید از ساختار دستور زیر استفاده گردد:

screen -S session_name

به جای session_name باید نام دلخواه جلسه جایگزین شود.

خارج شدن از محیط Screen یا نما (Detach)

شما در هر زمانی بدون اینکه Screen را ببندید، می توانید از آن خارج شده و در مواقع بعدی مجدد به آن وارد شوید. برای خروج از همان Screen ای که درون آن هستید، Ctrl+a را بزنید و حالا d را تایپ کنید.


Ctrl+a d

دقت کنید وقتی از یک نما خارج می شوید، هنوز آن نما یا Screen وجود دارد و فقط شما از آن خارج شدید. بعداً می توانید مجدد وارد آن شوید.

فهرست کردن نام و شناسۀ تمامی Screen ها

زمانی که این دستور را چه در محیط یک Screen یا چه در محیط اصلی SSH می زنید، نام و شناسه کل Screen هایی که تا به حال ساخته شدند فهرست می شوند.


screen -ls

اگر همینک درون یک Screen باشید، عبارت Attached در روبروی همان Screen نمایش داده خواهد شد که نشان از فعال بودن همان نما دارد. پس این طوری می توانید بفهمید که الان درون کدام نما یا Screen هستید.

اگر هم هیچ نمایی وجود نداشته باشد، عبارت زیر به نمایش در خواهد آمد:

ورود مجدد به یک Screen که قبلاً از آن خارج شدیم (Reattach)

اگر فقط یک نما یا Screen ساخته باشیم، فقط کافی است دستور زیر را بزنیم تا مجدد وارد آن شویم.

screen –r

اما اگر چندین Screen وجود داشته باشد، با زدن دستور بالا، فهرست شناسۀ تمامیِ Screen ها نشان داده می شود و باید از دستور زیر برای وارد شدن به یکی از آنها استفاده کنیم.

Screen -r [pid.]tty.host

به جای [pid.]tty.host باید شناسه و نام Screen را بزنیم. مثلا:

screen -r 2365.pts-0.localhost

بستن کامل یک Screen یا نما

برای بستن کامل نما و خروج از آن که همینک درون آن هستید، باید از ساختار دستور زیر استفاده کنید:

Ctrl+a :quit

یعنی Ctrl + A را از صفحه کلید بزنید و سپس علامت : و عبارت quit را تایپ کنید و Enter بزنید.

اما اگر خارج از محیط هر Screen ای خواسته باشید یک نما را ببندید، باید از دستور زیر استفاده کنید.

screen -S 23536 -X quit

به جای عدد بالا، باید شناسه یا همان pid نما را بزنید.

دستور screen پیشرفته

همانطور که می دانید هنگامی که با دستور ssh یا puty به سرور وصل می شویم شما محدود به یک ترمینال هستید و مانند نسخه دسکتاپ لینوکس نمی توانید درخواست چند شل را در یک درخواست دهید. برای این منظور دستور screen امکاناتی در نظر گرفته است که همزمان می توانید چندین پنجره داشته باشید که هر کدام به تعداد دلخواه شل داشته باشند.

نکته: ورودی به کوچک یا بزرگ بودن حروف حساس است.

  • Ctrl+a c افزودن شل جدید در همان پنجره
  • Ctrl+a " لیست کل پنجره ها و شل ها
  • Ctrl+a 0 رفتن به پنجره شماره ۰ (بر اساس شماره)
  • Ctrl+a A تغییر نام پنجره فعلی
  • Ctrl+a S جدا کردن پنجره فعلی به دو قسمت به صورت افقی
  • Ctrl+a | جداکردن پنجره فعلی به دو پنجره به صورت عمودی
  • Ctrl+a tab تغییر پنجره به بعدی

نکته: برای کار در پنجره بعدی باید متوجه این نکته بود که شما فقط پنجره باز کرده اید که دارای هیچ شلی نیست بنابراین باید شل به آن اضافه کرد مطابق دستور اول باید بعد رفتن به پنجره ای که ساخته اید Ctrl+a tab باید شل ایجاد کنید با دستور: Ctrl+a c

  • Ctrl+a Ctrl+a تغییر بین شل کنونی و شل بعدی
  • Ctrl+a Q بستن کلیه پنجره ها به جز پنجره کنونی
  • Ctrl+a X بستن پنجره فعلی


جمع بندی

این مقاله یک آموزش تقریباً کامل برای کار با دستور screen در سرور لینوکس بود که به عنوان مدیر سرور باید قادر باشید از آن استفاده نمایید. خیلی از مواقع در وقت و منابع شما صرفه جویی می کند.

منبع: مدیر سرور

مقالات مرتبط را مطالعه کنید😍

حواله یوان
حواله یوان
شاید وقتی صحبت از نقل‌وانتقالات ارزی مانند ارسال حواله یوان به چین باشد، خیلی‌ها این کار را دشوار و طاقت‌فرسا و پرریسک بدانند. در واقع
حواله روپیه
حواله روپیه به هند ارسال و دریافت حواله روپیه به هند با کمترین نرخ ارسال و دریافت حواله روپیه در کمترین زمان ممکن امکان ارسال
حواله ایران به رومانی
حواله ایران به رومانی شرکت فناوران امید استعلام نرخ ساعت 12 ظهر برای آگاهی از نرخ با پشتیبانی ما در ارتباط باشید:پشتیبان تلگرام @fanavaraneomid_supportپشتیبانی واتساپ:
0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
0
افکار شما را دوست داریم، لطفا نظر دهید.x
اسکرول به بالا