كيفية استخدام أمر شاشة Linux

محطة لينكس على جهاز كمبيوتر محمول مع جلسات طرفية أخرى متراكبة خلفها.

fatmawati achmad zaenuri / Shutterstock



مع Linux screen الأمر ، يمكنك دفع التطبيقات الطرفية قيد التشغيل إلى الخلفية وسحبها للأمام عندما تريد رؤيتها. كما أنه يدعم شاشات تقسيم الشاشة ويعمل أكثر اتصالات SSH ، حتى بعد قطع الاتصال وإعادة الاتصال!

ذات صلة: 10 أوامر لينكس أساسية للمبتدئين





ما هو أمر الشاشة؟

ال screen الأمر هو معدد المحطة ، ومليئة بالخيارات تمامًا. إن القول بأنه يمكن أن يفعل الكثير هو جد بخس. صفحة الرجل يمتد إلى أكثر من 4100 خط .

فيما يلي أكثر الحالات شيوعًا التي قد تستخدم فيها screen الأمر ، وسنتناول هذه الأمور بمزيد من التفصيل في هذه المقالة:



  • تتمثل العملية القياسية في إنشاء نافذة جديدة بها غلاف ، قم بتشغيل ملف يأمر ، ثم ادفع النافذة إلى الخلفية (يسمى فصل). عندما تريد أن ترى كيف تسير العملية ، يمكنك سحب النافذة إلى المقدمة مرة أخرى (إعادة إرفاق) واستخدامها مرة أخرى. يعد هذا أمرًا رائعًا للعمليات الطويلة التي لا تريد إنهاؤها عن طريق الخطأ عن طريق إغلاق نافذة المحطة الطرفية.
  • بمجرد حصولك على screen أثناء تشغيل الجلسة ، يمكنك إنشاء نوافذ جديدة وتشغيل عمليات أخرى فيها. يمكنك التنقل بسهولة بين النوافذ لمراقبة تقدمهم. يمكنك أيضًا تقسيم نافذة المحطة الطرفية إلى مناطق عمودية أو أفقية ، وعرض مختلف screen نوافذ في نافذة واحدة.
  • يمكنك الاتصال بجهاز بعيد ، ابدأ screen الجلسة ، وإطلاق العملية. يمكنك قطع الاتصال بالمضيف البعيد ، وإعادة الاتصال ، وستظل العملية قيد التشغيل.
  • يمكنك مشاركة screen جلسة بين اتصالين SSH مختلفين بحيث يمكن لشخصين رؤية نفس الشيء في الوقت الفعلي.

شاشة التثبيت

لتثبيت screen في ubuntu ، استخدم هذا الأمر:

screen

لتثبيت screen في Manjaro ، استخدم الأمر التالي:



latest_kernel.zip

في Fedora ، اكتب ما يلي:

curl

الشروع في العمل مع الشاشة

لبدء screen ، ما عليك سوى كتابته كما هو موضح أدناه واضغط على Enter:

screen

سترى صفحة معلومات الترخيص. يمكنك الضغط على مفتاح المسافة لقراءة الصفحة الثانية أو إدخال للعودة إلى موجه الأوامر.

الإعلانات

لقد تركت عند موجه الأوامر ، ولا يبدو أن شيئًا قد حدث. ومع ذلك ، فأنت تقوم الآن بتشغيل shell داخل محاكي طرفي متعدد الإرسال. لماذا هذا شيء جيد؟ حسنًا ، لنبدأ عملية ستستغرق وقتًا طويلاً حتى تكتمل. سننزل شفرة المصدر لأحدث إصدار من Linux kernel ونعيد توجيهه إلى ملف يسمى 23167.pts-0.howtogeek.

للقيام بذلك ، نكتب ما يلي:

-ls

يبدأ التنزيل ، و -r يظهر لنا الإخراج التقدم.

لا يمكننا أن نظهر لك صورة للجزء التالي ، لأنه تسلسل ضغط المفاتيح. تكتب Ctrl + A ، وتحرر تلك المفاتيح ، ثم تضغط على d لفصل الشاشة.

