البحث في الموقع
المحتوى عن 'terminal طرفيّة'.
-
سنغطّي في هذا الدّرس أساسيات التعامل مع الطرفيّة (Terminal) في لينكس أو بالأحرى سطر الأوامر في لينكس بالإضافة إلى العديد من الأوامر المشوّقة. إذا كنتَ جديدًا على نظام لينكس فقد تودّ أن تتعرّف على الطرفيّة قليلًا كونها الطريقة الأساسية للتعامل مع الخواديم العاملة بنظام لينكس. ربما يبدو استخدام سطر الأوامر كمهمّةٍ شاقّة للوهلة الأولى ولكنه في الواقع سهلٌ للغاية إذا بدأت بتعلّم الأساسيات أولًا وبناء مهاراتك من هناك. إذا كنتَ تريد أن تستفيد إلى أقصى الحدود من هذا الدليل، فستحتاج خادوم لينكس لتتصل به وتستعمله. تم إعداد هذا الدليل ليتوافق مع خادومٍ يعمل بنظام Ubuntu 14.04 ولكن المعلومات العامّة تنطبق أيضًا على التوزيعات الأخرى. فلنبدأ بتعريف ماهيّة محاكي الطرفيّة. مُحاكي الطرفيّة محاكي الطرفيّة (terminal emulator) هو عبارة عن برنامجٍ يسمح باستخدام الطرفيّة في بيئةٍ رسومية. كما أنّ معظم الناس يستخدمون نظام التشغيل بواسطة واجهةٍ رسومية (GUI) لأداء مهامّهم اليومية، فإنّه من الضروري استخدام محاكي الطرفيّة من قبل معظم مستخدمي خواديم لينكس لأداء مهامّهم. إليك بعض محاكيات الطرفيّة المجانية والشهيرة بناءً على نظام التشغيل: Mac OS X: الطرفية (الافتراضيّة)، iTerm 2. Windows: برنامج Putty. Linux: الطرفيّة، KDE Konsole, Xterm. يمتلكُ كلُّ محاكي طرفية مجموعته الخاصّة من المميزات، ولكنّ كلَّ واحدٍ من القائمة السابقة يعمل جيدًا ومن السهل استخدامه. الصدفة في نظام لينكس، الصدفة (shell) هي عبارة عن واجهة سطر أوامر تتفاعل مع أوامر المستخدم وملفّات السكربتات (scripts) وتقوم بإخبار نظام تشغيل الخادوم عن كيفية التعامل معها. هناك عدّة صدفات شهيرة، مثل صدفة Bourne (اختصارها sh) وصدفة C (اختصارها csh). تمتلك كلُّ صدفة مميزاتها الخاصّة بها والتي تختلف بها عن الأخرى، مثل كيفية معالجة وتفسير الأوامر التي تصلها، ولكنّها جميعًا تمتلك المزايا الأساسية مثل إعادة توجيه الإدخال والإخراج، المتغيّرات، اختبار الشروط وأمور أخرى. تمّ كتابة هذا الدليل ليتعامل مع صدفة Bourne-Again، والتي عادةً يتم الإشارة إليها باسم bash. والتي هي أيضًا الصدفة الافتراضيّة لمعظم توزيعات لينكس، مثل Ubuntu, CentOS و RedHat. موجّه الأوامر عندما تقوم بتسجيل الدخول لأول مرة إلى خادوم، فإنّه عادةً سيتم ترحيبك بواسطة "رسالة اليوم – Message of the day” (اختصارها MOTD)، والتي هي عادةً ما تكون رسالةً تحتوي على معلوماتٍ عدّة مثل إصدار توزيعة لينكس التي يستخدمها الخادوم. بعد رسالة MOTD، سيتم توجيهك إلى موجّه الأوامر (command prompt)، أو موجّه الصدفة، والذي هو المكان الذي يمكنك من خلاله إصدار الأوامر إلى الخادوم. المعلومات التي يتم تقديمها في موجّه الأوامر يُمكن أن يتم تخصيصها من طرف المستخدم، هذا مثال على موجّه الأوامر الافتراضي لتوزيعة أوبونتو 14.04: sammy@webapp:~$ فلنجزّء مكونات الأمر السابق: sammy: اسم المستخدم الحالي. webapp: اسم المضيف الحالي (hostname). ~: المسار الحالي. في bash، والتي هي غالبًا ما تكون الصدفة الافتراضيّة، فإنّ إشارة ~ أو ما تُعرف بإشارة المدّ، هي عبارةً عن محرف خاص يُشيرُ تلقائيًا إلى مسار مجلّد المنزل للمستخدم العادي; في هذه الحالة، هو يمثّل المسار /home/sammy . $: رمز موجّه الأوامر. هذا الرمز يُعَلّم نهاية موجّه الأوامر، والذي بعده سيظهر ما يُدخله المستخدم إلى الطرفيّة. إليك مثالًا لِمَا سيبدو عليه موجّه الأوامر إذا تمّ تسجيل الدخول باسم المستخدم root في المسار /var/log : root@webapp:/var/log# لاحظ أنّ موجّه الأوامر ينتهي برمز # ، والذي يُعتبر رمز موجّه الأوامر الخاص بالمستخدم root. في نظام لينكس، مستخدم root هو المستخدم الفائق والذي هو بإمكانه تطبيق تغييراتٍ على امتداد النظام بأكمله بالإضافة لوظائف الإدارة والإعداد، إنّه مستخدم غير مقيّد بأيّ نوعٍ من القيود وبإمكانه تنفيذ أيّ مهمة على الخادوم. تنفيذ الأوامر يُمكن إصدار الأوامر في موجّه الأوامر عبر تحديد اسم ملفٍّ تنفيذي، والذي يمكن أن يكون برنامجًا تنفيذيًا أو سكربتًا. هناك العديد من أوامر لينكس المعيارية والأدوات التي تأتي مُثبتةً مع نظام التشغيل، والتي تسمح لك بتصفّح نظام الملفّات، تثبيت وإزالة البرامج والحزم بالإضافة إلى إعداد النظام والتطبيقات. مهمّة تشغيل أمرٍ ما تُعرف باسم "عملية". عندما يتم تنفيذ أمرٍ ما من طرف المستخدم (والتي هي الطريقة الافتراضيّة لتنفيذ المهام)، فإنّه يجب على المستخدم أن ينتظر إلى حين انتهاء العملية قبل أن يتم إرجاعه من جديد إلى موجّه الأوامر، حينها يمكنه إصدار المزيد من الأوامر ليتم تنفيذها. من المهم التنويه أيضًا إلى أنّ كلّ الأشياء في نظام لينكس حساسة لحالة الحروف، بما في ذلك أسماء الملفّات والمسارات، الأوامر، المُعطيات والخيارات. إذا كان شيءٌ ما لا يعمل كالمتوقّع، فقم بالتحقق من تهجئة وحالة حروف الأوامر الخاصّة بك. سنقوم بالتطرّق إلى بضع أمثلة تغطّي أساسيات تنفيذ الأوامر. ملاحظة: إذا لم تكن متّصلًا بالفعل بخادوم لينكس، فالآن هو الوقت المناسب لفعل ذلك. إذا كنتَ تمتلك خادوم لينكس ولكنك تواجه مشاكل بالاتّصال، فاتّبع هذا الرابط: كيفية الاتصال بخادوم عبر SSH. دون مُعطيات وخيارات لتنفيذ أمرٍ دون معطياتٍ (arguments) أو خيارات، بكل بساطة قم بكتابة الأمر واضغط على زرّ Enter. إذا قمتَ بتشغيل أمرٍ بهذه الطريقة، فسيقوم باستخدام سلوكه الافتراضي، والذي يختلف من أمرٍ إلى آخر. مثلًا، إذا قمتَ بتشغيل الأمر cd دون أيّ مُعطيات، فسيتم إرجاع إلى مسار مجلّد المنزل الخاص باسم المستخدم الذي تستعمله حاليًا. سيقوم الأمر ls بطباعة محتويات المسار الحالي من ملفّاتٍ ومجلّدات. وبدون أيّ مُعطيات فسيقوم الأمر ip بطباعة رسالةٍ تبيّن لك كيفية استخدام الأمر ip. جرّب تشغيل الأمر ls بدون أي مُعطيات لسرد الملفّات والمجلّدات الحالية في مسارك الحالي (ربما لا يكون هناك أيٌّ منها بالمناسبة): ls مع المُعطيات تتوقع العديد من الأوامر استقبال مُعطيات أو مُعامِلات (parameters)، والتي من شأنها أن تقوم بتغيير سلوك عملية تنفيذ الأمر. مثلًا، الطريقة الأكثر شيوعًا لاستخدام cd هي عبر تمرير مُعطىٍ وحيد إليه يُحدد المسار الذي يجب الانتقال إليه. كمثال، للانتقال إلى المسار /usr/bin حيث يتم تثبيت العديد من الأوامر العادية، فسيتوجّب عليك تطبيق الأمر التالي: cd /usr/bin الجزء "cd” من الأمر السابق هو الأمر، والمُعطى الأول "/usr/bin” يتبُع الأمر. لاحظ كيف تمّ تحديث مسار موجّه الأوامر الحالي تلقائيًا بعد تنفيذ الأمر. إذا كنتَ تحبّ، جرّب تشغيل الأمر ls لرؤية الملفّات الموجودة حاليًا في مسارك الحالي. ls مع الخيارات تقبل معظم الأوامر الخيارات، والتي تُعرف أيضًا باسم الأعلام (flags) أو المحوّلات (switches)، والتي تقوم بالتّعديل على سلوكٍ أمرٍ ما وعمله. وبما أنها عبارة عن مُعطياتٍ من نوعٍ خاص، فإنّ الخيارات تتبعُ الأوامر أيضًا، ويُمكن التعرّف على الخيارات عبر مِحرَف ( - ) متبوعًا بخيارٍ واحدٍ أو أكثر، والتي يتم تمثيلها بحروفٍ كبيرة أو صغيرة. بالإضافة إلى ذلك، تبدأ بعض الخيارات بـ (--) متبوعةً بخيارٍ وحيد يتكون من أكثر من مِحرَف (عادةً يكون كلمةً أو كلمتين تصفان الخيار). كمثالٍ بسيط حول كيفية عمل الخيارات، فلنلقي نظرةً على الأمر ls. إليكَ بعض الخيارات الشائعة التي يتم استخدامها عادةً عند التعامل مع الأمر ls: -l : طباعة "السرد الطويل"، والذي يتضمّن تفاصيل إضافية مثل أذونات الملفّات، الملكيّة، الحجم والتوقيت. -a : سرد جميع محتويات مسارٍ معين، بما في ذلك الملفّّات المخفيّة (والتي تبدأ بإشارة . ). لاستخدام خيار -l مع الأمر ls، استعمل هذا الأمر: ls -l لاحظ أنّ عملية السرد تتضمن نفس الملفّات التي تمّ سردُها مسبقًا، ولكن بمعلوماتٍ إضافية حول كلِّ ملفّّ. كما ذكرنا مسبقًا، يُمكن تجميع الخيارات مع بعضها البعض. إذا كنتَ تريد استخدام الخيارين -a و -l مع بعضهما البعض، فيمكنك تطبيق ls -l -a أو جمعهما هكذا: ls -la لاحظ أنّ عملية السرد تتضمن الملفّّات والمسارات المخفيّة بسبب الخيار -a. مع الخيارات والمُعطيات يُمكن غالبًا جمعُ المُعطيات والخيارات مع بعضهما البعض عند تشغيل الأوامر. كمثال، يُمكنك التحقق من محتويات المسار /home ، بغضّ النظر عن مسارك الحالي عن طريق استخدام أمر ls هذا: ls -la /home ls هو الأمر، -la هو الخيار و/home هو المُعطى الذي يحدد الملفّ أو المسار الذي يجب سردُه. يجب أن يطبع هذا الأمر محتويات المسار /home ،والذي يجب بدوره أن يحتوي جميع مجلّدات المنزل الخاصّة بالمستخدمين العاديين على الخادوم. مُتغيّرات البيئة مُتغيّرات البيئة (environment variables) هي عبارة عن قِيَم (values) تقوم بتغيير طريقة تنفيذ الأوامر والعمليات. عندَ تسجيل الدخول لأولّ مرة إلى الخادوم، فإنّه سيتم ضبط العديد من مُتغيّرات البيئة وفقًا لعدّة ملفّات إعداد افتراضيًا. عرض جميع مُتغيّرات البيئة لعرض جميع مُتغيّرات البيئة التي تم ضبطُها لجلسة طرفية معيّنة، قم بتشغيل الأمر env: env سيكون هناك ناتجٌ كثير للأمر السابق، ولكن حاول العثور على مُدخلة PATH: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games مُتغيّر البيئة PATH هو عبارة عن قائمةٍ مفصولٌ عناصرها بنقطتين فوق بعضهما، تتكون من قائمةٍ بالمسارات التي ستقوم الصَدَفَة بالبحث عن البرامج أو السكربتات التنفيذيّة عند تنفيذ أمرٍ معيّن. مثلًا، يوجد الأمر env بالمسار /usr/bin ، ويُمكننا تنفيذ الأمر دون الحاجة إلى تحديد موقعه بالضبط، لأنّ مساره موجود في متغيّر البيئة PATH. عرض قيمة مُتغيّر يُمكن جلب قيمة مُتغيّر بيئة عن طريق وضع إشارة $ قبل اسم المتغيّر. حيثُ أنّ القيام بذلك سيقوم باستبدال اسم المتغيّر بقيمته. مثلًا، لطباعة قيمة المتغيّر PATH، يمكنك استخدام الأمر echo: echo $PATH يُمكنك استخدام المتغيّر HOME أيضًا، والذي هو عبارة عن مسار مجلّد المنزل الخاص بمستخدمك الحالي الافتراضي، للانتقال إلى مجلّد المنزل الخاص بك، طبّق: cd $HOME إذا كنتَ تحاول الوصول إلى مُتغيّر بيئةٍ لم يتم ضبطه بعد، فإنّه لن يتم طباعة قيمة ذاك المتغيّر، حيث أنه سيكون مُتغيّرا فارغًا. ضبط مُتغيّرات البيئة الآن، تعلّمتَ كيفية عرض مُتغيّرات البيئة الخاصّة بك، يجب عليك الآن تعلّم كيفية ضبطها. لضبط أو تعيين مُتغيّر بيئة، فكلُّ ما ستحتاج القيام به هو البدء بكتابة اسم المتغيّر متبوعًا بإشارة = ، متبوعةً مباشرةً بقيمته، كمثال: VAR=value لاحظ أنّه في حال قمتَ بمحاولة تعيين قيمةٍ لمُتغيّرٍ موجودٍ بالفعل، فإنّه سيتم الكتابة فوق القيمة الافتراضيّة. وإذا لم يكن المتغيّر موجودًا أساسًا فإنّه سيتم إنشاؤه. صدفة Bash تمتلكُ أمرًا يُدعى export والذي يقوم بتصدير مُتغيّرٍ ليُتَمَكَّنَ من استدعائه بواسطة العمليات الفرعية (child processes). بعبارةً أبسط، يَسمحُ لك هذا الأمر باستخدام سكربتاتٍ تستدعي مُتغيّرات بيئة تمّ تصديرها من جلستكَ الحاليّة. إذا كنتَ لم تستوعب بعدُ ما يعني هذا، فلا تقلق الآن. يُمكنك الإشارة إلى متغيراتٍ حالية عند تعيين مُتغيّراتٍ جديدة. مثلًا، إذا قمتَ بتثبيت تطبيقٍ ما إلى المسار /opt/app/bin ، فيُمكنك إضافة ذاك المسار إلى نهاية مُتغيّر البيئة PATH الخاصّ بك عبر هذا الأمر: export PATH=$PATH:/opt/app/bin الآن، تأكّد مما إذا تمّ إضافة /opt/app/bin إلى نهاية مُتغيّر PATH باستخدام الأمر echo: echo $PATH لا تنس أنّ القيام بتعيين مُتغيّرات البيئة بهذه الطريقة يقوم بتعيينها فقط لجلستك الحالية. هذا يعني أنّه في حال قمتَ بتسجيل الخروج من جلستك الحالية أو التبديل لجلسةٍ أخرى، فإنّه لن يتم حفظ أيٍّ من التغييرات التي قمتَ بها على مُتغيّرات البيئة. هناك دومًا طريقة للإبقاء على هذه التغييرات، ولكننا لن نغطّي هذا الأمر في هذا الدليل حاليًا. الخاتمة هكذا الآن تعلّمتَ أساسيات طرفيّة لينكس (وبضع أوامرَ أخرى)، يجب أن تمتلك الآن قدرةً جيّدة على توسيع معرفتك بأوامر نظام لينكس. ترجمة -وبتصرّف- للمقال: An Introduction to the Linux Terminal.