كيفية استخدام أمر شاشة Linux
باستخدام screen
أمر Linux ، يمكنك دفع التطبيقات الطرفية قيد التشغيل إلى الخلفية وسحبها للأمام عندما تريد رؤيتها. كما أنه يدعم شاشات تقسيم الشاشة ويعمل عبر اتصالات SSH ، حتى بعد قطع الاتصال وإعادة الاتصال!
ما هو أمر الشاشة؟
و screen
الأمر معدد المحطة، وانها معبأة تماما مع الخيارات. إن القول بأنه يمكن أن يفعل الكثير هو جد بخس. تصل صفحة الدليل إلى أكثر من 4100 سطر.
فيما يلي أكثر الحالات شيوعًا التي قد تستخدم فيها screen
الأمر ، وسنتناولها بمزيد من التفصيل في هذه المقالة:
- تتمثل العملية القياسية في إنشاء نافذة جديدة بها غلاف ، وتشغيل أمر ، ثم دفع النافذة إلى الخلفية (تسمى "الفصل"). عندما تريد أن ترى كيف تسير العملية ، يمكنك سحب النافذة إلى المقدمة مرة أخرى ("إعادة التثبيت") واستخدامها مرة أخرى. يعد هذا أمرًا رائعًا للعمليات الطويلة التي لا تريد إنهاءها عن طريق الخطأ عن طريق إغلاق نافذة الجهاز.
- بمجرد
screen
تشغيل الجلسة ، يمكنك إنشاء نوافذ جديدة وتشغيل عمليات أخرى فيها. يمكنك التنقل بسهولة بين النوافذ لمراقبة تقدمهم. يمكنك أيضًا تقسيم نافذة المحطة الطرفية إلى مناطق عمودية أو أفقية ، وعرضscreen
نوافذك المختلفة في نافذة واحدة. - يمكنك الاتصال بجهاز بعيد وبدء
screen
جلسة وبدء عملية. يمكنك قطع الاتصال بالمضيف البعيد ، وإعادة الاتصال ، وستظل العملية قيد التشغيل. - يمكنك مشاركة
screen
جلسة بين اتصالين SSH مختلفين بحيث يمكن لشخصين رؤية نفس الشيء في الوقت الفعلي.
شاشة التثبيت
للتثبيت screen
على ubuntu ، استخدم هذا الأمر:
sudo apt-get install screen
للتثبيت screen
على Manjaro ، استخدم الأمر التالي:
sudo pacman -Sy screen
في Fedora ، اكتب ما يلي:
sudo dnf تثبيت الشاشة
الشروع في العمل مع الشاشة
للبدء screen
، ما عليك سوى كتابته كما هو موضح أدناه واضغط على Enter:
شاشة
سترى صفحة معلومات الترخيص. يمكنك الضغط على مفتاح المسافة لقراءة الصفحة الثانية أو إدخال للعودة إلى موجه الأوامر.
لقد تركت عند موجه الأوامر ، ولا يبدو أن شيئًا قد حدث. ومع ذلك ، فأنت تقوم الآن بتشغيل قذيفة داخل محاكي طرفي متعدد الإرسال. لماذا هذا شيء جيد؟ حسنًا ، لنبدأ عملية ستستغرق وقتًا طويلاً حتى تكتمل. سنقوم بتنزيل الكود المصدري لأحدث إصدار من Linux kernel وإعادة توجيهه إلى ملف يسمى latest_kernel.zip
.
للقيام بذلك ، نكتب ما يلي:
curl //cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz> latest_kernel.zip
يبدأ التنزيل الخاص بنا ، curl
ويظهر لنا الإخراج التقدم.
لا يمكننا أن نظهر لك صورة للجزء التالي ، لأنه تسلسل ضغط المفاتيح. تكتب Ctrl + A ، وتحرر تلك المفاتيح ، ثم تضغط على d لفصل الشاشة.
لا تزال عملية التنزيل قيد التشغيل ولكن تمت إزالة النافذة التي تعرض التنزيل. ستعود إلى نافذة المحطة التي بدأت منها screen
الجلسة. تخبرك رسالة بأنه تم فصل screen
نافذة تحمل اسمًا 23167.pts-0.howtogeek
.
أنت بحاجة إلى الرقم من بداية اسم النافذة لإعادة إرفاقه. إذا نسيت ذلك ، فيمكنك دائمًا استخدام -ls
خيار (القائمة) ، كما هو موضح أدناه ، للحصول على قائمة بالنوافذ المنفصلة:
شاشة -LS
عندما تكون جاهزًا ، يمكنك استخدام -r
خيار (إعادة التثبيت) ورقم الجلسة لإعادة التوصيل ، مثل:
شاشة -r 23167
يتم الآن إرجاع النافذة التي كانت تعمل بعيدًا في الخلفية إلى نافذة جهازك كما لو أنها لم تغادر أبدًا.
إذا كانت العملية ستستمر حتى نهايتها ، فستكتمل في النهاية. إذا كانت عملية مستمرة ، فستريد في النهاية إنهاؤها. في كلتا الحالتين ، عندما تنتهي العملية ، يمكنك الكتابة exit
للخروج من ملف screen
. بدلاً من ذلك ، يمكنك الضغط على Ctrl + A ، ثم K لقتل النافذة بالقوة.
اكتب الأمر التالي:
خروج
ستتم إعادتك إلى النافذة الطرفية السابقة ، والتي ستظل تعرض الأمر الذي استخدمته لإعادة إرفاق النافذة. نظرًا لأننا أغلقنا نافذتنا الوحيدة والمنفصلة ، فقد تلقينا رسالة screen
تنتهي.
ذات صلة: كيفية استخدام curl لتنزيل الملفات من سطر أوامر Linux
استخدام جلسات الشاشة المسماة
يمكنك استخدام خيار -S
(اسم الجلسة) لتسمية screen
جلستك. إذا كنت تستخدم اسمًا لا يُنسى بدلاً من الهوية الرقمية للجلسة ، فمن الملائم إعادة الاتصال بالجلسة. نكتب ما يلي لتسمية جلستنا "الملف الكبير":
شاشة -S bigfile
عند screen
بدء جلستنا ، نرى نافذة فارغة مع موجه الأوامر. سنقوم بتنزيل ملف كبير ، حتى نتمكن من استخدام عملية طويلة الأمد كمثال.
نكتب ما يلي:
curl //ipv4.download.thinkbroadband.com/1GB.zip> bigfile.zip
عند بدء التنزيل ، نضغط على Ctrl + A ، ثم نضغط D لفصل الجلسة. نكتب ما يلي لاستخدام -ls
خيار (list) مع screen
للاطلاع على تفاصيل جلستنا المنفصلة:
شاشة -LS
خلف المعرف الرقمي (23266) ، نرى اسم جلستنا (الملف الكبير). نكتب ما يلي ، متضمنًا اسم الجلسة ، لإعادة إرفاقها:
شاشة -r bigfile
لقد قمنا بإعادة الاتصال بنافذة التنزيل الخاصة بنا ونرى أن التنزيل الطويل لا يزال قيد التقدم.
عند اكتمال التنزيل ، نكتب exit
لإغلاق نافذة الجلسة.
استخدام الشاشة مع نوافذ متعددة
حتى الآن ، اعتدنا screen
على وضع عملية واحدة في الخلفية في نافذة منفصلة. ومع ذلك ، screen
فهو قادر على فعل أكثر من ذلك بكثير. بعد ذلك ، سنقوم بتشغيل بعض العمليات التي تسمح لنا بمراقبة بعض جوانب جهاز الكمبيوتر الخاص بنا.
نكتب ما يلي لبدء جلسة شاشة تسمى "الشاشة":
شاشة -S مراقب
في موجه الأوامر في جلسة النافذة الجديدة ، سنطلق dmesg
ونستخدم خياري -H
(يمكن للبشر قراءته) و -w
(انتظر رسائل جديدة). سيعرض هذا رسائل المخزن المؤقت kernel؛ ستظهر الرسائل الجديدة فور ورودها.
نكتب ما يلي:
dmesg -H -w
تظهر الرسائل الموجودة. لم نعد إلى موجه الأوامر لأننا dmseg
ننتظر رسائل جديدة ، وسوف نعرضها فور وصولها.
ذات صلة: كيفية استخدام الأمر dmesg على نظام Linux
نريد تشغيل تطبيق آخر ، لذلك نحتاج إلى screen
نافذة جديدة . نضغط على Ctrl + A ، ثم C لإنشاء نافذة جديدة. watch
سنستخدمها للتشغيل بشكل متكرر vmstat
، لذلك نحصل على عرض يتم تحديثه باستمرار لاستخدام الذاكرة الافتراضية على جهاز الكمبيوتر الخاص بنا.
في موجه الأوامر الجديد ، نكتب ما يلي:
مشاهدة vmstat
و vmstat
يبدو الانتاج وتحديث كل ثانيتين.
عمليتنا قيد التشغيل الآن. للتنقل بين screen
النوافذ ، اضغط على Ctrl + A ، ورقم النافذة. أول ما أنشأناه هو النافذة صفر (0) ، التالي هو النافذة 1 ، وهكذا. للانتقال إلى النافذة الأولى (النافذة dmesg
) ، نضغط على Ctrl + A و 0.
إذا ضغطنا على Ctrl + A و 1 ، فإنه يعيدنا إلى vmstat
النافذة.
هذا جميل جدا! يمكننا الضغط على Ctrl + A ، ثم D للفصل من هذه الجلسة ؛ يمكننا إعادة الربط لاحقًا. ستظل كلتا الدورتين قيد التشغيل. مرة أخرى ، للتبديل بين النوافذ ، نضغط على Ctrl + A ورقم (0 أو 1) النافذة التي نريد التبديل إليها.
دعنا ننتقل إلى الخطوة التالية ونعرض كلتا الشاشتين في نافذة واحدة. عند القيام بذلك ، ستقوم بتمديد نافذة الجهاز إلى الحجم الذي يجعل هذه الخطوة مفيدة. أمثلةنا مقيدة بحجم لقطات الشاشة لدينا ، لذلك ستبدو نوافذنا ضيقة قليلاً.
للقيام بذلك ، نضغط على Ctrl + A ، ثم Shift + S (مطلوب حرف "S" كبير).
تنقسم النافذة إلى "منطقتين".
لا تزال المنطقة العلوية تظهر vmstat
، والمنطقة السفلية فارغة. تم تمييز المؤشر في لقطة الشاشة أدناه. لنقلها إلى المنطقة السفلية ، نضغط على Ctrl + A ، ثم Tab.
يتحرك المؤشر إلى المنطقة السفلية ، والتي هي في الحقيقة مجرد مساحة فارغة. إنها ليست صدفة ، لذا لا يمكننا كتابة أي شيء فيها. للحصول على عرض مفيد ، نضغط على Ctrl + A ، ثم نضغط على "0" لعرض dmesg
النافذة في هذه المنطقة.
هذا يعطينا كلا النواتج الحية في نافذة واحدة مقسمة. إذا ضغطنا على Ctrl + A و D لفصل النافذة ، ثم أعدنا إرفاقها ، فسوف نفقد عرض الجزء المنقسم. ومع ذلك ، يمكننا استعادته باستخدام اختصارات لوحة المفاتيح التالية:
- Ctrl + A، S: انقسام النافذة أفقيًا.
- Ctrl + A ، Tab: الانتقال إلى المنطقة السفلية.
- Ctrl + A ، 0: عرض النافذة صفر في المنطقة السفلية.
يمكننا أن نأخذ الأمور خطوة إلى الأمام. سنقوم الآن بتقسيم الجزء السفلي عموديًا ، وإضافة عملية ثالثة إلى الشاشة. مع وجود المؤشر في المنطقة السفلية ، نضغط على Ctrl + A و C لإنشاء نافذة جديدة بها غلاف. تعرض المنطقة السفلية النافذة الجديدة وتعطينا موجه أوامر.
بعد ذلك ، نقوم بتشغيل df
الأمر للتحقق من استخدام نظام الملفات:
مدافع
عندما نرى df
الجري ، نضغط على Ctrl + A وحرف الأنبوب (|)
. هذا يقسم المنطقة السفلية عموديًا. نضغط على Ctrl + A و Tab للانتقال إلى المنطقة الجديدة. بعد ذلك ، نضغط على Ctrl + A و 0 لعرض dmesg
النافذة.
يمكنك أيضًا الانتقال من منطقة إلى أخرى ، وإضافة المزيد من الانقسامات الرأسية أو الأفقية. فيما يلي بعض مجموعات المفاتيح المفيدة:
- Ctrl + A: قفز ذهابًا وإيابًا بين المناطق الحالية والسابقة.
- Ctrl + A ، Q: أغلق جميع المناطق باستثناء المنطقة الحالية.
- Ctrl + A ، X: أغلق المنطقة الحالية.
استخدام الشاشة عبر SSH
باستخدام screen
، يمكنك بدء جلسة نافذة ، وفصلها بحيث تظل قيد التشغيل في الخلفية ، وتسجيل الخروج أو الدخول مرة أخرى ، وإعادة توصيل الجلسة.
لنقم بإجراء اتصال SSH بجهاز الكمبيوتر الخاص بنا من جهاز مختلف باستخدام ssh
الأمر. يتعين علينا تقديم اسم الحساب الذي سنتصل به وعنوان الكمبيوتر البعيد.
على سبيل المثال لدينا ، نكتب ما يلي:
ssh [email protected]
بعد المصادقة على الكمبيوتر البعيد وتسجيل الدخول ، نكتب ما يلي لبدء screen
جلسة تسمى "ssh-geek":
شاشة ssh-geek
لأغراض العرض التوضيحي ، سنعمل top
في screen
النافذة ، ولكن يمكنك بدء أي عملية طويلة الأمد أو لا نهاية لها
نكتب ما يلي:
أعلى
بمجرد top
تشغيل النافذة ، نضغط على Ctrl + A ، ثم D لفصل النافذة.
لقد عدنا إلى نافذة المحطة الطرفية الأصلية البعيدة.
إذا exit
كتبنا ، كما هو موضح أدناه ، فسيقوم بفصل جلسة SSH ونعود إلى الكمبيوتر المحلي الخاص بنا:
خروج
نكتب ما يلي لإعادة الاتصال:
ssh [email protected]
بعد إعادة الاتصال وتسجيل الدخول ، يمكننا كتابة ما يلي لإعادة توصيل screen
الجلسة:
شاشة -r ssh-geek
لقد أعدنا الاتصال الآن بمثيلنا الذي لا يزال قيد التشغيل top
.
يعد هذا أمرًا رائعًا إذا كنت تريد بدء عملية على جهاز واحد ، ثم المتابعة من حيث توقفت على جهاز آخر.
ذات صلة: كيفية إنشاء وتثبيت مفاتيح SSH من Linux Shell
مشاركة جلسة الشاشة
يمكنك أيضًا استخدام screen
جلسة للسماح لشخصين برؤية النافذة نفسها والتفاعل معها. لنفترض أن شخصًا ما يقوم بتشغيل Fedora على جهاز الكمبيوتر الخاص به يريد الاتصال بخادم Ubuntu.
سيكتب ما يلي:
ssh [email protected]
بعد الاتصال ، يبدأ جلسة شاشة تسمى "ssh-geek" باستخدام الخيار -S (اسم الجلسة). كما أنه يستخدم خياري -d
(فصل) و -m
(إنشاء مفروض) لإنشاء screen
جلسة جديدة منفصلة بالفعل.
يكتب ما يلي:
شاشة -d -m -S-ssh-geek
يكتب ما يلي ، باستخدام خيار -X
(وضع الشاشات المتعددة) لإرفاق الجلسة:
شاشة -X ssh-geek
على كمبيوتر Manjaro ، يتصل شخص آخر بكمبيوتر Ubuntu بنفس بيانات اعتماد الحساب ، كما هو موضح أدناه:
ssh [email protected]
بمجرد اتصالها ، screen
تكتب الأمر وتستخدم الخيار -X (وضع الشاشات المتعددة) للانضمام إلى جلسة النافذة نفسها ، مثل:
شاشة -X ssh-geek
الآن ، أي شيء يكتبه أي شخص ، سيرى الآخر. على سبيل المثال ، عندما يصدر شخص ما أمر التاريخ ، يراه كلاهما كما هو مكتوب ، بالإضافة إلى مخرجاته.
يشارك كلا الشخصين الآن screen
جلسة يتم تشغيلها على كمبيوتر Ubuntu بعيد.
بالنسبة لقطعة من البرامج التي رأت النور لأول مرة في عام 1987 ، screen
لا تزال تحتوي على طاقة إنتاجية جيدة. التعرف على هذا الأمر سيكون وقتًا ممتعًا!
ذات صلة: 37 أمرًا مهمًا من أوامر Linux يجب أن تعرفه