مبادئ سطر الأوامر في لينكس

مقدمة

ملاحظة: يتم تعطيل واجهة المحطة التفاعلية في هذا البرنامج التعليمي حاليًا حيث نعمل على تحسين تجارب التعلم التفاعلية. يمكنك ما زال استخدام هذا البرنامج التعليمي لتعلم كيفية استخدام سطر الأوامر وممارسة أوامر Linux، ولكن ستحتاج إلى استخدام المحطة على جهاز الكمبيوتر الخاص بك أو جهاز افتراضي.

اليوم، يعرف الكثيرون منا الحواسيب (الحواسيب المكتبية والمحمولة)، والهواتف الذكية، والأجهزة اللوحية التي تحتوي على واجهات المستخدم الرسومية (تُشار إليها أيضًا بواجهات المستخدم الرسومية)، مما يسمح لنا بالتنقل في التطبيقات، والويب، وملفاتنا (مثل المستندات والصور) من خلال تجربة بصرية. تقدم أنظمة التشغيل ويندوز وmacOS وLinux كلٌ من مجموعات متنوعة من بيئة سطح المكتب (مع صور للمجلدات والملفات، على سبيل المثال)، والقوائم المنسدلة، كل ذلك يوفر وصولًا إلى برامج الكمبيوتر والتطبيقات، ووسائطنا الخاصة.

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

طريقة واحدة للتنقل في كل من جهاز الكمبيوتر الشخصي الخاص بك وخوادم السحابة عن بُعد بدون واجهة رسومية هي من خلال المحطة النصية أو واجهة سطر الأوامر (CLI).

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

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

فهم نافذة المحطة

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

تعرض نافذة المتصفح هذه التي قمت بتشغيلها بالنقر على زر تشغيل وحدة تحكم تفاعلية! مستطيلًا أبيضًا في أسفل نافذة المتصفح الخاصة بك:

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

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

وحدة التحكم التي قمت بتشغيلها هي وحدة تحكم Ubuntu 20.04. أوبونتو هي توزيعة شهيرة من لينكس، التي كانت في الأصل مستندة إلى نظام التشغيل يونكس. نظام التشغيل macOS مستند أيضًا إلى Unix. إذا كنت تقرأ هذا البرنامج التعليمي على جهاز كمبيوتر يعمل بنظام تشغيل Linux أو macOS، يجب أن تكون لديك وحدة تحكم في نظام التشغيل الخاص بك تعمل بنفس الطريقة مثل الوحدة التفاعلية المضمنة التي سنستخدمها في هذا الدليل.

في العديد من أنظمة التشغيل القائمة على Unix (أو تشبهه)، قد تكون الرموز في نهاية الومضان هي علامة $ أو علامة #، والتي تعني ما يلي:

  • $ أو علامة الدولار — أنت قد قمت بتسجيل الدخول كمستخدم عادي
  • # أو علامة الوشم/المجادلة — أنت قد قمت بتسجيل الدخول كمستخدم بامتيازات مرتفعة

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

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

يرجى الملاحظة أنه من الأفضل ممارسة المزيد من الحذر عند العمل على طرفية الكمبيوتر المحلية حيث قد تكون هناك تغييرات يمكنك إجراؤها كمسؤول في الطرفية التي يمكن أن تجعل تغييرات دائمة على الكمبيوتر الذي تستخدمه.

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

التعرف على الدلائل

سنبدأ العمل مع الطرفية عن طريق كتابة أمر. الأمر هو تعليمة تعطى من قبل المستخدم، توضح ما يريده المستخدم أن يفعله الكمبيوتر. ستقوم بكتابة أوامرك في الطرفية ثم الضغط على ENTER أو RETURN عندما تكون جاهزًا لتنفيذ الكمبيوتر للأمر المعطى.

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

  1. pwd

عند تشغيل هذا الأمر، ستتلقى النتيجة التالية:

Output
/home/sammy

أمر pwd يعني “مسار الدليل الحالي”، ويعطيك موقعك ضمن نظام الملفات الحالي.

