كيفية استخدام أمر شاشة Linux
نشرت: 2022-01-29 باستخدام أمر screen
Linux ، يمكنك دفع التطبيقات الطرفية قيد التشغيل إلى الخلفية وسحبها للأمام عندما تريد رؤيتها. كما أنه يدعم شاشات تقسيم الشاشة ويعمل عبر اتصالات SSH ، حتى بعد قطع الاتصال وإعادة الاتصال!
ذات صلة: 10 أوامر Linux أساسية للمبتدئين
ما هو أمر الشاشة؟
أمر screen
عبارة عن معدد إرسال طرفي ، ومليء بالخيارات تمامًا. إن القول بأنه يمكن أن يفعل الكثير هو جد بخس. تصل صفحة الدليل إلى أكثر من 4100 سطر.
فيما يلي أكثر الحالات شيوعًا التي قد تستخدم فيها أمر screen
، وسنتناولها بمزيد من التفصيل في هذه المقالة:
- تتمثل العملية القياسية في إنشاء نافذة جديدة بها غلاف ، وتشغيل أمر ، ثم دفع النافذة إلى الخلفية (تسمى "الفصل"). عندما تريد أن ترى كيف تسير العملية الخاصة بك ، يمكنك سحب النافذة إلى المقدمة مرة أخرى ("إعادة التثبيت") واستخدامها مرة أخرى. يعد هذا أمرًا رائعًا للعمليات الطويلة التي لا تريد إنهاؤها عن طريق الخطأ عن طريق إغلاق نافذة المحطة الطرفية.
- بمجرد تشغيل جلسة
screen
، يمكنك إنشاء نوافذ جديدة وتشغيل عمليات أخرى فيها. يمكنك التنقل بسهولة بين النوافذ لمراقبة تقدمهم. يمكنك أيضًا تقسيم نافذة المحطة الطرفية إلى مناطق عمودية أو أفقية ، وعرض نوافذscreen
المختلفة في نافذة واحدة. - يمكنك الاتصال بجهاز بعيد وبدء جلسة
screen
وبدء عملية. يمكنك قطع الاتصال بالمضيف البعيد ، وإعادة الاتصال ، وستظل العملية قيد التشغيل. - يمكنك مشاركة جلسة
screen
بين اتصالين SSH مختلفين بحيث يمكن لشخصين رؤية نفس الشيء في الوقت الفعلي.
شاشة التثبيت
لتثبيت screen
على ubuntu ، استخدم هذا الأمر:
sudo apt-get install screen. شاشة التثبيت sudo apt-get
لتثبيت screen
على Manjaro ، استخدم الأمر التالي:
sudo pacman -Sy screen
في Fedora ، اكتب ما يلي:
sudo dnf تثبيت الشاشة
الشروع في العمل مع الشاشة
لبدء screen
، ما عليك سوى كتابتها كما هو موضح أدناه واضغط على Enter:
شاشة
سترى صفحة معلومات الترخيص. يمكنك الضغط على مفتاح المسافة لقراءة الصفحة الثانية أو إدخال للعودة إلى موجه الأوامر.
لقد تركت عند موجه الأوامر ، ولا يبدو أن شيئًا قد حدث. ومع ذلك ، فأنت تقوم الآن بتشغيل قذيفة داخل محاكي طرفي متعدد الإرسال. لماذا هذا شيء جيد؟ حسنًا ، لنبدأ عملية ستستغرق وقتًا طويلاً حتى تكتمل. سنقوم بتنزيل الكود المصدري لأحدث إصدار من Linux kernel وإعادة توجيهه إلى ملف يسمى latest_kernel.zip
.
للقيام بذلك ، نكتب ما يلي:
curl https://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
(list) ، كما هو موضح أدناه ، للحصول على قائمة بالنوافذ المنفصلة:
شاشة -LS
عندما تكون جاهزًا ، يمكنك استخدام الخيار -r
(reattach) ورقم الجلسة لإعادة إرفاقها ، مثل:
شاشة -r 23167
يتم الآن إرجاع النافذة التي كانت تعمل بعيدًا في الخلفية إلى نافذة الجهاز الطرفي كما لو أنها لم تغادر أبدًا.
إذا كانت العملية ستستمر حتى نهايتها ، فستكتمل في النهاية. إذا كانت عملية مستمرة ، فستريد في النهاية إنهاؤها. في كلتا الحالتين ، عندما تنتهي العملية ، يمكنك كتابة exit
للخروج من screen
. بدلاً من ذلك ، يمكنك الضغط على Ctrl + A ، ثم K لقتل النافذة بالقوة.
اكتب الأمر التالي:
خروج
ستتم إعادتك إلى النافذة الطرفية السابقة ، والتي ستظل تعرض الأمر الذي استخدمته لإعادة إرفاق النافذة. نظرًا لأننا أغلقنا نافذتنا الوحيدة والمنفصلة ، فقد تلقينا رسالة مفادها أن screen
قيد الإنهاء.
ذات صلة: كيفية استخدام curl لتنزيل الملفات من سطر أوامر Linux
استخدام جلسات الشاشة المسماة
يمكنك استخدام الخيار -S
(اسم الجلسة) لتسمية جلسة screen
الخاصة بك. إذا كنت تستخدم اسمًا لا يُنسى بدلاً من الهوية الرقمية للجلسة ، فمن الملائم إعادة الاتصال بالجلسة. نكتب ما يلي لتسمية جلستنا "الملف الكبير":
شاشة -S bigfile
عندما تبدأ screen
جلستنا ، نرى نافذة فارغة مع موجه الأوامر. سنقوم بتنزيل ملف كبير ، حتى نتمكن من استخدام عملية طويلة الأمد كمثال.
نكتب ما يلي:
curl http://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
one) ، نضغط على 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 يجب أن تعرفه
أوامر لينكس | ||
الملفات | tar · pv · cat · tac · chmod · grep · diff _ _ _ _ _ _ _ _ _ _ _ · ذيل · ستات · ls · fstab · صدى · أقل · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · تثبيت · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · تحويل · rclone · shred · srm | |
العمليات | الاسم المستعار · شاشة · أعلى · لطيف · رينييس · تقدم · ستريس · systemd · tmux · chsh · تاريخ · في · دفعة · مجانية · أي · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · نعم · قتل · نوم · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
الشبكات | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · حفر · إصبع · nmap · ftp · curl · wget · who · who · w · iptables · ssh-keygen · ufw |
ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين