الفرق بين المراجعتين لصفحة: «Bash/Topics»

من موسوعة حسوب
تعديل تنسيق شيفرة bash
ط وضع بعض الأوامر في تنسيق الكود
 
(5 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
==[[Bash/Bash_and_Bash_scripts|صدفة Bash وبرامج Bash]]==
==[[Bash/Bash_and_Bash_scripts|صدفة Bash وبرامج Bash]]==
===[[Bash/common_shell_programs|البرامج الشائعة للصَّدَفة]]===
===[[Bash/common_shell_programs|البرامج الشائعة للصَّدَفة]]===
وظائف الصدفة وما تفعله إضافة إلى أنواعها المختلفة (sh، bash، csh، ... )


==== الوظائف العامة للصدفة ====
=== [[Bash/advantages_of_the_Bash|مزايا صدفة Bash]] ===
يفسر برنامج صَدَفة يونكس أوامر المستخدم التي يدخلها بنفسه أو التي يمكن استخراجها وقراءتها من ملف نصي يسمى شيفرة الصَّدَفة النصية (shell script) أو برنامج الصدفة(shell program). وتكون تلك الملفات النصية مفسّرة (interpreted) على خلاف الملفات المُجمّعة (compiled)، بمعنى أن الصدفة تقرأ الأوامرَ سطرًا سطرًا وتبحث عنها في النظام، على خلاف البرامج المُجمَّعة التي يحوِّل المُجمِّع (compiler) شيفرتها إلى ملف تنفيذي (executable file) مكتوب بلغة يستطيع الحاسوب فهمها -لغة الآلة-، ثم يُمكن استخدام ذلك الملف بعدها داخل ملف shell script. والمهمة الأساسية للصَّدَفة هي توفير بيئة للمستخدم يمكن تعديلها وإعدادُها بشكل مستقل عبر استخدام ملفات إعداد الموارد في الصدفة (shell resource configuration files).
استعراض لأهم مزايا صدفة Bash، مثل الصور المختلفة لاستدعاءات الصدفة، والتعابير الحسابية والشرطية والصدفة المحظورة، وكذلك الأوامر البديلة والمصفوفات، ... .


==== الأنواع المختلفة للصَّدَفة ====
===[[Bash/executing_commands|تنفيذ الأوامر في Bash]]===
يوفر نظام يونكس عادة أنواعًا مختلفة من الصدفة، تمامًا كما هو الحال في اللغات واللهجات المختلفة بالنسبة للبشر:
توضيح لما يحدث عند تنفيذ الأوامر في صدفة Bash، واستعراض لأهم الأوامر المُضمَّنة فيها.
* '''sh''' أو صدفة بورن (Bourne Shell): هي الصدفة الأصلية التي لا تزال موجودة ومستَخدمةً في أنظمة يونكس والبيئات التي ترتبط به، وهي صدفة بسيطة تتكون من برنامج صغير به بضع مزايا قليلة. وستجد هذه الصَّدَفة في أي نظام لينكس من أجل التوافق مع برامج يونكس، رغم أنها ليست الصدفة الافتراضية (standard shell).
* '''bash''' أو Bourne Again SHell: هي الصدفة الافتراضية في نظام جنو (GNU)، وتتميز بسهولة الاستخدام والمرونة، ويمكن القول أنها أكثر صَدَفة يُنصح المبتدئون باستخدامها رغم أنها في نفس الوقت أداة قوية للمستخدمين المتقدمين والمحترفين، كما أنها الصدفة الافتراضية للمستخدم العادي في أنظمة لينكس. وتحتوي صدفة bash على مجموعة من الإضافات (add-on) والملحقات (plugin)، ما يعني أنها متوافقة مع صدفة Bourne الأصلية، فالأوامر التي تعمل في sh ستعمل أيضًا في bash، لكن العكس قد لا يحدث أحيانًا، واعلم أن كل الأمثلة والتدريبات في هذا الشرح تستخدم bash.


* '''csh''' أو صدفة C: تحاكي أوامرُ هذه الصدفة أوامرَ لغة البرمجة الشهيرة C، ويستخدمها المبرمجون في الغالب.
===[[Bash/building_blocks|وحدات البناء الأساسية]] ===
* '''Tcsh''' أو صدفة TENEX C: هي نسخة محسّنة من صدفة C العادية، تتميز بأنها أكثر سرعة وسهولة في الاستخدام، لهذا يطلق عليها البعض صدفة Turbo C.
شرح للوحدات الأساسية التي تشكل صدفة Bash، مثل الأوامر والدوال والمعامِلات والتوسعات والبنية اللغوية، إضافة إلى كيفية تفسير الصدفة للأوامر التي تُدخل فيها، ... .
* '''ksh''' أو صدفة Korn: يفضّل المستخدمون القادمون من أنظمة يونكس استخدام تلك الصدفة، وهي أيضًا نسخة محسّنة من صدفة بورن، وتأتي بإعدادات افتراضية قد تكون صعبة على المبتدئين.
يقدّم ملف etc/shells/ صورة عامة عن أنواع الصدفات التي توجد في نظام لينكس عادي:<syntaxhighlight lang="bash">
hsoub:~> cat /etc/shells
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh
</syntaxhighlight>


وتوجد الصَّدَفة الافتراضية الخاصة بك في ملف etc/passwd/، في سطر يشبه السطر التالي الخاص بمستخدم اسمه hsoub:<syntaxhighlight lang="bash">
===[[Bash/developing_good_scripts|تطوير برامج Bash جيدة]]===
hsoub:L2NOfqdlPrHwE:504:504:Hsoub:/home/hsoub:/bin/bash
شرح للركائز التي تكوّن برامج جيدة للصدفة، والهيكل الذي يجب أن تكون عليه تلك البرامج، وأسلوب الترتيب والتنظيم.
</syntaxhighlight>
وللتبديل بين صدفة وأخرى، أدخل اسم الصدفة التي تريدها في الطرفية، وسيبحث النظام عن المجلد الذي يقع فيه ذلك الاسم باستخدام إعدادات PATH. وبما أن الصدفةَ ملفٌ تنفيذي -برنامج- فإن الصدفة الحالية ستفعِّل ذلك البرنامج وتُنفِّذُه، وسيظهر محثٌّ جديد غالبًا بسبب أن كل صدفة لها مظهرها الخاص:<syntaxhighlight lang="bash">
hsoub:~> tcsh
[hsoub@post21 ~]$
</syntaxhighlight>


===[[Bash/advantages_of_the_Bash|مزايا صدفة Bash]]===
===[[Bash/executing_commands|تنفيذ الأوامر في Bash]]===
===[[Bash/building_blocks|وحدات البناء الأساسية]] ===
===[[Bash/developing_good_scripts|تطوير برامج Bash جيدة]]===
==[[Bash/writing_and_debugging_scripts|كتابة وتنقيح برامج Bash]]==
==[[Bash/writing_and_debugging_scripts|كتابة وتنقيح برامج Bash]]==
===[[Bash/creating_and_running_a_script|إنشاء وتشغيل برنامج Bash]]===
===[[Bash/creating_and_running_a_script|إنشاء وتشغيل برنامج Bash]]===
كتابة برنامج Bash بسيط (shell script)، وتنفيذه في صدفة Bash.
===[[Bash/script_basics|أساسيات كتابة برامج Bash]]===
===[[Bash/script_basics|أساسيات كتابة برامج Bash]]===
تحديد الصدفة التي ستنفذ فيها برامج Bash، وكذلك إضافة تعليقات فيها.
===[[Bash/debugging_Bash_scripts|تنقيح برامج Bash]]===
===[[Bash/debugging_Bash_scripts|تنقيح برامج Bash]]===
كيفية تصحيح الأخطاء التي قد تحدث في برامج Bash، سواء تصحيح البرنامج ككل أو أجزاء منه.
==[[Bash/Bash_environment|بيئة Bash]]==
==[[Bash/Bash_environment|بيئة Bash]]==
===[[Bash/shell_initialization_files|ملفات تهيئة الصدفة]]===
===[[Bash/shell_initialization_files|ملفات تهيئة الصدفة]]===
نظرة على ملفات تهيئة الصدفة سواء على مستوى النظام أو لكل مستخدم.
===[[Bash/variables|المتغيرات]] ===
===[[Bash/variables|المتغيرات]] ===
تفصيل لأنواع المتغيرات وإنشاؤها وتصديرها، وكذلك المتغيرات المحفوظة في صدفة بورن و Bash، والمعامِلات الخاصة.
===[[Bash/quoting_characters|اقتباس المحارف]]===
===[[Bash/quoting_characters|اقتباس المحارف]]===
فائدة اقتباس المحارف في صدفة Bash، ونظرة على محارف الهروب والمحليات (Locales) واقتباس ANSI-C
===[[Bash/shell_expansion|التوسعات]]===
===[[Bash/shell_expansion|التوسعات]]===
تفصيل لأنواع التوسعات والإحلال المختلفة في Bash.
===[[Bash/aliases|الأوامر البديلة]]===
===[[Bash/aliases|الأوامر البديلة]]===
فائدة الأوامر البديلة وإنشاؤها وحذفها.
===[[Bash/more_Bash_options|المزيد من خيارات Bash]]===
===[[Bash/more_Bash_options|المزيد من خيارات Bash]]===
عرض الخيارات (options) للأوامر في صدفة Bash وتغييرها.
==[[Bash/regular_expressions|التعابير النمطية في Bash]]==
==[[Bash/regular_expressions|التعابير النمطية في Bash]]==
===[[Bash/examples_using_grep|أمثلة عن استخدام grep]]===
===[[Bash/examples_using_grep|التعابير النمطية وأمثلة عن استخدام grep]]===
نظرة على التعابير النمطية وأمر <code>grep</code> والعلاقة بينهما.
 
===[[Bash/pattern_matching_using_Bash_features|مطابقة الأنماط باستخدام ميزات Bash]]===
===[[Bash/pattern_matching_using_Bash_features|مطابقة الأنماط باستخدام ميزات Bash]]===
نظرة على مدى المحارف وفئاتها المختلفة.
==[[Bash/conditional_statements|البنى الشرطية في Bash]]==
==[[Bash/conditional_statements|البنى الشرطية في Bash]]==
===[[Bash/introduction_to_if|مقدمة إلى if]]===
===[[Bash/introduction_to_if|مقدمة إلى if]]===
===[[Bash/more_advanced_if_usage|استخدامات if المتقدمة]]===
نظرة على عبارة <code>if</code> الشرطية، وكذلك عبارة <code>then</code>، والتعابير والأوامر المستخدمة مع كل منهما، وكذلك فحص الملفات وخيارات الصدفة.
 
===[[Bash/more_advanced_if_usage|الاستخدامات المتقدمة لعبارة if الشَّرطية في Bash]]===
شرح مفصل للبُنى التي تستخدم <code>if/then/else</code> و <code>if/then/elif/else</code>.
 
===[[Bash/using_case_statements|استخدام البنية case]]===
===[[Bash/using_case_statements|استخدام البنية case]]===
شرح بسيط للحالات التي تُستخدم فيها عبارة case بدلًا من <code>if</code>، مع مثال من إحدى شيفرات <code>init</code>.
==[[Bash/writing_interactive_scripts|كتابة برامج Bash تفاعلية]]==
==[[Bash/writing_interactive_scripts|كتابة برامج Bash تفاعلية]]==
===[[Bash/displaying_user_messages|عرض رسائل المستخدم]]===
===[[Bash/displaying_user_messages|عرض رسائل المستخدم]]===
الفرق بين البرامج التفاعلية وغير التفاعلية في Bash، وشرح بسيط لأمر <code>echo</code>.
===[[Bash/catching_user_input|الحصول على مدخلات المستخدم]]===
===[[Bash/catching_user_input|الحصول على مدخلات المستخدم]]===
شرح لأمر <code>read</code> وواصفات الملفات وطلب مُدخلات من المستخدم، ومستندات <code>Here</code> وحالات استخدامها، وكذلك إعادة التوجيه وحالاتها المختلفة.
==[[Bash/repetitive_tasks|المهام التكرارية في Bash]]==
==[[Bash/repetitive_tasks|المهام التكرارية في Bash]]==
===[[Bash/for_loop|حلقة for]]===
===[[Bash/for_loop|حلقة for]]===
شرح لحلقة <code>for</code> وأمثلة عليها.
===[[Bash/while_loop|حلقة while]]===
===[[Bash/while_loop|حلقة while]]===
شرح لحلقة <code>while</code> وأمثلة عليها.
===[[Bash/until_loop|حلقة until]]===
===[[Bash/until_loop|حلقة until]]===
شرح لحلقة <code>until</code> وأمثلة عليها.
===[[Bash/redirection_and_loops|إعادة التوجيه والحلقات]]===
===[[Bash/redirection_and_loops|إعادة التوجيه والحلقات]]===
إعادة توجيه المدخلات والمخرجات في Bash.
===[[Bash/break_and_continue|الأمران break و continue]]===
===[[Bash/break_and_continue|الأمران break و continue]]===
شرح لأمري <code>break</code> و <code>continue</code> وعلاقتهما بالحلقات التكرارية في Bash.
===[[Bash/making_menus_with_the_select_built-in|إنشاء قوائم باستخدام الأمر المضمن select]]===
===[[Bash/making_menus_with_the_select_built-in|إنشاء قوائم باستخدام الأمر المضمن select]]===
شرح لأمر <code>select</code> وحالات استخدامه من أجل إنشاء قوائم.
===[[Bash/the_shift_built-in|استخدام الأمر المضمن shift]]===
===[[Bash/the_shift_built-in|استخدام الأمر المضمن shift]]===
شرح لأمر <code>shift</code> في Bash وحالات استخدامه المختلفة.
==[[Bash/more_on_variables|المزيد حول المتغيرات]]==
==[[Bash/more_on_variables|المزيد حول المتغيرات]]==
===[[Bash/types_of_variables|أنواع المتغيرات]]===
===[[Bash/types_of_variables|أنواع المتغيرات]]===
شرح للقيم العامة للمتغيرات والمتغيرات الثابتة واستخدام أمر <code>declare</code> في تصريح نوع القيم التي ستحملها المتغيرات.
===[[Bash/array_variables|المصفوفات]]===
===[[Bash/array_variables|المصفوفات]]===
شرح للمصفوفات في Bash وكيفية إنشائها وعلاقتها بالمتغيرات والتعديل فيها.
===[[Bash/operations_on_variables|العمليات على المتغيرات]]===
===[[Bash/operations_on_variables|العمليات على المتغيرات]]===
شرح لكيفية للعمليات المختلفة التي قد تتم على المتغيرات، مثل العمليات الحسابية والإحلال والتحول وحذف النصوص الفرعية، ... .
==[[Bash/functions|الدوال]]==
==[[Bash/functions|الدوال]]==
===[[Bash/introduction_to_functions|مقدمة إلى الدوال]]===
===[[Bash/introduction_to_functions|مقدمة إلى الدوال]]===
نظرة عامة على الدوال في Bash والبُنى اللغوية لها ومعامِلاتها الموضعية وعرضها في الصدفة.
===[[Bash/examples_of_functions_in_scripts|أمثلة عن الدوال في برامج Bash]]===
===[[Bash/examples_of_functions_in_scripts|أمثلة عن الدوال في برامج Bash]]===
شرح لبعض الأمثلة التي نستخدم فيه الدوال في Bash، مثل النسخ الاحتياطي عن بعد وضبط المسارات وإعادة التدوير.
==[[Bash/catching_signals|التقاط الإشارات]]==
==[[Bash/catching_signals|التقاط الإشارات]]==
===[[Bash/signals|الإشارات]]===
===[[Bash/signals|الإشارات]]===
نظرة عامة على الإشارات وإرسالها واستخدامها مع أمر <code>kill</code>.
===[[Bash/traps|الأفخاخ]]===
===[[Bash/traps|الأفخاخ]]===
نظرة عامة على الأفخاخ في Bash وكيف تفسرها الصدفة وأمثلة عليها.

المراجعة الحالية بتاريخ 01:03، 7 سبتمبر 2018

صدفة Bash وبرامج Bash

البرامج الشائعة للصَّدَفة

وظائف الصدفة وما تفعله إضافة إلى أنواعها المختلفة (sh، bash، csh، ... )

مزايا صدفة Bash

استعراض لأهم مزايا صدفة Bash، مثل الصور المختلفة لاستدعاءات الصدفة، والتعابير الحسابية والشرطية والصدفة المحظورة، وكذلك الأوامر البديلة والمصفوفات، ... .

تنفيذ الأوامر في Bash

توضيح لما يحدث عند تنفيذ الأوامر في صدفة Bash، واستعراض لأهم الأوامر المُضمَّنة فيها.

وحدات البناء الأساسية

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

تطوير برامج Bash جيدة

شرح للركائز التي تكوّن برامج جيدة للصدفة، والهيكل الذي يجب أن تكون عليه تلك البرامج، وأسلوب الترتيب والتنظيم.

كتابة وتنقيح برامج Bash

إنشاء وتشغيل برنامج Bash

كتابة برنامج Bash بسيط (shell script)، وتنفيذه في صدفة Bash.

أساسيات كتابة برامج Bash

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

تنقيح برامج Bash

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

بيئة Bash

ملفات تهيئة الصدفة

نظرة على ملفات تهيئة الصدفة سواء على مستوى النظام أو لكل مستخدم.

المتغيرات

تفصيل لأنواع المتغيرات وإنشاؤها وتصديرها، وكذلك المتغيرات المحفوظة في صدفة بورن و Bash، والمعامِلات الخاصة.

اقتباس المحارف

فائدة اقتباس المحارف في صدفة Bash، ونظرة على محارف الهروب والمحليات (Locales) واقتباس ANSI-C

التوسعات

تفصيل لأنواع التوسعات والإحلال المختلفة في Bash.

الأوامر البديلة

فائدة الأوامر البديلة وإنشاؤها وحذفها.

المزيد من خيارات Bash

عرض الخيارات (options) للأوامر في صدفة Bash وتغييرها.

التعابير النمطية في Bash

التعابير النمطية وأمثلة عن استخدام grep

نظرة على التعابير النمطية وأمر grep والعلاقة بينهما.

مطابقة الأنماط باستخدام ميزات Bash

نظرة على مدى المحارف وفئاتها المختلفة.

البنى الشرطية في Bash

مقدمة إلى if

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

الاستخدامات المتقدمة لعبارة if الشَّرطية في Bash

شرح مفصل للبُنى التي تستخدم if/then/else و if/then/elif/else.

استخدام البنية case

شرح بسيط للحالات التي تُستخدم فيها عبارة case بدلًا من if، مع مثال من إحدى شيفرات init.

كتابة برامج Bash تفاعلية

عرض رسائل المستخدم

الفرق بين البرامج التفاعلية وغير التفاعلية في Bash، وشرح بسيط لأمر echo.

الحصول على مدخلات المستخدم

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

المهام التكرارية في Bash

حلقة for

شرح لحلقة for وأمثلة عليها.

حلقة while

شرح لحلقة while وأمثلة عليها.

حلقة until

شرح لحلقة until وأمثلة عليها.

إعادة التوجيه والحلقات

إعادة توجيه المدخلات والمخرجات في Bash.

الأمران break و continue

شرح لأمري break و continue وعلاقتهما بالحلقات التكرارية في Bash.

إنشاء قوائم باستخدام الأمر المضمن select

شرح لأمر select وحالات استخدامه من أجل إنشاء قوائم.

استخدام الأمر المضمن shift

شرح لأمر shift في Bash وحالات استخدامه المختلفة.

المزيد حول المتغيرات

أنواع المتغيرات

شرح للقيم العامة للمتغيرات والمتغيرات الثابتة واستخدام أمر declare في تصريح نوع القيم التي ستحملها المتغيرات.

المصفوفات

شرح للمصفوفات في Bash وكيفية إنشائها وعلاقتها بالمتغيرات والتعديل فيها.

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

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

الدوال

مقدمة إلى الدوال

نظرة عامة على الدوال في Bash والبُنى اللغوية لها ومعامِلاتها الموضعية وعرضها في الصدفة.

أمثلة عن الدوال في برامج Bash

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

التقاط الإشارات

الإشارات

نظرة عامة على الإشارات وإرسالها واستخدامها مع أمر kill.

الأفخاخ

نظرة عامة على الأفخاخ في Bash وكيف تفسرها الصدفة وأمثلة عليها.