اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

10 مثال از دستورات Screen برای مدیریت Terminal های لینوکس

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    10 مثال از دستورات Screen برای مدیریت Terminal های لینوکس

    دستور screen در لینوکس می تواند یک ترمینال را بین چندین پروسس (معمولا شل های تعاملی) به اشتراک می گذارد. screen به یوزر اجازه می دهد که چندین ترمینال جداگانه را درون یک پنجره ترمینال باز کند.

    اگر شما با چندین برنامه از اینترفیس کامند لاین یا برنامه های جداگانه با شل ترمینال سرو کار دارید، دستور screen بسیار مفید است. همچنین screen این اجازه را به شما می دهد که session خود را با دیگر یوزر ها شیر کنید و session های ترمینال را attach/detach کنید.

    بر روی Ubuntu 10.04 ورژن سرور، برنامه screen به صورت پیش فرض نصب می باشد. اما در لینوکس mint برنامه screen به صورت پیش فرض نصب نیست، اول باید آن را با دستور apt-get نصب کنیم. لطفا با یکی از کامندهای زیر پروسه نصب را دنبال کنید.
    کد:
    # apt-get install screen (On Debian based Systems)
    کد:
    # yum install screen (On RedHat based Systems)
    در واقع، screen یک دستور مفید در لینوکس است که درون صدها دستور لینوکس مخفی شده است. بریم تا کاربرد screen رو ببینیم.


    همچنین توصیه میشود مطالعه کنید :

    Terminator - یک شبیه ساز ترمینال برای مدیریت چندین پنجره Terminal در Linux

    ابزار Teleconsole برای به اشتراک گذاشتن ترمینال لینوکس با دوستان تان

    ابزار Tmux - مشاهده و مدیریت تمام پنجره های ترمینال لینوکس در یکجا

    GoTTY - به اشتراک گذاشتن ترمینال لینوکس تان (TTY) همانند یک نرم افزار تحت وب

    MultiTail - مانیتور همزمان چندین فایل در یک ترمینال لینوکس



    شروع screen برای بار اول

    دستور screen را در کامند پرامپت تایپ کنید. screen یک اینترفیس دقیقا شبیه کامند پرامپت را نشان می دهد.
    کد:
    pungki@mint ~ $ screen


    نمایش پارامتر های screen

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

    Ctrl-A و ؟ را تایپ کنید. بنابراین شما تمام دستورات و پارامتر ها را بر روی صفحه خواهید دید.
    کد:
                                                                 Screen key bindings, page 1 of 1.
    
                                                                 Command key:  ^A   Literal ^A:  a
    
      break       ^B b         flow        ^F f         lockscreen  ^X x         pow_break   B            screen      ^C c         width       W
      clear       C            focus       ^I           log         H            pow_detach  D            select      '            windows     ^W w
      colon       :            hardcopy    h            login       L            prev        ^H ^P p ^?   silence     _            wrap        ^R r
      copy        ^[ [         help        ?            meta        a            quit        \            split       S            writebuf    >
      detach      ^D d         history     { }          monitor     M            readbuf     <            suspend     ^Z z         xoff        ^S s
      digraph     ^V           info        i            next        ^@ ^N sp n   redisplay   ^L l         time        ^T t         xon         ^Q q
      displays    *            kill        K k          number      N            remove      X            title       A
      dumptermcap .            lastmsg     ^M m         only        Q            removebuf   =            vbell       ^G
      fit         F            license     ,            other       ^A           reset       Z            version     v
    
    ^]  paste .
    "   windowlist -b
    -   select -
    0   select 0
    1   select 1
    2   select 2
    3   select 3
    4   select 4
    5   select 5
    6   select 6
    7   select 7
    8   select 8
    9   select 9
    I   login on
    O   login off
    ]   paste .
    برای خارج شدن از صفحه help می توانید دکمه “space-bar” یا “Enter“ را فشار دهید. (به این نکته توجه کنید که shortcut ها بدون کوتیشن هستند)



    Detach کردن Screen

    یکی از فواید screen این است که می توانیم آن را detach کنیم. بعد شما می توانید ان را بدون از دست دادن چیزی restore کنید. اینجا یک سناریو برای نمونه است :

    شما با ssh به سرورتان متصل شده اید. و در حال دانلود 400MB patch برای سیستم تان به وسیله دستور wget هستید.

    پروسس دانلود تقریبا 2 ساعت طول می کشد. اگر شما SSH session را قطع کنید، یا ارتباط به صورت تصادفی قطع شود، پروسه دانلود قطع می شود. و شما مجبورید از اول دوباره شروع کنید. برای جلوگیری از این کار می توانید از screen استفاده کنید و آن را detach کنید.

    به این دستور نگاه کنید. اول باید دستور screen را تایپ کنید.
    کد:
    pungki@mint ~ $ screen
    بعد شما می توانید دانلود را انجام بدهید. برای مثال بر روی لینوکس mint من، من در حال آپگرید پکیج با استفاده از دستور apt-get هستم.
    کد:
    pungki@mint ~ $ sudo apt-get install dpkg
    نمونه خروجی
    کد:
    Reading package lists... Done
    Building dependency tree      
    Reading state information... Done
    The following packages will be upgraded:
      dpkg
    1 upgraded, 0 newly installed, 0 to remove and 1146 not upgraded.
    Need to get 2,583 kB of archives.
    After this operation, 127 kB of additional disk space will be used.
    Get:1 http://debian.linuxmint.com/latest/ testing/main dpkg i386 1.16.10 [2,583 kB]
    47% [1 dpkg 1,625 kB/2,583 kB 47%]                                        14,7 kB/s
    وقتی دانلود در حال انجام است، شما می توانید “Ctrl-A” و “d“ را فشار دهید. وقتی این دکمه ها را فشار دهید چیزی نخواهید دید. خروجی به صورت زیر خواهد بود:
    کد:
    [detached from 5561.pts-0.mint]
    pungki@mint ~ $


    Re-attach کردن screen

    بعد از اینکه عمل detach را انجام دادید، به فرض SSH session تان را قطع کردید و به خانه رفتید. در خانه دوباره ssh را استارت کردید و می خواهید پیشرفت پروسه دانلودتان را مشاهده کنید. برای این کار نیاز دارید که screen را restore کنید. می توانید از دستور زیر استفاده کنید:
    کد:
    pungki@mint ~ $ screen -r
    و مشاهده خواهید کرد که پروسسی را که رها یا قطع کرده بودید هنوز در حال اجراست.

    وقتی بیش از یک سشن screen دارید، شما باید ID سشن screen را تایپ کنید. از دستور screen -ls استفاده کنید تا ببینید چند تا scrren موجود است.
    کد:
    pungki@mint ~ $ screen -ls
    نمونه خروجی
    کد:
    pungki@mint ~ $ screen -ls
    There are screens on:
            7849.pts-0.mint (10/06/2013 01:50:45 PM)        (Detached)
            5561.pts-0.mint (10/06/2013 11:12:05 AM)        (Detached)
    2 Sockets in /var/run/screen/S-pungki
    اگر می خواهید screen 7849.pts-0.mint را restore کنید، این دستور را تایپ کنید.
    کد:
    pungki@mint ~ $ screen -r 7849


    استفاده از چند screen

    وقتی به بیش از یک screen برای انجام کارتان نیاز دارید، چنین امکانی فرآهم شده است؟ بله هست. شما می توانید چندین screen را همزمان اجرا کنید. برای انجام این کار 2 راه وجود دارد.

    اول، می توانید screen اول را detach کنید و بعد screen دیگری را بر روی ترمینال واقعی اجرا کنید. دوم، به صورت تو در تو screen را اجرا کنید.



    سوئیچ بین screen ها

    وقتی screen های تو در تو دارید، می توانید با دستور “Ctrl-A” و “n“ بین screen ها سوئیچ کنید. با این کار به screen بعدی خواهید رفت. وقتی می خواهید به screen قبلی بروید از “Ctrl-A” و “p“ استفاده کنید.

    برای ایجاد یک screen جدید، “Ctrl-A” و “c“ را فشار دهید.



    لاگ گیری هر چیزی که انجام داده اید

    بعضی وقت ها لازم است هر چیزی را که بر روی کنسول انجام داده اید رکورد کنید. فرض که شما یک ادمین لینوکس هستید که سرورهای لینوکس زیادی را مدیریت می کنید.

    با لاگ گیری screen، دیگر نیازی ندارید هر دستوری که انجام داده اید را یادداشت کنید. برای فعال کردن لاگ گیری screen، دکمه های “Ctrl-A” و “H“ را فشار دهید.

    در گوشه سمت چپ پایین screen، یک پیام به این مضمون خواهد بود: Creating logfile screenlog.0. شما فایل screenlog.0 را در پوشه home تان پیدا خواهید کرد.

    این ویژگی همه چیز را که در screen انجام داده اید را اضافه خواهد کرد.برای بستن لاگ گیری "Ctrl-A" و "H" را فشار دهید.
    یک راه دیگر برای اکتیو کردن ویژگی لاگ گیری، اضافه کردن پارامتر “-L” به دستور screen برای اولین بار است. دستور به شکل زیر خواهد بود.
    کد:
    pungki@mint ~ $ screen -L


    قفل کردن screen

    شما می توانید با دکمه های “Ctrl-A” و “x” اسکرین را lock کنید. اگر می خواهید screen تان را سریع قفل کنید این آسانترین راه است. این جا یک نمونه خروجی از قفل کردن screen را مشاهده می کنید.
    کد:
    Screen used by Pungki Arianto  on mint.
    Password:
    شما می توانید از پسورد لینوکس تان برای قفل گشایی آن استفاده کنید.



    اضافه کردن پسورد برای قفل کردن screen

    برای مسائل امنیتی، شاید بخواهید روی سشن screen تان password تعیین کنید. هر وقت بخواهید screen را reattach کنید این پسورد از شما پرسیده خواهد شد. این پسورد از مکانیزم Lock Screen بالا متفاوت خواهد بود.

    برای امن کردن پسورد screen تان ، می توانید فایل "$HOME/.screenrc" را ادیت کنید. اگر فایل موجود نبود ، می توانید به صورت دستی آن را ایجاد کنید. syntax به صورت زیر خواهد بود.

    کد:
    password crypt_password
    برای ایجاد “crypt_password” در بالا ، می توانید از دستور “mkpasswd” در لینوکس استفاده کنید. در اینجا دستور را با پسورد “pungki123“ می بینید.
    کد:
    pungki@mint ~ $ mkpasswd pungki123
    l2BIBzvIeQNOs
    mkpasswd یک hash پسورد به صورت بالا خواهد ساخت. وقتی hash password را گرفتید، آن را در فایل “.screenrc” تان کپی کنید و آن را ذخیره کنید. بنابراین فایل “.screenrc” به شکل زیر خواهد بود.
    کد:
    password l2BIBzvIeQNOs
    دفعه بعدی که screen را اجرا کردید و بعد آن را detach کردید، وقتی می خواهید آن را re-attach کنید پسورد از شما پرسیده خواهد شد، مانند دستور زیر:
    کد:
    pungki@mint ~ $ screen -r 5741
    Screen password:
    پسوردتان را که “pungki123” است را تایپ کنید و screen دوباره re-attach خواهد شد.

    بعد از این که پسورد screen را اعمال کردید و “Ctrl-A” و “x” را فشار دادید، خروجی به شکل زیر خواهد بود.
    کد:
    Screen used by Pungki Arianto  on mint.
    Password:
    Screen password:
    دو بار پسورد از شما پرسیده خواهد شد. اولین پسورد، همان پسورد لینوکس شماست و دومین پسورد، پسوردی است که در فایل .screenrc قرار داده اید.



    رها کردن screen

    دو راه برای رها کردن screen وجود دارد. اول، از “Ctrl-A” و “d” برای detach کردن screen استفاده می کنیم. دوم، می توانیم از دستور exit برای تمام کردن screen استفاده کنیم. همچنین می توانید از “Ctrl-A” و “K” برای kill کردن screen استفاده کنید.

    اینها مصارف روزانه از دستور screen هست. ویژگی های زیادی درون دستور screen هست. برای جزئیات بیشتر به صفحه man دستور مراجعه کنید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 11-15-2021, 01:12 AM.
    اینستاگرام انجمن لینوکس ایران : https://www.instagram.com/iranlinuxforum

درباره انجمن منطقه لینوکسی ها

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

شبکه های اجتماعی
در حال انجام ...
X