لا تزال عملية التنزيل قيد التشغيل ولكن تمت إزالة النافذة التي تعرض التنزيل. ستتم إعادتك إلى النافذة الطرفية التي أطلقت منها exit حصة. تخبرك رسالة أن screen نافذة معنونة screen تم فصله.

أنت بحاجة إلى الرقم من بداية اسم النافذة لإعادة إرفاقه. إذا نسيت ذلك ، يمكنك دائمًا استخدام -S (قائمة) الخيار ، كما هو موضح أدناه ، للحصول على قائمة النوافذ المنفصلة:

screen

عندما تكون جاهزًا ، يمكنك استخدام screen (reattach) الخيار ورقم الجلسة المراد ربطها ، مثل:

-ls

الإعلانات

يتم الآن إرجاع النافذة التي كانت تعمل بعيدًا في الخلفية إلى نافذة جهازك كما لو أنها لم تغادر مطلقًا.

تمت استعادة جلسة الشاشة التي تم إعادة توصيلها إلى نافذة المحطة الطرفية.

إذا كانت العملية ستستمر حتى نهايتها ، فستكتمل في النهاية. إذا كانت عملية مستمرة ، فستحتاج في النهاية إلى إنهاؤها. في كلتا الحالتين ، عندما تنتهي العملية ، يمكنك كتابة screen للخروج من exit. بدلاً من ذلك ، يمكنك الضغط على Ctrl + A ، ثم K لقتل النافذة بالقوة.

اكتب الأمر التالي:

screen

ستتم إعادتك إلى النافذة الطرفية السابقة ، والتي ستظل تعرض الأمر الذي استخدمته لإعادة إرفاق النافذة. نظرًا لأننا أغلقنا نافذتنا الوحيدة والوحيدة المنفصلة ، فقد تلقينا رسالة مفادها screen يتم إنهاء.

ذات صلة: كيفية استخدام curl لتنزيل الملفات من سطر أوامر Linux

استخدام جلسات الشاشة المسماة

يمكنك استخدام dmesg (اسم الجلسة) لتسمية -H حصة. إذا كنت تستخدم اسمًا لا يُنسى بدلاً من الهوية الرقمية للجلسة ، فمن الملائم إعادة الاتصال بالجلسة. نكتب ما يلي لتسمية جلستنا الملف الكبير:

-w

متى dmseg تبدأ جلستنا ، نرى نافذة فارغة مع موجه الأوامر. سنقوم بتنزيل ملف كبير ، حتى نتمكن من استخدام عملية طويلة الأمد كمثال.

نكتب ما يلي:

screen

عند بدء التنزيل ، نضغط على Ctrl + A ، ثم نضغط D لفصل الجلسة. نكتب ما يلي لاستخدام watch (قائمة) الخيار مع vmstat للاطلاع على تفاصيل جلستنا المنفصلة:

vmstat

الإعلانات

خلف المعرف الرقمي (23266) ، نرى اسم جلستنا (الملف الكبير). نكتب ما يلي ، متضمنًا اسم الجلسة ، لإعادة إرفاقها:

screen

لقد أعدنا الاتصال بنافذة التنزيل الخاصة بنا ونرى أن التنزيل الطويل لا يزال قيد التقدم.

عند اكتمال التنزيل ، نكتب dmesg لإغلاق نافذة الجلسة.

استخدام الشاشة مع نوافذ متعددة

حتى الآن ، استخدمنا vmstat لوضع عملية واحدة في الخلفية في نافذة منفصلة. ومع ذلك ، vmstat قادر على فعل أكثر من ذلك بكثير. بعد ذلك ، سنقوم بتشغيل بعض العمليات التي تسمح لنا بمراقبة بعض جوانب جهاز الكمبيوتر الخاص بنا.

نكتب ما يلي لبدء جلسة شاشة تسمى الشاشة:

dmesg

الإعلانات

في موجه الأوامر في جلسة النافذة الجديدة ، سنقوم بذلك إطلاق df واستخدم df (يمكن قراءتها بواسطة الإنسان) و (|) (انتظر الرسائل الجديدة) الخيارات. هذا سوف عرض رسائل المخزن المؤقت kernel ؛ ستظهر الرسائل الجديدة فور ورودها.

نكتب ما يلي:

dmesg

تظهر الرسائل الموجودة. لم يتم إرجاعنا إلى موجه الأوامر بسبب screen ينتظر الرسائل الجديدة ، وسيعرضها فور وصولها.

ذات صلة: كيفية استخدام الأمر dmesg على نظام Linux

نريد تشغيل تطبيق آخر ، لذلك نحتاج إلى ssh جديد نافذة او شباك. نضغط على Ctrl + A ، ثم C لإنشاء نافذة جديدة. سنستخدم screen ل مرارا وتكرارا تشغيل top ، حتى نحصل على تحديث متكرر عرض استخدام الذاكرة الظاهرية على جهاز الكمبيوتر الخاص بنا.

في موجه الأوامر الجديد ، نكتب ما يلي:

screen

ال top يظهر الإخراج والتحديث كل ثانيتين.

عمليتينا قيد التشغيل الآن. للقفز بين exit windows ، تضغط على Ctrl + A ، ورقم النافذة. أول ما أنشأناه هو النافذة صفر (0) ، التالي هو النافذة 1 ، وهكذا. للانتقال إلى النافذة الأولى (screen واحد) ، نضغط على Ctrl + A و 0.

إذا ضغطنا على Ctrl + A و 1 ، فسيتم إرجاعنا إلى top نافذة او شباك.

هذا جميل جدا! يمكننا الضغط على Ctrl + A ، ثم D للفصل من هذه الجلسة ؛ يمكننا إعادة الربط لاحقًا. ستظل كلتا الدورتين قيد التشغيل. مرة أخرى ، للتبديل بين النوافذ ، نضغط على Ctrl + A ورقم (0 أو 1) النافذة التي نريد التبديل إليها.

دعنا ننتقل إلى الخطوة التالية ونعرض كلتا الشاشتين في نافذة واحدة. عند القيام بذلك ، ستمدد نافذة المحطة إلى الحجم الذي يجعل هذه الخطوة مفيدة. أمثلةنا مقيدة بحجم لقطات الشاشة لدينا ، لذلك ستبدو نوافذنا ضيقة قليلاً.

الإعلانات

للقيام بذلك ، نضغط على Ctrl + A ، ثم Shift + S (مطلوب حرف S كبير).

النافذة تنقسم إلى منطقتين.

لا تزال المنطقة العلوية تعرض screen ، والمنطقة السفلية فارغة. تم تمييز المؤشر في لقطة الشاشة أدناه. لنقلها إلى المنطقة السفلية ، نضغط على Ctrl + A ، ثم Tab.

يتحرك المؤشر إلى المنطقة السفلية ، والتي هي في الحقيقة مجرد مساحة فارغة. إنها ليست صدفة ، لذا لا يمكننا كتابة أي شيء فيها. للحصول على عرض مفيد ، نضغط على Ctrl + A ، ثم نضغط على 0 لعرض -d نافذة في هذه المنطقة.

هذا يعطينا كلا النواتج الحية في نافذة واحدة مقسمة. إذا ضغطنا على Ctrl + A و D لفصل النافذة ، ثم أعدنا إرفاقها ، فسوف نفقد عرض الجزء المنقسم. ومع ذلك ، يمكننا استعادته باستخدام اختصارات لوحة المفاتيح التالية:

    Ctrl + A ، S:قم بتقسيم النافذة أفقيًا. السيطرة + أو فاتورة غير مدفوعة: انتقل إلى المنطقة السفلية. Ctrl + A ، 0:عرض النافذة صفر في المنطقة السفلية.

يمكننا أن نأخذ الأمور خطوة إلى الأمام. سنقوم الآن بتقسيم الجزء السفلي عموديًا ، وإضافة عملية ثالثة إلى العرض. مع وجود المؤشر في المنطقة السفلية ، نضغط على Ctrl + A و C لإنشاء نافذة جديدة بها غلاف. تعرض المنطقة السفلية النافذة الجديدة وتعطينا موجه أوامر.