في هذا المثال، أنت في الدليل (أو المجلد) المسمى /home/sammy، الذي يمثل المستخدم المسمى sammy. إذا كنت مسجل الدخول بصفة root، أي مستخدم بامتيازات مرتفعة، فإن الدليل سيكون يسمى /root. على جهاز الكمبيوتر الشخصي، قد يُسمى هذا الدليل باسم مالك الكمبيوتر. جهاز سامي شارك قد يحتوي على /sammy أو /sammy-shark أو /home/sammy كدليل رئيسي للمستخدم.

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

للقيام بذلك، سنستخدم أمر mkdir، الذي يعني “إنشاء مجلد”. بعد كتابة الأمر، سنحتاج إلى كتابة اسم المجلد، الذي سيتم تمرير القيمة إلى الأمر بحيث يمكن للأمر تنفيذ إنشاء هذا المجلد. تُعرف هذه القيمة (اسم المجلد) باسم argument، وهو المدخل الذي يتم إعطاؤه للأمر. إذا كنت على دراية بقواعد اللغة الطبيعية، يمكنك أن تفكر في الargument ككائن يتم التأثير عليه بفعل فعل الأمر.

لإنشاء مجلد جديد يسمى files، سنكتب ما يلي، مع mkdir يكون الأمر و files يكون الargument:

  1. mkdir files

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

عرض محتويات وفهم الأذونات

نظرًا لأننا لم نتلق أي تغذية راجعة محددة حول المجلد الجديد بعد، سنستخدم أمرًا لمعرفة المزيد عن ما يوجد في مجلد العمل الحالي. يمكنك تأكيد وجود المجلد الجديد من خلال استعراض الملفات في المجلد، باستخدام الأمر ls (الذي يعني “قائمة”):

  1. ls

ستتلقى مخرجات تؤكد وجود دليل files:

Output
files

هذا يعطينا معلومات عامة حول ما هو موجود في دليل العمل الحالي لدينا. إذا أردنا الحصول على مزيد من التفاصيل، يمكننا تشغيل أمر ls مع ما يُسمى بالعلم. في أوامر Linux، يتم كتابة العلم بواسطة شرطة - وحروف، مما يمرر خيارات إضافية (ومزيد من الوسائط) إلى الأمر. في مثالنا، سنضيف العلم -l، الذي — عند إقترانه مع ls — يُشير إلى رغبتنا في استخدام الخيار لاستخدام تنسيق القائمة الطويلة مع أمرنا.

لنكتب هذا الأمر والعلم، مثل هذا:

  1. ls -l

بمجرد الضغط على ENTER، سنتلقى المخرجات التالية في وحدة التحكم الخاصة بنا:

Output
total 4 drwxr-xr-x 2 sammy sammy 4096 Nov 13 18:06 files

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

للحصول على إخراج قابل للقراءة بشكلٍ بشري إلى حد ما، يمكننا أيضًا تمرير العلم -h أو --human-readable، الذي سيقوم بطباعة أحجام الذاكرة بتنسيق قابل للقراءة بشكل بشري، كما هو موضح أدناه. بشكلٍ عام، تُشير الشرطة الواحدة - إلى الخيارات المكتوبة بحرف واحد، وتُشير الشرطتان -- إلى الخيارات التي تُكتب بكلمات. لاحظ أن بعض الخيارات يمكن استخدام كلا الشكلين. يمكننا بناء خيارات متعددة في أمر من خلال ربط العلم معًا، كما في -lh.

على سبيل المثال، تسليم الأوامرين أدناه نفس النتائج على الرغم من كتابتهم بشكلٍ مختلف:

  1. ls -lh
  1. ls -l --human-readable

كلا هاتين الأمرين ستعيدان الناتج التالي، مشابه للناتج أعلاه ولكن مع سياق أكبر لكتل الذاكرة:

Output
total 4.0K drwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files

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

File type Permissions Link count Owner Group File size Last modified date File name
d rwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files

سوف تلاحظ أن اسم الدليل الخاص بنا، files، في نهاية السطر الثاني من الناتج. يشير هذا الاسم إلى العنصر المحدد في دليل المستخدم /home/sammy الذي يتم وصفه بالسطر الناتج. إذا كان لدينا ملف آخر في الدليل، فسنكون لدينا سطر آخر من الناتج بتفاصيل حول ذلك الملف.

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

Character Description
d directory (or folder) — a type of file that can hold other files, useful for organizing a file system; if this were - instead, this would refer to a non-directory file
r read — permission to open and read a file, or list the contents of a directory
w write — permission to modify the content of a file; and to add, remove, rename files in a directory
x execute — permission to run a file that is a program, or to enter and access files within a directory

في الحروف الأولى drwx من السلسلة، الحرف الأول d يعني أن العنصر files هو دليل. إذا كان هذا ملف بدلاً من دليل، فإن هذه السلسلة من الأحرف ستبدأ بشرطة عوضاً عن ذلك، كما في -rwx، حيث تعني الشرطة الأولى ملفًا غير دليل. الأحرف الثلاثة التالية، rwx، تمثل الأذونات لـ صاحب الدليل files، وتعني أن الدليل files يمكن قراءته، وكتابته، وتنفيذه بواسطة صاحب الملف. إذا تم استبدال أي من هذه الأحرف بشرطات، فسيعني ذلك أن الصاحب ليس لديه نوع الإذن الممثل بذلك الحرف. سنناقش كيفية تحديد صاحب الملف في لحظة.

الأحرف الثلاثة التالية في الناتج هي r-x، التي تمثل الأذونات للـ مجموعة في دليل files. في هذه الحالة، لدى المجموعة أذونات القراءة والتنفيذ، ولكن ليس لديها أذونات الكتابة، حيث يتم استبدال الـ w بشرطة -. سنناقش كيفية تحديد المجموعة في لحظة.

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

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

بعد الرقم 2، يتم عرض كلمة sammy مرتين. تقدم هذه الجزء من الإخراج معلومات حول المالك والمجموعة المرتبطة بدليل الملفات. الظهور الأول لـ sammy في هذا السطر يشير إلى مالك الدليل، الذين رأينا أذوناتهم في وقت سابق هي rwx. المستخدم sammy هو المالك حيث قمنا بإنشاء دليل الملفات باسم المستخدم sammy ونحن المالك الحالي للملف. على الرغم من أن مستخدم sammy هو الوحيد في بيئتنا الحالية، إلا أن أنظمة التشغيل مشابهة لنظام Unix غالبًا ما تحتوي على أكثر من مستخدم ولذلك من المفيد معرفة أي مستخدم لديه ملكية لملف.

الظهور الثاني لـ sammy يشير إلى المجموعة التي لديها الوصول إلى دليل الملفات، والتي رأينا أذوناتها في وقت سابق هي r-x. في هذه الحالة، اسم المجموعة هو نفس اسم المستخدم المالك sammy. في البيئات الحقيقية، قد تكون هناك مجموعات أخرى على نظام التشغيل التي لديها الوصول إلى الدليل، مثل staff أو اسم مستخدم مثل admin.

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

بفهم أعمق لأنظمة الملفات والصلاحيات، يمكننا المضي قدمًا إلى التنقل في نظام الملفات على وحدة التحكم في Linux الخاصة بنا.

حتى الآن، تعلمنا كيفية تحديد مكاننا في نظام الملفات، وكيفية إنشاء دليل جديد، وكيفية سرد الملفات، وكيفية تحديد الصلاحيات.

لنتعلم الآن كيفية التنقل في نظام الملفات. لقد قمنا بإنشاء دليل جديد، ولكننا لا زلنا في الدليل الرئيسي /home/sammy للمستخدم. من أجل التحرك إلى الدليل /home/sammy/files الذي قمنا بإنشائه، سنستخدم أمر cd ونمرر اسم الدليل الذي نريد التحرك إليه كالمعامل. يُعبر الأمر cd عن “تغيير الدليل”، وسنكتبه على النحو التالي:

  1. cd files

مرة أخرى، لن تتلقى إلا سطرًا جديدًا مع مؤشر وامض، ولكن يمكننا التحقق من أننا في الدليل /home/sammy/files باستخدام الأمر pwd الذي استخدمناه سابقًا:

  1. pwd

ستحصل على الناتج التالي، مؤكدًا مكان تواجدك:

Output
/home/sammy/files

يُحَقِّق هذا أنك في دليل “/home/sammy/files” من دليل المستخدم “/home/sammy“. هل تبدو هذه الصيغة مألوفة لك؟ قد تذكرك بعناوين URL لمواقع الويب مع شرطاتها المائلة، وبالفعل، تتكون مواقع الويب على الخوادم داخل الدلائل أيضًا.

لننتقل إلى الدليل الرئيسي للخادم. بغض النظر عن الموقع الذي نحن فيه في نظام الملفات، يمكننا دائمًا استخدام الأمر “cd /” للانتقال إلى الدليل الرئيسي:

  1. cd /

للتأكد من أننا قد انتقلنا ومعرفة ما يوجد في هذا الدليل، دعونا نقوم بتشغيل أمر القائمة الخاص بنا:

  1. ls

سنتلقى الإخراج التالي:

Output
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run s sbin srv sys tmp usr var

هناك الكثير من الملفات هناك! الدليل “/” هو الدليل الرئيسي لخادم Linux، المُشار إليه باسم “الجذر”. لاحظ أن الدليل الرئيسي مختلف عن مستخدم “الجذر” الافتراضي. يمكنك التفكير في الدليل “/” كالشريان الرئيسي لجهاز Linux، حيث يحتوي على جميع المجلدات اللازمة لتشغيل الكمبيوتر. على سبيل المثال، يحتوي الدليل “sys” على نواة Linux ونظام الملفات الظاهري للمعلومات النظامية. إذا كنت ترغب في معرفة المزيد عن كل هذه الدلائل، يمكنك زيارة وثائق مؤسسة Linux.

سوف تلاحظ أيضًا أن هناك دليلا قمنا بالفعل بدخوله، وهو مجلد المستخدم “/home“. من الدليل “/“، يمكننا تغيير الدلائل إلى الوراء إلى “/home” ثم إلى “files“، أو يمكننا الانتقال مباشرةً إلى ذلك المجلد عن طريق كتابة المسار المطلق هناك مع “cd“:

  1. cd /home/sammy/files

الآن، إذا قمت بتشغيل pwd ستتلقى /home/sammy/files كنتيجة.

A file path is the representation of where a file or directory is located on your computer or server. You can call a path to a file or directory in either a relative or absolute way. A relative path would be when we move to a location relative to our current working directory, like we did when we were already in /home/sammy/ and then moved into files/. An absolute path is when we call the direct line to a location, as we did above with /home/sammy/files, showing that we started in the / directory, called the /home/sammy/ user directory and then the nested files/ directory.

بالإضافة إلى ذلك، يستفيد نظام Linux من تعريف النقاط لمساعدة المستخدمين في التنقل عبر المسارات النسبية. تمثل نقطة واحدة . الدليل الذي أنت فيه حالياً، وتمثل نقطتين .. الدليل الأبوي. لذا، من حيث نحن حالياً (/home/sammy/files)، يمكننا استخدام نقطتين للعودة إلى الدليل الأبوي /home/sammy، كما يلي:

  1. cd ..

إذا قمت بتشغيل pwd، ستتلقى /home/sammy كنتيجة، وإذا قمت بتشغيل ls، ستتلقى files كنتيجة.

رمز آخر مهم يجب أن تعتاد عليه هو ~ الذي يمثل الدليل الرئيسي لجهازك. هنا، يسمى الدليل الرئيسي لدينا /home/sammy لمستخدم sammy، ولكن في جهاز محلي قد يكون اسمك الخاص كما في sammy-shark/.

يمكنك كتابة ما يلي من أي مكان على جهازك والعودة إلى هذا الدليل الرئيسي:

  1. cd ~

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

إنشاء وتعديل ملفات النصوص

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

لنتأكد أولاً أننا في دليل files/ داخل مجلد المستخدم /home/sammy، والذي يمكننا فعل ذلك عن طريق التحقق باستخدام الأمر pwd، أو عن طريق تغيير الدلائل في المسار المطلق:

  1. cd /home/sammy/files

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

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

  1. touch ocean.txt

بمجرد الضغط على ENTER، ستتلقى سطرًا جديدًا في سطر الأوامر، ويمكنك استعراض محتويات الدليل الحالي files/ للتأكد من إنشاء الملف.

  1. ls
Output
ocean.txt

حتى الآن قمنا بإنشاء ملف ocean.txt الذي لا يحتوي على نص في وقت الإنشاء.

إذا أردنا إنشاء ملف نصي يتم تهيئته بنص، يمكننا استخدام أمر echo، الذي يستخدم لعرض سلاسل النصوص في لينكس.

يمكننا استخدام echo مباشرة في سطر الأوامر لجعل الواجهة تكرر بعدنا. يمكن كتابة البرنامج الأول التقليدي، “مرحباً، العالم!”، باستخدام echo على النحو التالي:

  1. echo Hello, World!
Output
Hello, World!

يسمى الأمر echo نسبةً إلى إيكو من ميتامورفوزا لأوفيد، ويعيد الأمر echo ما نطلبه. في هذه الحالة، صدى “مرحباً، العالم!” على حد ذاته، لكن الأمر echo لا يسمح لنا بتخزين قيمة نصنا في ملف نصي. من أجل القيام بذلك، سنحتاج إلى كتابة ما يلي:

  1. echo "Sammy the Shark" > sammy.txt

الأمر أعلاه يستخدم echo، ثم النص الذي نود إضافته إلى ملفنا بين علامتي اقتباس، ثم مشغل إعادة التوجيه >، وأخيرًا اسم ملف النص الجديد، sammy.txt.

يمكننا التحقق من وجود ملفنا الجديد، مرة أخرى باستخدام ls.

  1. ls
Output
ocean.txt sammy.txt

الآن لدينا ملفي نصيين في مجلد المستخدم /home/sammy/files. بعد ذلك، يمكننا التأكد من أن الملف sammy.txt يحتوي على النص الذي طلبنا من التيرمينال أن يكتبه بواسطة أمر cat. يختصر أمر cat اختصاراً للاتصال، وهو مفيد للغاية في العمل مع الملفات. من بين وظائفه هو عرض محتويات ملف.

  1. cat sammy.txt

عند تشغيل الأمر، سنتلقى الناتج التالي:

Output
Sammy the Shark

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

  1. echo "Some people could look at a mud puddle and see an ocean with ships." > ocean.txt

الآن، إذا قمنا بتشغيل cat على الملف، سنتلقى إخراج النص الذي قمنا للتو بإدخاله.

  1. cat ocean.txt
Output
Some people could look at a mud puddle and see an ocean with ships.

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

يمكن استدعاء محرر النص nano باستخدام الأمر nano. إذا كنا نرغب في تحرير ملفنا sammy.txt الحالي، يمكننا فعل ذلك عن طريق تمرير اسم الملف كوسيط.

  1. nano sammy.txt

سيتم فتح الملف على نافذة الطرفية:

sammy.txt
Sammy the Shark

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

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

عندما تنتهي من الملف الخاص بك، قد يبدو شيئًا مثل هذا:

sammy.txt
Sammy the Shark

Hello, I am Sammy.
I am studying computer science.
Nice to meet you!

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

^G Get Help   ^O WriteOut   ^R Read File  ^Y Prev Page  ^K Cut Text   ^C Cur Pos
^X Exit       ^J Justify    ^W Where Is   ^V Next Page  ^U UnCut Text ^T To Spell

نظرًا لأننا قد انتهينا حاليًا من العمل على هذا الملف، نرغب في الخروج من الملف. هنا، يشير الرمز ^ إلى مفتاح Control أو CTRL على لوحة المفاتيح الخاصة بك، والناتج أعلاه يخبرنا بأنه يتعين علينا دمج تلك المفتاح مع حرف X (استخدمه بحروف صغيرة، دون الضغط على مفتاح SHIFT) للخروج من الملف. دعونا نضغط هاتين المفاتيح معًا:

CTRL x

غالبًا ما يتم كتابة الأعلى بشكل متسلسل كما يلي CTRL + X أو Ctrl+x في الوثائق التقنية.

في هذه المرحلة، ستتلقى الرسالة التالية:

Output
Save modified buffer? Y Yes N No ^C Cancel

لحفظه، سنضغط على الحرف y للتأكيد:

y

ستتلقى تغذية راجعة مثل الآتي.

Output
File Name to Write: sammy.txt

هناك خيارات إضافية، بما في ذلك الإلغاء باستخدام CTRL + C، ولكن إذا كنت مرتاحًا مع إغلاق الملف، يمكنك الضغط على ENTER في هذه المرحلة لحفظ الملف والخروج منه.

لنفترض أننا نريد إنشاء عدة ملفات لطلاب جامعة ديجيتال أوشن. لنقم بإنشاء دليل جديد في files/ يسمى students:

  1. mkdir students

بعد ذلك، لنقم بنقل sammy.txt إلى الدليل الجديد students/. يسمح لنا الأمر mv، الذي يعني move، بتغيير موقع الملف. يتم بناء الأمر عن طريق أخذ الملف الذي نريد نقله كالمعامل الأول، والموقع الجديد كالمعامل الثاني. كلا التنفيذين التاليين سينتجان نفس النتيجة.

  1. mv sammy.txt students
  1. mv sammy.txt students/sammy.txt

هذا الخيار الأخير سيكون مفيدًا إذا كنا نرغب في تغيير اسم الملف، كما في mv sammy.txt students/sammy-the-shark.txt.

الآن، إذا قمنا بتشغيل أمر ls، سنرى أن المجلد الحالي (files/) يحتوي فقط على ocean.txt والمجلد students/. لننتقل إلى المجلد students/.

  1. cd students

لكي نحصل على قالب للطلاب الآخرين، يمكننا نسخ ملف sammy.txt لإنشاء المزيد من الملفات. للقيام بذلك، يمكننا استخدام أمر cp، الذي يعني نسخ. يعمل هذا الأمر بنفس الطريقة كما يعمل أمر mv، حيث يأخذ الملف الأصلي كالمعامل الأول، والملف الجديد كالمعامل الثاني. سنقوم بإنشاء ملف لـ Alex the Leafy Seadragon.

  1. cp sammy.txt alex.txt

الآن، يمكننا فتح alex.txt وتفحصه.

  1. nano alex.txt

حتى الآن، يبدو alex.txt متطابقًا مع sammy.txt. من خلال استبدال بعض الكلمات، يمكننا تعديل هذا الملف ليظهر مثل ما يلي. لاحظ أنه يمكنك استخدام CTRL + K لحذف سطر بأكمله.

alex.txt
Alex the Leafy Seadragon

Hello, I am Alex.
I am studying oceanography.
Nice to meet you!

يمكنك حفظ وإغلاق الملف بالضغط على CTRL + X ثم y ثم ENTER.

إذا كنت ترغب في ممارسة المزيد مع ملفات النص، فكر في إنشاء ملفات لـ Jamie the Mantis Shrimp، Jesse the Octopus، Drew the Squid، أو Taylor the Yellowfin Tuna.

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

الإكمال التلقائي والسجل

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

جرب كتابة cat جنبًا إلى جنب مع الحروف الأولى من أحد ملفات النص التي كنت تعمل عليها – على سبيل المثال، cat sa. قبل الانتهاء من كتابة اسم الملف بالكامل sammy.txt، اضغط على مفتاح TAB بدلاً من ذلك. يجب أن يتم إكمال اسم الملف بالكامل، بحيث يعرض موجه الطرفية الخاص بك ما يلي:

  1. cat sammy.txt

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

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

إذا كنت بحاجة إلى تكرار جميع الأوامر التي قمت بها في طرفية الأوامر، يمكنك أيضًا استدعاء سجل كامل لهذه الجلسة باستخدام الأمر المسمى بـhistory:

  1. history

بناءً على مقدار ممارستك، يجب أن تتلقى 30 سطرًا أو أكثر من الأوامر، بدءًا من النتيجة التالية:

Output
1 pwd 2 mkdir files 3 ls 4 ls -l ...

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

العمل مع الملفات من الويب

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

لنعود إلى دليل files/:

  1. cd /home/sammy/files

من هنا، سنستخدم الأمر curl لنقل البيانات من الويب إلى الطرفية التفاعلية الشخصية على المتصفح. يعني الأمر curl العميل (رابط ويب).

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

  1. curl https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

بمجرد الضغط على ENTER، سنتلقى نص المقتطف كإخراج إلى الطرفية (كما هو مستخرج أدناه)

Output
"You like the sea, Captain?" "Yes; I love it! The sea is everything. It covers seven tenths of the terrestrial globe. ... "Captain Nemo," said I to my host, who had just thrown himself on one of the divans, "this is a library which would do honor to more than one of the continental palaces, and I am absolutely astounded when I consider that it can follow you to the bottom of the seas."

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

لحفظ النص في ملف، سنحتاج إلى تشغيل curl مع علامة -O، التي تمكّننا من إخراج النص إلى ملف، مع اتخاذ نفس اسم الملف البعيد لنسختنا المحلية.

  1. curl -O https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

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

