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

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

الأفكار الرئيسية المستخلصة

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

ما هو سطر الأوامر؟

يستخدم معظم المستخدمين في أغلب الأحيان واجهة مستخدم تصويرية (GUI) للتفاعل مع جهاز الكمبيوتر. تعتمد واجهات المستخدم التصويرية عادةً على الماوس أو اللمس للتلاعب بالنوافذ باستخدام الرموز والأزرار وأشرطة التمرير وما إلى ذلك.

سطر الأوامر هو عرض بديل لجهاز الكمبيوتر. يُشار إليه أحيانًا باسم &"a Shell","the الطرفية" أو "bash" أو "واجهة نصية&}{;; سطر الأوامر هو:

  • وسيلة للتفاعل مع برنامج كمبيوتر حيث يُدخِل المستخدم الأوامر، مثل:
open README.txt
  • طريقة للتنقل وتشغيل جهاز الكمبيوتر بدون ماوس.
  • طريقة غير قاسية لإنشاء الملفات والدلائل وقراءتها وتحديثها وحذفها، مثل:
mv README.txt readme.txt

يلاحظ GUI وسطر الأوامر الأمر نفسه. وهناك طرق مختلفة للتفاعل مع جهاز الكمبيوتر.

متى نستخدم سطر الأوامر؟

غالبًا ما يفضّل مطوّرو البرامج واجهات سطر الأوامر:

  • وهي توفر وسائل أكثر اختصارًا للتحكم في برنامج أو نظام تشغيل. ما السبب؟ ونظرًا لأن كل شيء يحدث في النافذة نفسها، فمن خلال الممارسة، يكون الأمر أقل جهدًا من البحث عن الأشياء ومعالجتها باستخدام الماوس.
  • حيث يمكن بسهولة عرض خيارات التحكّم في الأوامر. ما السبب؟ توفّر القوائم في واجهات المستخدم التصويرية عددًا قليلاً جدًا من الخيارات. في سطر الأوامر، هناك المئات من الأوامر، ويمكن أن تؤدي إضافة بعض الأحرف إلى أمر ما إلى تنفيذ العديد من الأوامر المختلفة، على سبيل المثال
  • ls ملف قائمة أساسي
  • ls -a يتم إدراج جميع الملفات، بما في ذلك الملفات المخفية عادةً.
  • ls -l القائمة الطويلة التي تعرض معلومات عن كل ملف
  • ls -R متكرر، سرد محتوى الأدلة
  • ls -la القائمة الطويلة لكل الملفات
  • وهي تجعل من السهل التعامل مع العديد من الملفات دفعة واحدة بطرق معقدة.
for i in *.png; do pngtogif $i `echo $i | sed s/png/gif/`; done
  • تقدم وسائل لبرمجة نظام التشغيل (برنامج Shell)، كمثال أعلاه هو برنامج Shell بسيط جدًا تم تصميمه لتعديل الصور ذات أسماء الملفات التي تنتهي بـ .png.

تطبيق سطر الأوامر

أجزاء أمر سطر الأوامر

تتألف جميع الأوامر من ثلاثة أجزاء:

  • ودائمًا ما يظهر الأمر (أو الأداة المساعدة) أولاً.
  • العلامات اختيارية، بناءً على الأداة المساعدة التي تستخدمها. تبدأ العلامات دائمًا بعلامة - (علامة الطرح).
  • الوسيطات هي الأمور التي يجب اتخاذ إجراء بشأنها أو طلب المعلومات اللازمة. أسماء الملفات غالبًا.

التأطير

السياق &الغرض

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

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

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

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

أهداف التعلُّم

سيتمكن الطلاب من

  • استخدام Terminal للتنقّل بين الملفات والمجلدات
  • سرد محتوى مجلد
  • إنشاء الملفات والمجلدات في سطر الأوامر
  • نقل الملفات والمجلدات
  • نسخ الملفات والمجلدات
  • حذف الملفات والمجلدات

البدء

الوصول إلى المحطة الطرفية

تأطير القسم والغرض منه

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

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

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

عند مناقشة عالمنا داخل الوحدة الطرفية، تكون الأدلة مماثلة للمجلدات (قد نطلق عليها أحيانًا اسم الأدلة).

تغيير الأدلة

تأطير القسم والغرض منه

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

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

# See your current location - abbreviation for 'print working directory'
pwd

سرد الملفات والأدلة المتاحة

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

لمعرفة الملفات أو المجلدات في الدليل الحالي، استخدِم الأمر ls (اختصار للقائمة) للاطّلاع على قائمة عرض المحتوى.

# See files and folders in current location - abbreviation for 'list'
ls

تغيير دليل العمل

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

البنية التي يتم من خلالها توجيه "سطر الأوامر" لنقلك إلى دليل جديد (المعروف أيضًا باسم المجلد) هي التالية cd (على السطر نفسه) من خلال المسار إلى المجلد الجديد.

إذا انتقلت إلى دليل داخل الدليل الذي أنت فيه حاليًا (أي مجلد فرعي من دليل العمل)، استخدم الأمر cd متبوعًا باسم المجلد.

# Change your current working directory (current location)
# Abbreviation for 'change directory'
cd Documents

يمكنك أيضًا الانتقال بدءًا من الدليل الرئيسي ~.

# Add a `~/` to begin from the home directory.
cd ~/Downloads

إذا غيّرت الأدلة ولكن يجب الرجوع إلى الدليل الرئيسي، يمكنك الانتقال مباشرةً إلى الصفحة الرئيسية باستخدام ~ أو باستخدام .. للانتقال إلى مستوى واحد.

# Option 1: navigate directly to the home directory
cd ~

# Option 2: navigate back one level
cd ..

يُرجى ملاحظة أنّ cd .. يرتفع (الرجوع) فقط إلى مستوى واحد، لذلك إذا أجريت تغييرًا على الأدلة ثلاث مرات حتى الآن (أسفل ثلاثة مستويات)، ستحتاج إلى استخدام cd .. ثلاث مرات للوصول إلى الصفحة الرئيسية، ولكنك ستحتاج إلى استخدام cd ~ مرة واحدة فقط.

التحدّيات البسيطة

  • استخدم ls للتعرّف على ما هو موجود في الدليل الحالي.
  • انتقِل مرة أخرى إلى الدليل الرئيسي واستخدِم ls للاطّلاع على محتوى المجلد الرئيسي.
  • اختر اسم أحد المجلدات الموجودة داخل الدليل الرئيسي وانتقل إلى هذا المجلد الجديد.
  • استخدم أمر القائمة لعرض ما بداخله.

تلميح: الإكمال التلقائي مع tab

عند تغيير الأدلة باستخدام الأمر cd، سيمنع خطأ إملائي من تنفيذ الأمر بشكل صحيح. ومع ذلك، سيؤدي استخدام المفتاح tab إلى الإكمال التلقائي مع اسم أي أدلة متاحة داخل الدليل الحالي. لذا، بدلاً من كتابة cd Documents، اكتب cd Do فقط ثم اضغط على المفتاح tab وسيتولّى المحطّة إكمال الأمر cd Documents/ تلقائيًا (أمّا / في النهاية، فهي اختيارية، ولكنّك تعرف أنّ الوجهة عبارة عن دليل).

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

  1. الدليل الذي تريد الانتقال إليه غير متاح من دليل العمل الحالي.
  2. هناك دليلان يحتويان على أسماء بداية متماثلة (مثل Documents وDownloads) ولم تقدّم معلومات كافية للإكمال التلقائي لتحديد الدليل الذي تريده. اضغط على tab مرة أخرى للاطلاع على قائمة بالأدلة التي يمكن أن تتطابق مع ما كتبته. ثم اكتب المزيد بعد ذلك (وهو ما يكفي بحيث يكون هناك نتيجة مطابقة واحدة فقط) واضغط على tab مرة أخرى.
  3. لقد ضمّنت خطأ إملائيًا في النصف الأول من الكلمة.

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

دلائل الوالدَين والأطفال

يمكن أن تربط الأدلة والملفات علاقة الطفل والوالدَين ببعضها البعض. إذا كانت directory_b هي داخل directory_a، تتم الإشارة إلى directory_b على أنها فرع من directory_a. يُعرَف directory_a بعد ذلك باسم أحد directory_b. إذا كان العنصر الثالث، my_file، داخل directory_b، يُعتبَر عنصرًا فرعيًا لـ directory_b وطفلاً لـ directory_a.

وغالبًا ما يتم توضيح هذه العلاقات في المنتديات باستخدام مخطط النص، على النحو التالي:

directory_a/
  directory_b/
    my_file

لاحِظ أن أسماء الأدلة تنتهي باللاحقة / بينما لا تنتهي أسماء الملفات. ويُشار إلى هذه المؤسسة الهرمية بوجهٍ عام باسم البنية المتفرعة لنظام الملفات.

الأشقاء

وإذا كان هناك عدة ملفات أو مجلدات في المستوى نفسه، تُعرف باسم الأشقاء. مثال: إذا كان file_b وfile_c موجودين داخل directory_a، هما شقيقان.

سيبدو مخطط النص كما يلي:

directory_a/
  file_b
  file_c

ونظرًا لأنّ file_b وfile_c هما شقيقان، تتم إضافة المسافة البادئة إليهما بنفس المبلغ.

مسارات الملفات

رسم بياني هنا أكثر تعقيدًا يعرض علاقات بين الطفل والوالدة

north_america/
  united_states/
    new_york/
      new_york_city/
        manhattan
        queens
        staten_island
        bronx
        brooklyn
    california/
      mountain_view
      los_angeles
    illinois/
      chicago
  mexico/
    mexico_city

في هذا المثال، new_york_city/ هو اسم دليل، لكنه يتضمن أيضًا مسارًا، والذي يوضح تفاصيل كيفية الوصول إليه: ~/north_america/united_states/new_york/new_york_city/.

لتغيير الدليل إلى new_york_city/,، يمكنك التنقّل في خطوات باستخدام الأسماء، أو يمكنك التنقّل إلى أقصى حدّ باستخدام أمر واحد باستخدام المسار.

# Option 1: in four steps, using directory names.
cd ~ # navigate home, where these folders are located
cd north_america/
cd united_states/
cd new_york/
cd new_york_city/

# Option 2: in one step, using the path.
cd ~/north_america/united_states/new_york/new_york_city/

ملخص أوامر التنقل

# See your current location - abbreviation for 'print working directory'
pwd

# Change to a new location - abbreviation for 'change directory'
cd ~/Downloads

# Navigates into a child directory called `some_directory`
# Only works if `some_directory` is a child of the current directory
cd some_directory

# Navigates into the parent of the current directory
# `..` is shorthand for parent.
cd ..

# Will take you back home
cd

التحدّيات البسيطة

  • استخدم pwd لمعرفة المجلد الحالي الذي كنت فيه.
  • التغيير إلى دليل مختلف وتأكيد الموقع الجديد.
  • يُرجى إعادة المحاولة والانتقال إلى مجلد مختلف. يمكنك استخدام الأوامر الجديدة لمعرفة موقعك الجغرافي والاطّلاع أيضًا على الملفات في هذا الدليل.

صناعة الملفات والأدلة

تأطير القسم والغرض منه

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

يُرجى الانتباه إلى موقعك الجغرافي في الوحدة الطرفية قبل إنشاء ملفاتك ومجلداتك.

# See your current location.
pwd

لإنشاء ملف، استخدِم الأمر touch متبوعًا باسم الملف.

# `touch` creates a new file.
touch style.css

عند إنشاء ملفات، يمكنك إضافة امتداد الملف لتحديد النوع. أمثلة على أنواع الملفات:

  • إنشاء .js كملف JavaScript
  • ينشئ .html ملف HTML.
  • ينشئ .css ملف CSS.
  • ينشئ .md ملف ترتيب.

يجب ألا تتضمن أسماء الملفات مسافات.

# make a file - this will create a file in the current folder
touch my_text_file.txt

# make a file - this will create a file on the desktop
touch ~/Desktop/my_new_style_sheet.css

إنشاء ملفات متعددة

يمكنك إنشاء ملفات متعددة في آنٍ واحد عن طريق تضمين مسافات بين كل اسم من الأسماء.

# make multiple files - this will create multiple files in the current folder
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html

إنشاء الأدلة

لإنشاء دليل أو مجلد، استخدم الأمر mkdir - وهو اختصار للأمر "make directory' - متبوعًا باسم المجلد.

# make a folder - this will create a directory in the current folder
mkdir my_new_folder

# make a folder - this will create a directory on your desktop
mkdir ~/Desktop/my_new_desktop_folder

إنشاء عدّة أدلة

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

# make multiple folders - this will create multiple folders in the current
# directory
mkdir folder_one folder_two folder_three

التحدّيات البسيطة

  • أنشئ ملفًا جديدًا.
  • أنشئ بضعة ملفات في أمر واحد.
  • أنشئ دليلًا جديدًا.
  • أنشئ بعض الأدلة الجديدة. حاول استخدام أمر واحد فقط لإجراء ذلك.
  • باستخدام ما تعرفه عن التنقل بين الأدلة وإنشاء الملفات والمجلدات، يمكنك إنشاء "family_tree'" على جهاز سطح المكتب باستخدام الملفات والمجلدات.

&نقل ونسخ

نقل الملفات والأدلة

تأطير القسم والغرض منه

يمكننا نقل ملف أو مجلد إلى سطر الأوامر، ولكننا بحاجة دائمًا إلى تحديد ثلاثة عناصر:

  1. نستخدم الأمر mv - الاختصار لنقل".
  2. اتَّبِع أمر النقل مع اسم الملف أو المجلد الذي تريد نقله.
  3. اتّبِع اسم الملف مع الوجهة التي تريد نقله إليها.

على سبيل المثال، إذا كانت لديك بنية ملفات مثل ما يلي:

my_child_folder/
my_parent_folder/

ونلاحظ أنّه لم يتم تنظيمه على النحو المطلوب، أي أنّه شقيق توأم أو طفل. استخدِم هذا الأمر:

# move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder
mv my_child_folder/ my_parent_folder/

ستبدو البنية الناتجة كما يلي.

my_parent_folder/
  my_child_folder/

في ما يلي بعض الصيغ الأخرى للأمر mv:

# move a directory - this will move the folder `my_folder` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_folder ~/Desktop/my_desktop_folder

# move a file - this will move the file `my_file.txt` into the file named
# `my_folder` that is in the current folder
mv my_file.txt my_folder

# move a file - this will move the file `my_file.txt` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_file.txt ~/Desktop/my_desktop_folder

تحذير: قد يكون الأمر mv أيضًا هو أمر إعادة تسمية ملف باستخدام البنية mv old_name new_name. وهذا يعني أنه في حال نقل ملف إلى دليل غير متوفّر أو إذا أخطأت في كتابة الوجهة، ستتم إعادة تسمية الملف نفسه بدلاً من نقله.

التحدّيات البسيطة

  1. أنشئ 5 ملفات نصية (txt.).
  2. أنشِئ دليلًا جديدًا.
  3. انقل الملفات الخمسة التي أنشأتها إلى المجلد.
  4. يمكنك إنشاء مجلد ونقل هذا المجلد الجديد داخل مجلد آخر.

نسخ الملفات والأدلة

تأطير القسم والغرض منه

أثناء إنشاء تطبيقات الويب، قد نكرِّر نسخة من ملف (إذا كنا ننشئ صفحتين مشابهتين، قد لا نتمكن من البدء من جديد)، كما أن بنية الأمر cp (نسخة) تشبه بنية mv إلى حد كبير.

نسخ ملف

يتألف أمر النسخ من ثلاثة أجزاء:

  1. الأمر cp - اختصار نسخة
  2. اسم الملف المطلوب نسخه
  3. اسم النسخة (إذا كنت تبقى في المجلد نفسه) أو الموقع والاسم (إذا كنت تنتقل إلى مجلد آخر).
# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`
# The copy will be located in your Documents folder.
cp my_file.txt ~/Documents/my_file_copy.txt

# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`.
# Since no directory was specified, this will occur within the same folder.
cp my_file.txt my_file_copy.txt

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

# Copy a file named `my_file.txt` to your Documents folder.
# The destination ends with a directory, so the copy will have the same name.
cp my_file.txt ~/Documents/

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

نسخ دليل

يُعد نسخ مجلد أو دليل أكثر تعقيدًا إلى حد ما، نظرًا لأنك قد لا تنسخ المجلد فحسب، بل تنسخه أيضًا.

  1. الأمر cp -R - اختصار نسخة متكررة - يمكنك استخدام هذا الأمر لكل من المجلدات الفارغة وغير الفارغة
  2. اسم المصدر (مجلد أو ملف نريد نقله)
  3. اسم النسخة (إذا كنت تبقى في المجلد نفسه) أو الموقع والاسم (إذا كنت تنتقل إلى مجلد آخر).

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

# copy a directory named `my_folder` from your Desktop folder to a folder
# called `my_folder_copy` in your Documents folder
cp -R ~/Desktop/my_folder ~/Documents/my_folder_copy

# copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder
cp -R my_folder my_folder_copy

ملاحظة: المكوّن -R للسمة cp -R يُسمى الإبلاغ. تبدأ العلامات دائمًا بشرطة، ويتم استخدامها في مجموعات مع الأوامر لتقديم تعليمات أكثر تحديدًا حول كيفية تنفيذ هذا الأمر.

التحدّيات البسيطة

  1. إنشاء ملف باسم my_original.txt
  2. أنشِئ نسخة من my_original.txt باسم جديد في المجلد نفسه.
  3. أنشِئ دليلًا جديدًا.
  4. أنشِئ نسخة من هذا الدليل ولكن اختَر اسمًا مختلفًا.
  5. أنشئ نسخة من الملف المنسوخ (من الخطوة 2) ولكن ضعها في الدليل المنسوخ (من الخطوة 4).

إزالة الملفات &amp؛ المجلدات

تأطير القسم والغرض منه

يمكننا حذف الملفات والمجلدات في سطر الأوامر، ولكن هذا الإجراء نهائي.

إزالة ملف

لإزالة ملف، يمكننا استخدام الأمر rm (اختصار لإزالة) متبوعًا باسم الملف.

# delete a file in the working directory
rm unwanted_file.txt

# delete a file not in the working directory
rm ~/Desktop/unwanted_file.txt

إزالة دليل فارغ

لإزالة دليل فارغ، يمكننا استخدام الأمر rmdir - اختصار إزالة الدليل - متبوعًا باسم المجلد.

# delete an empty folder
rmdir empty_directory

# delete an empty folder
rmdir ~/Documents/my_files/empty_directory

إزالة دليل غير فارغ

لإزالة مجلد غير فارغ، يجب وضع علامة -R، وهي عبارة عن اختصار، مكرّر، بعد الأمر rm الذي يخبر جهاز الكمبيوتر بحذف المحتوى داخل المجلد. كاختصار، يستخدم بعض مطوّري البرامج العلامة -Rf التي يزيل كل شيء (وإلا قد تتلقى رسائل مطالبة بشأن حذف بعض الملفات أو المجلدات الفرعية).

# delete a folder which contains other files or folders
rm -R directory_which_isnt_empty

# delete a folder which contains other files or folders
rm -R ~/Downloads/directory_which_isnt_empty

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

التحدّيات البسيطة

  1. إنشاء 4 ملفات.
  2. احذف ملفَين.
  3. أنشِئ مجلدًا.
  4. يمكنك إنشاء مجلد آخر وإنشاء ملف داخل هذا المجلد.
  5. احذف كلا الدليلين.

يمكنك العثور على رمز هذا الدرس التطبيقي في المجلد التالي داخل مستودع الطلاب الذي نزّلته من GitHub: command-line/labs/around-the-world

الخلفية

اقترب موعد الفصل الدراسي الدراسي في الخارج وحان الوقت لبدء التخطيط لرحلاتك الأوروبية...

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

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

لا داعي للقلق باستخدام سحر سطر الأوامر سيظل بإمكانك إصلاحه خلال وقت قصير.

مهمة

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

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

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

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

الإضافات

  1. اجمع كل ملفاتك مرة أخرى، ثم شق طريقك إلى مدينة من اختيارك. إعادة تنظيم الملفات مرة أخرى، مع الإقامة في تلك المدينة.
  2. يمكنك تجربة إحدى ألعاب سطر الأوامر المسلّية والمرتبطة أدناه
    لعبة Terminus
    لعبة متقدّمة (الاستعداد لاستخدام Google)
  3. هل أنت من المعجبين بلعبة Star Wars؟ جرِّب تشغيل telnet towel.blinkenlights.nl في سطر الأوامر والضغط على Enter.... (ملاحظة: في الإصدارات الحديثة من نظام التشغيل MacOS، لم يعد الأمر telnet مثبّتًا تلقائيًا، وفي هذه الحالة، يمكن استخدام الأمر nc towel.blinkenlights.nl 23 بدلاً منه).

يمكنك العثور على رمز هذا الدرس التطبيقي في المجلد التالي داخل مستودع الطلاب الذي نزّلته من GitHub: command-line/labs/bashing-away-repetition

هل أنت مستعد لتقليل التكرار من استخدام سطر الأوامر اليومي؟ رائع، أنا كذلك.

الخلفية

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

أولاً، ما المقصود بـ Bash؟

السؤال GREAT. ولحسن الحظ، أجاب صديق "ريان تشادويك" على هذا البرنامج الرائع للعثور على برامج تعليمية حول سطر الأوامر.

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

أليس لديك تكرار؟ That's ما أتحدث عنه اليوم

برنامج تعليمي

أولاً، عليك تزويد الكمبيوتر بإذن لتتمكّن من تشغيل النص البرمجي. ويمكنك إجراء ذلك من خلال تنفيذ الأمر أدناه.

chmod 755 myScript.sh

تَمَامْ، دَهْ وَقْتْ إِنْشَاءِ الْبَرْنَامَجِ الْأَوَّلْ. انتقِل إلى myScript.sh (يمكنك معرفة ما إذا كان بإمكانك فتح الملف من سطر الأوامر). في نهاية الملف، أضِف:

echo "Hello World"

قيد التشغيل الآن:

./myScript.sh

في الوحدة الطرفية. ** TA DA ** من المفترض أن ترى &quot؛مرحبًا بالعالم&quot؛ مطبوعًا في الوحدة الطرفية.

احتفال

سيعمل كل ما تكتبه في النص البرمجي Bash كما لو كنت كتبته في الوحدة الطرفية الخاصة بك. لنستعرض مثالاً واحدًا آخر قبل الانتقال إلى الإضافات. أولاً، أنشئ ملفًا للنص البرمجي، يمكن أن يُسمى هذا أي شيء تريده، ولكن يجب أن يحتوي على الإضافة .sh . التالي تأكّد من منح إذن النص البرمجي للتشغيل عن طريق كتابة chmod 755 ثم اسم النص البرمجي في الوحدة الطرفية والضغط على Enter. في كل مرة تبدأ فيها نصًا برمجيًا جديدًا لـ bash، تأكد من إكمال هاتين الخطوتين.

تحدي المقدمة

والآن، لنحاول كتابة نص برمجي ينشئ مجلدًا جديدًا. ما الأمر الذي نعرف أنه ينشئ مجلدًا جديدًا؟ إذا كنت تفكّر في كلمة تبدأ بـ m وتنتهي بـ kdir، هذا يعني أنك على المسار الصحيح. اكتب الأمر الذي سيؤدي إلى إنشاء المجلّد الجديد وقدّم اسمًا آخر رائعًا في ملف .sh الجديد ثم شغّله في الوحدة الطرفية.

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

لا تخشى استخدام البرنامج التعليمي المرتبط أعلاه والاستعداد لإتقان أفضل مهاراتك في استخدام خدمات Google. اكتب النصوص البرمجية التي تنفّذ ما يلي وشغِّلها:

المهام الرئيسية

  1. أضف أمرًا إلى الملف الذي أنشأته أعلاه وانتقل إلى المجلد الذي تنشئه. (ما الأمر الذي نستخدمه لتغيير الأدلة؟)
  • ختم تاريخ اسم ملفك الجديد. على سبيل المثال، يجب أن ينشئ برنامجك مجلدًا باسم &"2017-12-07my_super_cool_folder"
  1. يطبع &quot؛دليلي الحالي هو: &quot؛ متبوعًا بدليل العمل، و &في ما يلي قائمة بكل شيء في هذا الدليل! &quot، متبوعة بمحتوى الدليل الحالي.
  2. تعرَّف على كيفية إدخال النص البرمجي bash، وإنشاء ملف استنادًا إلى سلسلة الإدخال هذه. يتضمن البرنامج التعليمي المرتبط سابقًا في الدرس بعض الأمثلة الرائعة في قسم المتغيرات للتحقق من ذلك.
  3. اطلب من المستخدم إدخال اسمه، ثم اطبع مقولة&مرحبًا، يسرّنا أن نكتب اسمه هنا.
  • جرِّب أن تطلب من المستخدم المزيد من المعلومات وإنشاء رسالة مخصّصة له.

النص

يوفّر سطر الأوامر (أو الوحدة الطرفية) تفاعلاً مباشرًا مع نظام التشغيل الكمبيوتر (OS) - كل ما تفعله واجهة المستخدم التصويرية (GUI)، ولكن من خلال الأوامر النصية، بدءًا من التنقّل وحتى إنشاء ملفات جديدة وتنفيذ النصوص البرمجية. سيتم استخدام سطر الأوامر لفتح الملفات وبدء بيئة التطوير عند استخدام Google App Engine.

تطبيق سطر الأوامر

الوصول إلى المحطة الطرفية

اختصار Mac:

  • افتح Spotlight باستخدام الأمر + مفتاح المسافة.
  • اكتب Terminal في بحث Spotlight.
# See your current location - abbreviation for 'print working directory'.
pwd

# Change to a new location - abbreviation for 'change directory'.
cd /Users/jsmith/Downloads

# Navigate into a child directory called `some_directory`. This only works if
# `some_directory` is a child of the current directory.
cd some_directory

# Navigate into the parent of the current directory. `..` is shorthand for parent.
cd ..

# Return home.
cd

# Change directories to a folder called `my_folder` that is within the current
# directory.
cd my_folder ```

#### File Path Shorthand `~`

The `~` is generally short for "home". Home can be configured to mean different
things for different users and across different operating systems, but in the
example above, for a Mac user named "jsmith", the `~` is short for that user's
home directory: `/Users/jsmith`.

This means that `~/Downloads` and `/Users/jsmith/Downloads` are the same for
this user. But starting with a `~` allows us to specify absolute file paths
(agnostic of your current working directory, and starting at the root `/`)
without having to write out a full path each time.

### <a id="view"></a>Viewing the Contents of Folders

```bash
# See files and folders in current location - this is an abbreviation for 'list'.
ls

إنشاء الملفات والمجلدات

إنشاء الملفات

# Make a file - this will create a file in the current folder.
touch my_text_file.txt

# Make a file - this will create a file on the Desktop.
touch ~/Desktop/my_new_style_sheet.css

# Make multiple files - this will create multiple files in the current folder.
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html

إنشاء المجلدات

# Make a folder - this will create a directory in the current folder.
mkdir my_new_folder

# Make a folder - this will create a directory on your Desktop.
mkdir ~/Desktop/my_new_desktop_folder

# Make multiple folders - this will create multiple folders in the current
# directory.
mkdir folder_one folder_two folder_three

نقل الملفات &المجلدات

نقل الملفات

# Move a file - this will move the file `my_file.txt` into the folder named
# `my_folder` that is in the current folder.
mv my_file.txt my_folder
# Note that this will rename the file instead of moving it if the destination
# folder does not yet exist.  Read below for more details on renaming.

# Move a file - this will move the file `my_file.txt` into the folder named
# `my_desktop_folder` that is located on the Desktop.
mv my_file.txt ~/Desktop/my_desktop_folder

نقل المجلدات

# Move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder.
mv my_child_folder my_parent_folder

# Move a directory - this will move the folder `my_folder` into the folder
# named `my_desktop_folder` that is located on the Desktop.
mv my_folder ~/Desktop/my_desktop_folder

تتم إعادة تسمية المركبات

ضَع في اعتبارك أن mv هو أيضًا الأمر نفسه المستخدَم لإعادة تسمية الملفات أو المجلدات.

# Rename a file from `old_name.txt` to `new_name.txt`.
mv old_name.txt new_name.txt

نسخ الملفات والمجلدات

نسخ الملفات

# Copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder.
cp ~/Desktop/my_file.txt ~/Documents

# Copy a file named `my_file.txt` to a file called `my_file_copy.txt` within
# the same folder.
cp my_file.txt my_file_copy.txt

نسخ المجلدات

# Copy a directory named `my_folder` (and its contents) from your Desktop
# folder to a folder called `my_folder_copy` in your Documents folder.
cp -r ~/Desktop/my_folder ~/Documents/my_folder_copy

# Copy a directory named `my_folder` (and its contents) from the current
# working directory to a folder called `my_folder_copy` in the current working
# directory.
cp -r my_folder my_folder_copy

حذف الملفات &amp؛ المجلدات

حذف الملفات

# Delete a file in the current working directory.
rm unwanted_file.txt

# Delete a file using its exact location and name.
rm ~/Desktop/unwanted_file.txt

حذف المجلدات

# Delete an empty folder.
rmdir empty_directory

# Delete a folder which contains other files or folders.
rm -r directory_which_isnt_empty

النصائح

  • تدرَّب باستخدام سطر الأوامر، حتى عندما لا تعتقد أنك بحاجة إلى ذلك. وسيتحسّن الأداء بمرور الوقت.
  • سيُكمل المفتاح tab اسم الملف أو المجلد تلقائيًا (يمكن أن يكون حسّاسًا لحالة الأحرف).
  • وإذا كان هناك ملف أو مجلد واحد متطابق فقط، سيتم إكماله تلقائيًا.
  • إذا كان هناك العديد من الملفات أو المجلدات المتطابقة، اضغط على مفتاح Tab مرتين لعرض قائمة بالتطابقات المتبقية.
  • سيؤدي السهم المتجه للأعلى / للأسفل إلى التنقل داخل سجلّ الأوامر حتى لا تضطر إلى إعادة كتابة الأوامر.
  • استخدِم الأمر clear لمحو نافذة الوحدة الطرفية. ويتيح لك هذا الاحتفاظ بجميع أعمالك السابقة - انتقل للأعلى للاطلاع عليها.
  • استخدِم reset لإعادة تشغيل الوحدة الطرفية. لن يؤدي ذلك إلى الحفاظ على عملك السابق على الشاشة، ولكن يمكن أن يؤدي إلى حل العديد من المشاكل إذا بدأت الوحدة الطرفية في العمل بطرق غير متوقعة.
  • الضغط على option + arrow لتحريك المؤشر بمقدار كلمة

ملخّص أفضل الممارسات

  • انتقِل إلى محطة الدفع باستخدام cd أو cd .. أو cd <folder name>.
  • عرض محتوى المجلدات باستخدام ls.
  • إنشاء ملفات باستخدام touch وإنشاء مجلدات باستخدام mkdir
  • نقل الملفات والمجلدات باستخدام mv <item to move> <destination>
  • نسخ الملفات والمجلدات باستخدام cp <item to copy> <destination>
  • يمكنك حذف الملفات والمجلدات باستخدام rm <item to remove>.

السؤال 1

ما الذي ستستخدمه لتحديد دليل العمل الحالي؟

  1. pwd
  2. ls
  3. cd
  4. mkdir
  5. touch

السؤال 2

كيف يمكنك الانتقال إلى مستويين من دليل العمل الحالي؟

  1. mv ~
  2. cd ../..
  3. mv up/up
  4. cd ^(2)

السؤال 3

ما الأمر الذي ستستخدمه لإعادة تسمية ملف؟

  1. mv
  2. cd
  3. ls
  4. python
  5. rename

السؤال 4

لماذا سيؤدي الأمر mv script.py إلى عرض رسالة خطأ؟

  1. لأن "script.py&#39؛ اسم الملف غير صالح.
  2. نظرًا لعدم إمكانية تتبع الأمر mv بعد أي معلومات أخرى،
  3. هذا سؤال خداع؛ لن ينتج عنه خطأ.
  4. يتطلّب نقل ملف وسيطتَين على الأقل، سواء كان هدفًا أو وجهة.

السؤال 5

ماذا سينفذ الأمر cd ~؟

  1. غيِّر دليل العمل إلى الدليل الرئيسي.
  2. تكرار الطلب السابق
  3. استخدِم خوارزمية لتحديد الأمر الأكثر فائدة في الوقت الحالي.
  4. عرض خطأ

السؤال 6

أيّ مما يلي ليس سببًا لاستخدام علامة التبويب لإكمال أسماء الملفات تلقائيًا؟

  1. لأنه يوفّر الوقت.
  2. لأنها تساعد في التخلّص من الأخطاء الإملائية
  3. لأنها تتطلب طاقة معالجة أقل.

السؤال 7

إذا حاول مطوّر برامج جديد إنشاء ملف باسم &"my script.py"، لماذا لن يعمل الأمر touch my script.py؟

  1. لأن touch لا يمكنه إنشاء ملفات جديدة.
  2. إنّ الإضافة .py ليست امتداد ملف صالح.
  3. لأنّه سينشئ ملفَين، أحدهما باسم &"my" والآخر &"script.py" بدلاً من ملف واحد فقط.
  4. لأنه من المستحيل إنشاء ملفات جديدة من سطر الأوامر.

السؤال 1

ما الذي ستستخدمه لتحديد دليل العمل الحالي؟

pwd

السؤال 2

كيف يمكنك الانتقال إلى مستويين من دليل العمل الحالي؟

مع cd ../.. ستنتقل إلى مستويين (يمثّل كل .. مستوى واحدًا أعلاه).

السؤال 3

ما الأمر الذي ستستخدمه لإعادة تسمية ملف؟

يتم استخدام mv لنقل ملف من مكان إلى آخر ويمكن استخدامه لتغيير اسم الملف أيضًا.

السؤال 4

لماذا سيؤدي الأمر mv script.py إلى عرض رسالة خطأ؟

يتطلب الأمر mv وسيطتين، وملف مصدر وملف وجهة.

السؤال 5

ماذا سينفذ الأمر cd ~؟

سيؤدي ذلك إلى تغيير دليل العمل إلى الدليل الرئيسي. يُستخدم الحرف الخاص ~ لتحديد الدليل الرئيسي للمستخدم الحالي. ويمكن استخدامه أيضًا مع اسم مستخدم مختلف: ~user2 للتوجيه إلى مجلده الرئيسي.

السؤال 6

أيّ مما يلي ليس سببًا لاستخدام علامة التبويب لإكمال أسماء الملفات تلقائيًا؟

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

السؤال 7

إذا حاول مطوّر برامج جديد إنشاء ملف باسم &"my script.py"، لماذا لن يعمل الأمر touch my script.py؟

ستنشئ ملفين بدلاً من ملف واحد فقط. سيؤدي الأمر touch إلى إنشاء ملفات جديدة. في المسافات الطرفية، يتم الفصل بين الفواصل وليس الأحرف التي سيتم تضمينها في اسم الملف. من الأفضل تجنُّبها تمامًا، ولكن إذا كان عليك استخدامها، يجب لف اسم الملف بين علامتَي اقتباس:

touch "my script.py"

السؤال 1

الأمر الطرفية لتغيير الأدلة هو:

  1. move
  2. mkdir
  3. pwd
  4. cd

السؤال 2

ما الأمر الذي ستنفّذه إذا كنت تريد الانتقال إلى المجلد الرئيسي في دليل العمل الحالي؟

  1. cd up
  2. cd .
  3. cd ..
  4. cd ~

السؤال 3

ما الأمر الذي يتم استخدامه لإنشاء الملفات؟

  1. touch
  2. mkdir
  3. create
  4. pwd

السؤال 4

أي من الأمرَين التاليَين سيؤدي إلى إنشاء ملفين باسم index.html وstyle.css؟

  1. touch index.html, touch style.css
  2. touch index.html, style.css
  3. touch index.html style.css
  4. touch index.html + style.css

السؤال 5

ما هو الأمر الذي تستخدمه لإعادة تسمية ملف أو مجلد؟

  1. rename
  2. move
  3. mv
  4. rm

السؤال 6

ما العلامة التي يحتاج إليها الأمران rm وcp في المجلدات؟

  1. -f
  2. -r
  3. -x
  4. -d

السؤال 7

لنقل projects إلى ~/Documents وإعادة تسميته إلى Projects، ما هو الأمر الذي يجب أن يكون فارغًا؟

cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects
  1. pwd
  2. cd projects
  3. mv ~ projects
  4. cd ~/Documents
  5. ls

السؤال 8

ما الذي سيؤدي إليه الأمر التالي؟

rm -r projects

  1. حذف ملف باسم projects
  2. حذف مجلد باسم projects
  3. إعادة تسمية ملف باسم projects
  4. البحث في محتوى الدليل الحالي عن projects

السؤال 1

الأمر الطرفية لتغيير الأدلة هو:

الأمر الطرفية لتغيير الأدلة هو cd. ويكون الأمر نفسه اختصارًا لـ&&quot؛تغيير الدليل&;.

السؤال 2

ما الأمر الذي ستنفّذه إذا كنت تريد الانتقال إلى المجلد الرئيسي في دليل العمل الحالي؟

أمر الانتقال إلى المجلد الرئيسي هو cd ..

السؤال 3

ما الأمر الذي يتم استخدامه لإنشاء الملفات؟

وأمر إنشاء الملفات هو touch.

السؤال 4

أي من الأمرَين التاليَين سيؤدي إلى إنشاء ملفين باسم index.html وstyle.css؟

سينشئ الأمر touch index.html style.css الملفَين. ليس من الضروري استخدام فاصلة ويمكن إنشاء أي عدد من الملفات بهذه الطريقة، مع الفصل بينها بمسافات.

السؤال 5

ما هو الأمر الذي تستخدمه لإعادة تسمية ملف أو مجلد؟

على الرغم من أنّ الاختصار يشير إلى "نقل&&; ويمكن استخدامه لنقل الملفات أو المجلدات, mv يمكن أيضًا استخدامه لإعادة تسمية الملفات والمجلدات.

السؤال 6

ما العلامة التي يحتاج إليها الأمران rm وcp في المجلدات؟

تتطلب أوامر rm وcp علامة -r لكي تعمل على المجلدات، حيث تشير العلامة -r إلى "recursive" وتعيد تشغيل الأمر لأي ملفات ومجلدات مضمّنة.

السؤال 7

لنقل projects إلى ~/Documents وإعادة تسميته إلى Projects، ما هو الأمر الذي يجب أن يكون فارغًا؟

cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects

ولأنّنا سنبدأ في الدليل الرئيسي، علينا تشغيل الأمر cd ~/Documents لتنفيذ الأمر النهائي في الدليل الصحيح.

السؤال 8

ما الذي سيؤدي إليه الأمر التالي؟

rm -r projects

سيحذف الأمر إمّا ملفًا أو مجلدًا باسم projects لأنه يُسمى باسم -r، أو بعلامة متكرّرة. بدون هذا الإبلاغ، لن يعمل هذا الأمر إلا على حذف ملف بهذا الاسم.