بعد ذلك ، نقوم بتشغيل -m الأمر ل تحقق من استخدام نظام الملفات :

screen

الإعلانات

عندما نرى -x قيد التشغيل ، نضغط على Ctrl + A وحرف الأنبوب screen. هذا يقسم المنطقة السفلية عموديًا. نضغط على Ctrl + A و Tab للانتقال إلى المنطقة الجديدة. بعد ذلك ، نضغط على Ctrl + A و 0 لعرض screen نافذة او شباك.

يمكنك أيضًا الانتقال من منطقة إلى أخرى ، وإضافة المزيد من الانقسامات الرأسية أو الأفقية. فيما يلي بعض مجموعات المفاتيح الأكثر فائدة:

    Ctrl + A:قفز ذهابًا وإيابًا بين المناطق الحالية والسابقة. Ctrl + A ، س:أغلق جميع المناطق باستثناء المنطقة الحالية. Ctrl + A ، X:أغلق المنطقة الحالية.

استخدام الشاشة عبر SSH

باستخدام screen ، يمكنك بدء جلسة نافذة ، وفصلها حتى تظل تعمل في الخلفية ، وتسجيل الخروج أو الدخول مرة أخرى ، ثم إعادة توصيل الجلسة.

دعونا نصنع SSH الاتصال بجهاز الكمبيوتر الخاص بنا من واحد مختلف مع

sudo apt-get install screen
يأمر. يتعين علينا تقديم اسم الحساب الذي سنقوم بالاتصال به وعنوان الكمبيوتر البعيد.

على سبيل المثال لدينا ، نكتب ما يلي:

sudo pacman -Sy screen

بعد المصادقة على الكمبيوتر البعيد وتسجيل الدخول ، نكتب ما يلي لبدء

sudo dnf install screen
جلسة تسمى ssh-geek:

screen

لأغراض توضيحية ، سنقوم بتشغيل

curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip
في
screen -ls
نافذة ، ولكن يمكنك البدء في أي عملية طويلة الأمد أو لا نهاية لها.

نكتب ما يلي:

screen -r 23167

الإعلانات

مرة واحدة

exit
يعمل في النافذة ، نضغط على Ctrl + A ، ثم D لفصل النافذة.

لقد عدنا إلى نافذة المحطة الطرفية الأصلية البعيدة.

عاد المستخدم إلى نافذة المحطة الأصلية الخاصة به

إذا قمنا بكتابة

screen -S bigfile
، كما هو موضح أدناه ، فإنه يقطع اتصال جلسة SSH ونعود إلى الكمبيوتر المحلي الخاص بنا:

curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

نكتب ما يلي لإعادة الاتصال:

screen -ls

بعد إعادة الاتصال بنا وتسجيل الدخول ، يمكننا كتابة ما يلي لإعادة إرفاق

screen -r bigfile
حصة:

screen -S monitor

تمت إعادة الاتصال الآن بمثيلنا الذي لا يزال قيد التشغيل من

dmesg -H -w
.

يعد هذا أمرًا رائعًا إذا كنت تريد بدء عملية على جهاز واحد ، ثم المتابعة من حيث توقفت على جهاز آخر.

ذات صلة: كيفية إنشاء وتثبيت مفاتيح SSH من Linux Shell

مشاركة جلسة الشاشة

يمكنك أيضًا استخدام

watch vmstat
جلسة للسماح لشخصين برؤية النافذة نفسها والتفاعل معها. لنفترض أن شخصًا ما يقوم بتشغيل Fedora على جهاز الكمبيوتر الخاص به يريد الاتصال بخادم Ubuntu الخاص بنا.

سيكتب ما يلي:

df

بعد الاتصال ، يبدأ جلسة شاشة تسمى ssh-geek باستخدام الخيار -S (اسم الجلسة). كما أنه يستخدم

ssh dave@192.168.4.30
(فصل) و
screen -S ssh-geek
(إنشاء إجباري) لإنشاء
top
جديد جلسة تم فصلها بالفعل.

يكتب ما يلي:

exit

الإعلانات