Output
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2671 100 2671 0 0 68487 0 --:--:-- --:--:-- --:--:-- 68487

إذا كنت ترغب في استخدام اسم معين وبديل للملف، يمكنك فعل ذلك باستخدام علامة -o وتمرير اسم الملف الجديد كوسيط (في هذه الحالة، jules.txt).

  1. curl -o jules.txt https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

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

في القسم التالي، سنقوم بتنظيف بعض الملفات وإغلاق الطرفية الخاصة بنا.

إزالة الملفات وإنهاء الأوامر

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

لنفترض أن الطلاب الذين نعرفهم من جامعة DigitalOcean قد تخرجوا ونحتاج إلى تنظيف ملفاتهم والمجلد ذي الصلة. تأكد من أنك في دليل students/.

  1. cd /home/sammy/files/students

إذا قمت بتشغيل ls، قد تحتوي المجلد الخاص بك على بعض الملفات، مثل هذا:

Output
alex.txt drew.txt jamie.txt jesse.txt sammy.txt taylor.txt

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

تحذير: لاحظ أنه بمجرد إزالة ملف، لا يمكن التراجع عن العملية. تأكد من أنك تريد إزالة الملف قبل الضغط على ENTER.

  1. rm sammy.txt

الآن، إذا قمنا بتشغيل ls، سنلاحظ أن sammy.txt لم يعد في المجلد:

Output
alex.txt drew.txt jamie.txt jesse.txt taylor.txt

بينما الآن نعلم أنه يمكننا إزالة الملفات الفردية باستخدام rm، فإن ذلك ليس فعّالًا من حيث الوقت إذا كنا نريد إزالة المجلد بأكمله students/ وجميع محتوياته.

الأمر الذي يتم استخدامه لإزالة المجلدات يسمى rmdir، الذي يعني رفع المجلد directory. لننتقل إلى المجلد الأصلي لـ files حتى نتمكن من العمل مع المجلد students/ من هناك (لن نتمكن من حذف مجلد ونحن فيه حالياً).

  1. cd ..

من المجلد المستخدم /home/sammy/، يمكننا تشغيل rmdir على students.

  1. rmdir students

ومع ذلك، لا يعمل هذا، حيث نتلقى التعليق التالي:

Output
rmdir: failed to remove 'students': Directory not empty

لم يعمل الأمر كـ rmdir يعمل فقط على المجلدات الفارغة ولا يزال المجلد students يحتوي على ملفات فيه. (هنا، يمكنك إنشاء مجلد جديد فارغ، ومحاولة rmdir عليه. يمكن إزالة المجلدات الفارغة باستخدام rmdir.)

لإزالة المجلد مع الملفات الموجودة بداخله، سنحتاج إلى تجربة خيار مختلف. في علم الحاسوب، التكرار يُستخدم بشكل شائع للإشارة الذاتية التكرارية؛ بحيث يمكننا استدعاء العنصر الرئيسي وجميع تبعياته. باستخدام أمر rm، يمكننا إزالة المجلد الرئيسي students وجميع تبعيات محتواه بشكل تكراري. سنستخدم العلم -r، الذي يعني التكرار، ونمرر المجلد students كوسيط.

  1. rm -r students

في هذه النقطة، إذا قمنا بتشغيل ls، سنلاحظ أن students/ لم يعد موجودًا في الدليل الحالي، ولا يتوفر أي من الملفات التي كان يحتوي عليها، حيث تم حذفها جميعًا.

عندما تنتهي من جلسة الطرفية، وخاصةً عندما تكون تعمل على خادم عن بُعد، يمكنك الخروج من الطرفية باستخدام الأمر exit. عندما تشعر بالراحة بما قمت به في هذه الجلسة (نظرًا لعدم إمكانية استعادتها)، يمكنك كتابة ما يلي، تليه ENTER للخروج من الطرفية.

  1. exit

في الطرفية التفاعلية لدينا، سنتلقى الناتج التالي، مؤكدًا انتهاء جلستنا.

Output
Session ended

باكتمال هذه الجلسة، يمكنك تحديث هذه الصفحة ثم تشغيل طرفية جديدة لتجربة أوامر بديلة، أو إنشاء نظام ملفات جديد لاستكشافه.

الختام

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

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

Source:
https://www.digitalocean.com/community/tutorials/a-linux-command-line-primer