كيفية استخدام tmux على Linux (ولماذا هو أفضل من الشاشة)

نشرت: 2022-01-29
محطة لينكس منمقة على جهاز كمبيوتر محمول مع جلسات شل في الخلفية.
fatmawati achmad zaenuri / Shutterstock.com

أمر Linux tmux هو مُضاعِف طرفي ، مثل screen . المدافعون عنها كثيرون وصريحون ، لذلك قررنا المقارنة بين الاثنين. هل tmux أفضل حقًا ، أم أنه مجرد حالة تفضيل ما تعرفه؟

tmux مقابل الشاشة

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

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

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

يمكنك فصل جلسة على كمبيوتر واحد ، والعودة إلى المنزل ، وتسجيل الدخول إلى الكمبيوتر البعيد. عند إعادة الاتصال ، يمكنك إعادة توصيل جلسة الخلفية واستخدامها بشكل تفاعلي مرة أخرى.

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

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

الإعلانات

هذه المرة ، سنركز على tmux . بينما نمضي قدمًا ، سنذكر كيف تتعامل screen مع نفس الميزة أو الوظيفة.

شيء واحد فقط أزعجنا بشأن screen . سنغطي ذلك عندما نصل إليه ، ونرى ما إذا كان tmux أفضل.

ذات صلة: كيفية استخدام أمر شاشة Linux

تركيب tmux

بينما يتم تثبيت screen بشكل افتراضي على توزيعات Linux الشائعة ، tmux ليس كذلك. لتثبيت tmux على Ubuntu ، اكتب ما يلي:

 sudo apt-get install tmux 

في pacman ، يمكنك استخدام Pacman:

 sudo pacman -Sy tmux 

في Fedora 31 ، تم تثبيت tmux بالفعل.

بدء جلسة tmux

لبدء tmux ، فقط اكتبه واضغط على Enter:

 تمكس 

ستعرض نافذة المحطة الطرفية شريط الحالة عندما تكون في جلسة tmux .

يُظهر الجانب الأيمن من شريط الحالة اسم المضيف والوقت والتاريخ. يظهر الجانب الأيسر المعلومات المتعلقة بالجلسة التالية:

  • [0]: هذا هو اسم الجلسة. بشكل افتراضي ، يتم ترقيمها ، بدءًا من الصفر. نغطي كيف يمكنك إعطاء أسماء ذات معنى للجلسات أدناه.
  • 0: bash *: يشير الرقم 0 إلى أن هذه هي النافذة الأولى في هذه الجلسة. العملية الوحيدة التي يتم تشغيلها في هذه الجلسة هي bash . إذا قمت بتشغيل برنامج ، فسيظهر اسمه هنا. علامة النجمة (*) تعني أن هذه هي النافذة التي تنظر إليها. في كل مرة تقوم فيها بإنشاء نافذة جديدة في جلسة tmux ، تتم إضافة رقم النافذة واسم البرنامج الذي يتم تشغيله فيها إلى شريط الحالة.

لا يمنحك أمر screen شريط الحالة افتراضيًا. عليك أن تطير أعمى وتعتمد على ذكائك لتعرف ما يحدث ، الأمر الذي يتطلب القليل من الممارسة. (ما لم تقم بتكوين شريط الحالة الخاص بك.)

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

الإعلانات

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

إنه نفسه في screen ، باستثناء الضغط على Ctrl + A لجذب انتباهه.

لإغلاق النافذة ، اضغط على Ctrl + B ، ثم اضغط بسرعة على X. يتحول شريط الحالة إلى اللون الكهرماني. سيُطلب منك بعد ذلك تأكيد رغبتك في إنهاء النافذة.

اضغط Y لإغلاق النافذة أو N إذا غيرت رأيك. ليس عليك الضغط على Enter بعد ذلك ؛ Y أو N كافيان لتسجيل اختيارك.

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

يتم إغلاق جلسة tmux ويتم إرجاعك إلى سطر الأوامر الذي قمت tmux . سترى "[خروج]" في نافذة المحطة.

الإعلانات

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

بدء جلسة tmux المحددة

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

لبدء tmux باسم جلسة ، استخدم الأمر new (جلسة جديدة) وخيار -s (اسم الجلسة). ستطلق على جلستنا اسم "geek-1" ، لذلك نكتب ما يلي:

 tmux new -s geek-1 

عند تحميل جلسة tmux ، يتم عرض "geek-1" كأول إدخال في شريط الحالة ، في أقصى اليسار.

جلسة tmux باسم "geek-1" على الجانب الأيسر من شريط الحالة.

إضافة المزيد من النوافذ

