freeCodeCamp/guide/arabic/linux/the-command-prompt/index.md

18 KiB

title localeTitle
The Command Prompt موجه الأوامر

موجه الأوامر

كواحدة من أقدم واجهات المستخدم (UI) ، تم تنفيذ موجه الأوامر (aka shell ، terminal ، console ، tty ) بعدة طرق.

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


جدول المحتويات


تاريخ قصير جدا

في القرن التاسع عشر كان التلغراف . هذا سمح شخصين لتبادل الرسائل المشفرة عبر مسافات طويلة. أدت التطورات التكنولوجية اللاحقة إلى استخدام آلة تيلبايب (tty) ، حيث تم استبدال الشخص المطلوب لاستلام الرسالة بنوع من الطابعات.

في نفس الوقت ، تم برمجة أجهزة الكمبيوتر المبكرة مثل ENIAC ، مع نوع من الأجهزة ، مثل المفاتيح ، والمفاتيح ، أو كبلات التصحيح. ومع تقدم الحواسيب ، كانت هناك حاجة إلى إدخال / إخراج أفضل (IO) ، وبالتالي تم تحويل آلات التليبيرات المتاحة للاستخدام.

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

في نهاية المطاف تم استبدال طابعات TTY بشاشات أنبوب أشعة الكاثود (CRT) ، والتي كانت تستخدم أيضًا في أجهزة التلفزيون قبل توفر LCD والبلازما. ومن المثير للاهتمام أن أجهزة الكمبيوتر الحديثة من نظام لينكس لا يزال من الممكن التحكم فيها باستخدام آلة tty!

انقر على الصورة أدناه للانتقال إلى فيديو قصير على Youtube.


اليوم

واليوم ، لا يزال مستخدمو Linux و Unix يستخدمون نفس المصطلحات ، ولكن مع وجود اختلافات طفيفة. تتوفر المحطات الحقيقية والافتراضية ، ويمكن الوصول إلى المطاريف الافتراضية باستخدام Alt + Ctrl + [F1-F12] .

في بيئات المستخدم الرسومية (GUI) ، يمكن للمستخدمين الوصول إلى موجه الأوامر باستخدام محاكي طرفية ، والذي يوفر ميزات tty ، ولكن داخل إطار. هناك العديد من المحاكيات الطرفية المتاحة لمستخدمي Linux ، مثل xterm و kterm و rxvt .

ستعتمد تلك المتاحة على توزيع لينكس (توزيعة ، قصير) الذي تستخدمه ، والافتراضات الافتراضية. تحقق من مدير الحزم الخاص بك لتثبيت الآخرين. يمكن لمستخدمي Windows استخدام PuTTY أو أدوات مساعدة أخرى للاتصال بنظام Linux.

شل

Shell s هي برامج تقوم بتفسير الأوامر.

هناك عدد منهم ، مثل B ourne A gain SH ell (BASH)، C Shell (csh / tcsh)، و Z SHell (zsh).

سحق

إن أكثر القوالب الافتراضية شيوعًا في Linux هي BASH ، ولكن يمكن لكل مستخدم التبديل مؤقتًا أو بشكل دائم إلى أي قشرة أخرى متوفرة. الغلاف قابل للنصوص بالكامل ، مما يعني أنه يمكن دمج مفاهيم البرمجة مع الأدوات المساعدة للنظام والأداة من أجل إنشاء وظائف أكثر تعقيدًا.

قد يتم تضمين الأوامر التي تم إدخالها في موجه الأوامر إلى shell ، مثل cd أو exit أو export .

كما يمكن أن تأتي من البرامج الخارجية ، وفي حالة معظم توزيعات Linux ، يتم توفيرها بواسطة أدوات Gnu .

انظر أدناه للحصول على الأوامر الأكثر شيوعًا.

| القيادة | الاستخدام | | -------- | ----------------------------------------- | | cd | تغيير الدليل الحالي | | ls | قائمة الملفات في الدليل الحالي | | mv نقل الملفات والدلائل | man وثائق القيادة مفتوحة | | mkdir | جعل دليل | | rmdir | حذف مدير | touch | إنشاء ملف فارغ | rm إزالة الملفات | | ln | إنشاء روابط للملفات والدلائل | chown | تغيير ملكية الملفات والدلائل | chmod | تغيير الأذونات | | find | تحديد موقع الملفات | | cat | يكتب الملفات إلى الإخراج القياسي | | less | يسمح التمرير من المدخلات القياسية | grep | البحث عن تطابقات بالنص العادي | diff | اظهار الفروق بين الملفات | | passwd | تغيير كلمة المرور الخاصة بك