يكتب ما يلي ، باستخدام

ssh dave@192.168.4.30
(وضع الشاشات المتعددة) الخيار لإرفاق الجلسة:

screen -r ssh-geek

على كمبيوتر Manjaro ، يتصل شخص آخر بكمبيوتر Ubuntu بنفس بيانات اعتماد الحساب ، كما هو موضح أدناه:

ssh dave@192.168.4.30

بمجرد أن تتصل ، تكتب

screen -d -m -S ssh-geek
الأمر ويستخدم الخيار -X (وضع الشاشات المتعددة) للانضمام إلى جلسة النافذة نفسها ، مثل:

screen -x ssh-geek

الآن ، أي شيء يكتبه أي شخص ، سيرى الآخر. على سبيل المثال ، عندما يصدر شخص ما أمر التاريخ ، يراه كلاهما كما هو مكتوب ، بالإضافة إلى نتائجه.

يقوم كلا الشخصين الآن بمشاركة

ssh dave@192.168.4.1
جلسة تعمل على كمبيوتر Ubuntu بعيد.


بالنسبة لجزء من البرنامج الذي رأى النور لأول مرة في عام 1987 ،

screen -X ssh-geek
لا يزال يحزم حزمة إنتاجية جيدة. التعرف على هذا الأمر سيكون وقتًا ممتعًا!

ذات صلة: 37 أوامر لينكس مهمة يجب أن تعرفها

أوامر لينكس
الملفات قطران · الكهروضوئية · قط · تاك · chmod · سيطرة · فرق · سيد · مع · رجل · Pushd · popd · fsck · اختبار · فيما يليها · فد · باندوك · قرص مضغوط · المسار $ · awk · انضم · جي ق · يطوى · فريد · جورنال سي تي ال · ذيل · حالة · ls · fstab · رما - طرد - قذف · أقل · chgrp · تشاون · مراجعة · نظرة · سلاسل · نوع · إعادة تسمية · أزيز · بفك · تتعدد · أومونت · تثبيت · fdisk · مكفس · جمهورية مقدونيا · rmdir · رسينك · مدافع · gpg · نحن · نانو · مكدير · ال · ln · تصحيح · يتحول · rclone · أجاد · SRM
العمليات الاسم المستعار · شاشة · أعلى · لطيف · رائع · تقدم · دعامة · النظام · تمكس · chsh · التاريخ · في · حزمة · مجانا · التي · dmesg · usermod · ملاحظة · الجذور · xargs · tty · الخنصر · lsof · vmstat · نفذ الوقت · حائط · نعم · قتل · نايم · سودو · له · زمن · المجموعة · usermod · مجموعات · lshw · اغلق · اعادة التشغيل · توقف · انقطاع التيار الكهربائي · passwd · lscpu · كرونتاب · تاريخ · bg · fg
الشبكات netstat · بينغ · مسار التتبع · IP · ss · الذي هو · fail2ban · bmon · أنت · اصبع اليد · nmap · بروتوكول نقل الملفات · لفة · wget · من الذى · من أنا · في · iptables · ssh-كجن · ufw

ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين

اقرأ التالي صورة الملف الشخصي لـ Dave McKay ديف مكاي
استخدم Dave McKay أجهزة الكمبيوتر لأول مرة عندما كان الشريط الورقي المثقوب رائجًا ، وهو يقوم بالبرمجة منذ ذلك الحين. بعد أكثر من 30 عامًا في صناعة تكنولوجيا المعلومات ، أصبح الآن صحفيًا متخصصًا في مجال التكنولوجيا. خلال مسيرته المهنية ، عمل كمبرمج مستقل ، ومدير فريق تطوير برمجيات دولي ، ومدير مشروع خدمات تكنولوجيا المعلومات ، ومؤخراً كمسؤول حماية البيانات. تم نشر كتاباته على موقع howtogeek.com و cloudavvyit.com و itenterpriser.com و opensource.com. ديف هو مبشر لينكس ومدافع مفتوح المصدر.
اقرأ السيرة الذاتية الكاملة

مقالات مثيرة للاهتمام