لإنشاء نافذة جديدة في الجلسة الحالية ، اضغط على Ctrl + B ، ثم C. ستحصل على نافذة طرفية فارغة في الجلسة الحالية. لذلك سيكون لدينا شيء ما قيد التشغيل في هذه النافذة الجديدة ، فلنبدأ الأمر dmesg مع الخيار -w (متابعة):

 dmesg -w 

الآن لدينا نافذتان في الجلسة ؛ أحدهما top ، والآخر dmesg . يمكننا فقط رؤية واحدة في كل مرة (المزيد عن ذلك في لحظة).

الإعلانات

ألق نظرة على الجانب الأيسر من شريط الحالة. ما زلنا في جلسة tmux "المهوس -1". في النافذة صفر ، يتم تشغيل الجزء العلوي ، وفي النافذة الأولى ، يتم تشغيل dmesg . تخبرنا العلامة النجمية (*) بعد dmesg بالنافذة المرئية.

للتنقل بين النوافذ ، اضغط على Ctrl + B ، ثم أحد المفاتيح التالية:

  • N : اعرض النافذة التالية.
  • P: عرض النافذة السابقة.
  • من 0 إلى 9: اعرض نافذة مرقمة من 0 إلى 9.

يمكنك أيضًا اختيار نافذة من القائمة. إذا ضغطت على Ctrl + B ، ثم W ، فستظهر قائمة بالنوافذ.

لتحريك شريط التظليل الكهرماني ، اضغط على السهمين لأعلى أو لأسفل ، أو الصفحة الرئيسية ، أو النهاية. يعرض القسم السفلي من الشاشة معاينة للمحتوى في النافذة المميزة.

اضغط على Enter للانتقال إلى النافذة المميزة ، أو اضغط على Esc لمغادرة قائمة النوافذ دون التبديل.

جلسات الفصل والارفاق

إذا قمت بالضغط على Ctrl + B ، ثم D ، فسوف تقوم بفصل الجلسة. سيستمر تشغيله في الخلفية ، لكنك لن تتمكن من رؤيته أو التفاعل معه.

الإعلانات

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

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

لإرفاق جلسة منفصلة ، سنستخدم الأمر attach-session الموضح ذاتيًا مع الخيار -t (الجلسة المستهدفة). سنقدم أيضًا اسم الجلسة التي نرغب في تذكرها.

نكتب ما يلي:

 tmux attach-session -t geek-1 

تعود جلستنا وتصبح جلسة تفاعلية مرئية مرة أخرى.

ستظل أي عمليات طويلة الأمد أو مستمرة بدأتها قبل فصل الجلسة قيد التشغيل في الخلفية (ما لم تنته) عند إرفاق الجلسة.

يمكن screen القيام بذلك ، ولكن ليس بشكل حدسي.

التعامل مع جلسات متعددة

لنفتح نافذة طرفية أخرى ، ونبدأ جلسة tmux جديدة تسمى "geek-2":

 tmux new -s geek-2 

في تلك الجلسة ، سنبدأ dmesg :

 dmesg -w 

الإعلانات

الآن ، لدينا جلسة tmux الأصلية "geek-1" ، وجلسة جديدة تسمى "geek-2".

يوضح لنا شريط الحالة أن هذه الجلسة تسمى "geek-2" ، ولها نافذة واحدة تقوم بتشغيل dmesg .

إذا ضغطنا على Ctrl + B ، ثم D ، فإننا نفصل تلك الجلسة.

جلسة tmux منفصلة Geek-2 في نافذة widnow.

مرة أخرى في جلسة tmux "geek-1" ، نضغط على Ctrl + B ، ثم S لمشاهدة قائمة بجلسات tmux .

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

يمكنك تحريك شريط التظليل الكهرماني بالضغط على السهمين لأعلى ولأسفل والصفحة الرئيسية والنهاية. يعرض القسم السفلي معاينة للمحتوى في الجلسة المميزة.

الإعلانات

إذا قمت بالضغط على السهم الأيمن ، يتم عرض نوافذ الجلسة المميزة.

اضغط على Enter للانتقال إلى الجلسة أو النافذة المميزة أو اضغط على Esc لمغادرة قائمة الجلسات دون تغيير الجلسات. إذا حددت جلسة جديدة ، فسيتم فصل جلستك الحالية وإرفاق الجلسة التي حددتها.

فصلنا جلسة "geek-2" قبل أن نفعل ذلك. ومع ذلك ، يمكنك القيام بذلك مع الجلسات التي لا تزال متصلة بنوافذها الطرفية الأصلية. عندما تفعل ذلك ، ستظهر أي تغييرات على الشاشة في وقت واحد في كلتا tmux .