الحصول على مساعدة

المساعدة الفورية متاحة للأوامر في مكان واحد أو أكثر.

إضافة --help بعد الأمر.

هذا يطبع معلومات الاستخدام للأمر.

إخراجها مشابه للأمر man ، ولكن يتم استخدام man قبل الأمر الذي تريده يدويًا.

يعد أمر info هو خيار المساعدة الثالث ، ويتم استخدامه تمامًا مثل man .

`ls --help

man ls

info ls `

الموجه

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

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

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

ليس عليك كتابته!

فمثلا:

$ ls -l

يعني كتابة ls -l في موجه عادي.

# apt-get install node

يعني أنك تكتب apt-get install node باستخدام امتيازات المشرف. تعتمد كيفية رفع الامتيازات على توزيع Linux الخاص بك.

الحصول على الجذر

تسجيل الدخول

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

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

سودو

إضافة "sudo" قبل أمر من أجل التحول إلى S uper U ser و DO (SUDO). هكذا يتم تكوين Ubuntu ومشتقاته للسماح بالوصول إلى المسؤول ، ويتم إعطاؤه على أساس كل أمر.

لم يتم منحك shell root ، ولن يكون للأمر التالي الذي تكتبه امتيازات مرتفعة ، ما لم تستخدم sudo مرة أخرى.

sudo apt-get update

باستثناء أول مستخدم تم إنشاؤه في بعض المواقع ، يجب إضافة المستخدمين إلى قائمة خاصة (موجودة في /etc/sudoers ) من أجل استخدام sudo.

يتم ذلك مع الأمر visudo .

يجب ألا تقوم مطلقًا بتحرير ملف sudoers باستخدام محرر نص عادي!

سوف visudo تأكد من أنك لا قفل نفسك من النظام الخاص بك.

سو

su ، مثل sudo ، يسمح لك بالتغيير إلى مستخدم آخر ، باستثناء أنه بشكل افتراضي ، ستحصل على مطالبة أخرى مثل المستخدم الذي قمت بالتبديل إليه.

من تلقاء نفسه ، su إلى موجه جذر ، ولكن مع متغيرات بيئة المستخدم الحالية ، مثل $HOME للمجلد الرئيسي ، و $PATH لمسار النظام.

يمكن أن يؤدي ذلك إلى نتائج غير متوقعة ، وإذا كنت تريد استخدام su للتبديل إلى مستخدم آخر ، فأضِف واصلة بعد الأمر:

su -

هذا سوف يحولك بشكل كامل إلى موجه الجذر.

يمكن إضافة اسم مستخدم إلى الأمر للتبديل إلى ذلك المستخدم ، ولكنه يتطلب كلمة مرور المستخدم.

يمكن استخدام sudo في تركيبة مع su للسماح للمدير بالتبديل إلى أي مستخدم.

`myUser@linux $ su - otherUsername Password: (typed my password) su: Authentication failure

myUser@linux $ sudo su - otherUsername Password: (typed my password) otherUsername@Linux $ `

المسارات النسبية والمطلقة

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

نسبيا

موقع الملف بالنسبة إلى الدليل الحالي.

هناك عاملان مسار نسبي في شل ، . و ..

الأول ، . يعني الدليل الحالي ، لذا فإن cat file.txt cat ./file.txt و cat ./file.txt هما نفس الشيء إذا كان cat ./file.txt في الدليل الحالي.

الآخر هو .. ، ويعني دليل واحد في الشجرة.

إذا كنت في /home/user/projects/project-a وقمت بإصدار الأمر cd .. إلى /home/user/projects .

إذا كان دليل المشاريع يحتوي على أدلة فرعية باسم project-a و project-b و project-c وكنت في دليل project-a ، فيمكنك التبديل إلى project-b باستخدام cd ../project-b .

يوجد أيضاً environment variable في shell يسمى $HOME والذي يشير إلى الدليل الرئيسي الخاص بك.

يمكنك استخدام هذا في BASH باستخدام حرف التلدة ~ .

تحل الصدفة محل التلدة عندما تضغط على enter ، فعلى سبيل المثال ، يمكنك التغيير إلى مجلد منزلك باستخدام cd ~ .

مطلق

مواقع الملفات هي المسار الكامل من جذر نظام الملفات ، ولديك دائمًا شرطة مائلة.

على سبيل المثال ، سيذهب cd /home/quincy/Desktop إلى دليل سطح المكتب في Quincy ، بغض النظر عن المسار الحالي أو المستخدم.

خيارات القيادة

تتبع معظم أوامر shell نفس بناء الجملة ، وهي ملفات خيارات الأوامر .

ls -l *.txt

أين

  • ls يعطي قائمة من الملفات والدلائل ،
  • -l يغير ناتج ls إلى قائمة طويلة ،
  • و *.txt بتقييد القائمة بالملفات التي تنتهي بـ .txt .

لكل أمر خيارات مختلفة ، ويمكن إدراج خيارات متعددة معًا ، كما في tar tar -cvf في القسم التالي.

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

يتم ذلك مع | الحرف ، وغالبا ما تسمى الأنابيب أو شريط . هذا ليس رأس مال i أو حرف L صغير ، ولا هو الرقم 1 . على لوحات المفاتيح الأمريكية ، تم العثور على أحد المفاتيح بالقرب من Enter .

في المثال التالي ، سأستخدم أمرين.

أول ، cat ، قصيرة لسلسلة ، ويمكن استخدامها لوضع محتويات ملف واحد في نهاية آخر (سَلسَلة!). عند استخدامه مع ملف واحد فقط ، فإنه يكتب المحتويات إلى المحطة.

الأمر الثاني ، grep هو برنامج يخرج النص الموجود بناءً على بعض المدخلات ، ونمط بحث. يمكن أن يكون نمط البحث عبارة عن نص بسيط ، أو تعبير عادي (تعبير عادي) لعمليات بحث أكثر تقدمًا.

cat index.html | grep img

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

تسلسل الأوامر

في حين أن عامل العطف الوحيد & هو عامل التحكم في الوظيفة في BASH (المقطع التالي) ، فإن علامة الضم المزدوجة لها معنى آخر. ومن المنطقي AND ، واستخدامه بين أمرين بحيث يتم تشغيل الأمر الثاني فقط إذا تم الخروج الأول بنجاح (بدون خطأ).

المثال التالي هو عدد مستخدمي دبيان وأوبونتو الذين يقومون بتحديث قائمة البرامج الخاصة بهم ، ثم قم بتشغيل ترقية النظام.

sudo apt-get update && sudo apt-get dist-upgrade

خيار آخر هو أنبوب مزدوج || مما يعني منطقية OR . يمكنك استخدامه عندما تريد تشغيل أمر فقط عندما يخرج الأول بخطأ.

سوف يقوم ما يلي بإنشاء أرشيف يسمى project.tar على سطح مكتب المستخدم من الملفات الموجودة في دليل مشروع ، وإذا فشل ذلك ، صدى رسالة.

tar -cvf /home/user/Desktop/project.tar /home/user/project/* || echo "archive failed"

وظائف الخلفية

عندما تقوم بتشغيل أمر في مطراف ، تكون المحطة مشغولة حتى يتم الانتهاء من الأمر ، ولا يمكن تشغيل أوامر أخرى. هناك نظام للتحكم في الوظائف في لينكس يسمح لك بتعليق أوامر التشغيل واستئناف الأوامر المعلقة في الخلفية واستئناف الأوامر الموقوفة في المقدمة.

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

o تعليق برنامج قيد التشغيل في المحطة الطرفية استخدم تركيبة المفاتيح Ctrl + Z.

ستعود إلى المطالبة العادية ، ويبدو أن الأمر قد انتهى. لم يحدث ذلك ، ولكن تم تعليقه فقط. ما زال مرئيًا في قائمة jobs باستخدام أمر jobs لإدراج جميع الوظائف المتعقبة حاليًا. فعلت man ls للحصول على صفحة دليل ، ومن ثم علقت.

عندما أكتب jobs أحصل على الناتج التالي:

`$ jobs

[1] + suspended man ls `

من هنا ، يمكنني السماح باستئنافها في الخلفية بكتابة bg %1 حيث 1 هو رقم المهمة الموجود بين الأقواس المربعة.

يمكنني إعادته إلى المقدمة بكتابة fg %1 .