يمكن لأمر screen القيام بذلك أيضًا عبر مجموعة أوامر مماثلة.

العمل مع النوافذ

إذا قمت بالضغط على Ctrl + B ، ثم علامات الاقتباس المزدوجة ("") ، فإنك تقوم بتقسيم النافذة أفقيًا إلى جزأين.

هذا يؤثر فقط على النافذة الحالية ؛ لن يتم تغيير الآخرين في الجلسة. لقد استخدمنا الأمر tmux ls في الجزء العلوي لسرد النوافذ في هذه الجلسة. يوجد اثنان ، ويخبرنا سطر الحالة أننا في النافذة الأولى. إذا قفزنا إلى النافذة صفر بالضغط على Ctrl + B ، ثم 0 (صفر) ، فإننا نراها تمامًا كما تركناها.

الإعلانات

هذان هما سطرا أوامر مستقلان ، وليست طريقتي عرض في نافذة واحدة ؛ هم قذائف متميزة ومنفصلة. يمكننا إظهار ذلك عن طريق تشغيل أمر مختلف في كل جزء.

نكتب ما يلي:

uname -a

ls -hl

للانتقال من جزء إلى آخر ، اضغط على Ctrl + B ، ثم السهم لأعلى أو لأسفل أو لليسار أو لليمين.

أمران مختلفان في جزأين في جلسة tmux في أرملة طرفية.

إذا قمت بالضغط على Ctrl + B ، ثم علامة النسبة المئوية ( %) فإنها تقسم الجزء الحالي عموديًا.

اضغط على Ctrl + B ، ثم Q لجعل tmux يومض رقم كل جزء لفترة وجيزة.

يتم استخدام هذه الأرقام في المطالبات والرسائل من tmux . اضغط على Ctrl + B ، ثم X لإغلاق الجزء الحالي. يتغير شريط الحالة إلى اللون الكهرماني ، وستتم مطالبتك بتأكيد رغبتك في إغلاق رقم الجزء هذا. اضغط على Y لإزالة الجزء ، أو N لترك الأشياء كما هي.

إذا قمت بالضغط على Y ، فسيتم إزالة الجزء.

الإعلانات

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

ورقة الغش Ctrl + B

لقد قمنا بتضمين ورقة الغش للأوامر المختلفة التي يمكنك استخدامها في tmux أدناه.

أوامر الجلسة

  • S: قائمة الجلسات.
  • $: إعادة تسمية الجلسة الحالية.
  • D: فصل الجلسة الحالية.
  • Ctrl + B ثم؟: عرض صفحة التعليمات في tmux .

أوامر النافذة

  • ج: إنشاء نافذة جديدة.
  • ،: إعادة تسمية النافذة الحالية.
  • W: قائمة النوافذ.
  • N: الانتقال إلى النافذة التالية.
  • P: الانتقال إلى النافذة السابقة.
  • 0 إلى 9: الانتقال إلى رقم النافذة المحدد.

أوامر الجزء

  • ٪: إنشاء تقسيم أفقي.
  • ": أنشئ انقسامًا رأسيًا.
  • H أو سهم لليسار: الانتقال إلى الجزء الموجود على اليسار.
  • أنا أو السهم الأيمن: الانتقال إلى الجزء الموجود على اليمين.
  • J أو سهم لأسفل: الانتقال إلى الجزء أدناه.
  • K أو سهم لأعلى: الانتقال إلى الجزء أعلاه.
  • س : عرض أرقام الأجزاء بإيجاز.
  • O: التنقل عبر الأجزاء بالترتيب. تنقلك كل ضغطة إلى التالية ، حتى تقوم بالمرور عليها جميعًا.
  • }: قم بتبديل موضع الجزء الحالي بالجزء التالي.
  • {: تبديل موضع الجزء الحالي بالجزء السابق.
  • X: أغلق الجزء الحالي.

كيف يقارنون

من حيث الوظائف ، تعمل كل من screen و tmux بشكل مشابه وتقدم نفس الميزات الرئيسية. إنها الطريقة التي تصل بها إلى تلك الميزات التي تختلف بشكل ملحوظ. يوفر tmux أكثر سهولة وراحة للوصول إلى الوظائف المختلفة. ومع ذلك ، ليس هذا هو الاختلاف الوحيد.

تعد القدرة على إعادة تسمية الجلسات والنوافذ في tmux ، وحقيقة أنه يحتفظ بالألواح عند إعادة إرفاق جلسة ما هو تغيير قواعد اللعبة.

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

هناك الكثير من tmux ، بما في ذلك إمكانيات البرمجة النصية المرنة بشكل لا يصدق. أنت مدين لنفسك للتحقق من ذلك.

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