




السمعة:
- إنضم22 ديسمبر 2023
- المشاركات 192
- الحلول 1
- مستوى التفاعل 288
- النقاط 63
السلام عليكم ورحمة الله وبركاته
أهلا بكم مرة آخرى مع موضوع جديد في سلسلة تطبيقات عملية على أنظمة التشغيل
في هذا الدرس سنقوم بإذن الله بالإجابة على هذة الاسئلة :
ما هي أوامر لينكس التي نحتاجها في تطبيقاتنا العملية
ما معنى صلاحيات وهل جميع الأشخاص لديهم نفس الصلاحيات أم أن هناك فرق في ذلك حسب رتبة الشخص
كيف نتنقل بين الملفات والمجلدات وكيف ننتقل من بيئة عمل الى آخرى عن طريق ال terminal command
ما هي أنواع المسارات (Paths)
كل هذه الأسئلة وأكثر سنتعلمها اليوم بإذن الله
إذا كنت تشاهد هذا الموضوع قبل مقدمة السلسلة فمن فضلك توقف قليلاً واذهب إلى هذا الرابط مقدمة في سلسلة تطبيقات عملية على أنظمة التشغيل وأقرأ عما سنفعله في هذه السلسلة وأيضاً قم بدراسة الموضوع السابق ثم عد مجدداً لكي نبدأ على بركة الله في هذا الدرس
لنستذكر سريعا تعريف النافذة الطرفية (command terminal): هي نافذة تتيح لك كتابة وتنفيذ الأوامر النصية للتواصل مع النظام وتعمل عن طريق كتابة أمر معين ثم يتولى النظام تنفيذه ويعرض لك النتيجة مباشرةً.
الآن لنبدأ سويا بتعلم بعض الأوامر الخاصة بهذه النافذة , بسم الله :
أهلا بكم مرة آخرى مع موضوع جديد في سلسلة تطبيقات عملية على أنظمة التشغيل
في هذا الدرس سنقوم بإذن الله بالإجابة على هذة الاسئلة :




كل هذه الأسئلة وأكثر سنتعلمها اليوم بإذن الله
إذا كنت تشاهد هذا الموضوع قبل مقدمة السلسلة فمن فضلك توقف قليلاً واذهب إلى هذا الرابط مقدمة في سلسلة تطبيقات عملية على أنظمة التشغيل وأقرأ عما سنفعله في هذه السلسلة وأيضاً قم بدراسة الموضوع السابق ثم عد مجدداً لكي نبدأ على بركة الله في هذا الدرس
لنستذكر سريعا تعريف النافذة الطرفية (command terminal): هي نافذة تتيح لك كتابة وتنفيذ الأوامر النصية للتواصل مع النظام وتعمل عن طريق كتابة أمر معين ثم يتولى النظام تنفيذه ويعرض لك النتيجة مباشرةً.
الآن لنبدأ سويا بتعلم بعض الأوامر الخاصة بهذه النافذة , بسم الله :
mkdir
mkdir : اختصار لـِ Make Directory ويعمل هذا الأمر على إنشاء مجلد واحد أو عدة مجلدات.
الصيغة العامة له :
directory_name(s) : ال(s) بمعنى يمكنك انشاء اكثر من مجلد بنفس السطر
الآن لنأخذ مثال عملي على ذلك :
لنقوم بإنشاء 3 مجلدات على سطح المكتب ويمكنك تجريب العدد الذي تريده :
ولكن قبل ذلك لكي ننتقل الى سطح المكتب نفذ الأمر cd Desktop (سنتعلمه في هذا الدرس إن شاء الله )
ثم أعطي الأمر mkdir لكي يتم إنشاء المجلدات كما في الصورة التالية :
ها هي المجلدات تم انشاءها على سطح المكتب بفضل الله
" ليس من الضرورة أن تنشئ المجلدات على سطح المكتب يمكنك أنشائها في أي مكان تريدة ولكن بعد الإنتقال إليه وكيفية الإنتقال من مسار الى آخر سنتعلمها ان شاء الله اليوم ، الآن فقط اريد أن تنتقل الى سطح المكتب لكي ترى بعينك عملية انشاء مجلد أو حذفه وما الى ذلك "

كود:
mkdir [options] directory_name(s)

لنقوم بإنشاء 3 مجلدات على سطح المكتب ويمكنك تجريب العدد الذي تريده :
ولكن قبل ذلك لكي ننتقل الى سطح المكتب نفذ الأمر cd Desktop (سنتعلمه في هذا الدرس إن شاء الله )
ثم أعطي الأمر mkdir لكي يتم إنشاء المجلدات كما في الصورة التالية :
ها هي المجلدات تم انشاءها على سطح المكتب بفضل الله
" ليس من الضرورة أن تنشئ المجلدات على سطح المكتب يمكنك أنشائها في أي مكان تريدة ولكن بعد الإنتقال إليه وكيفية الإنتقال من مسار الى آخر سنتعلمها ان شاء الله اليوم ، الآن فقط اريد أن تنتقل الى سطح المكتب لكي ترى بعينك عملية انشاء مجلد أو حذفه وما الى ذلك "
rmdir
rmdir : اختصار لـِ (Remove directory) ويقوم هذا الأمر بحذف مجلد واحد أو أكثر
الصيغة العامة له :
الآن لنأخذ مثال عملي على ذلك :
لنعمل على حذف مجلدين من المجلدات التي قمنا بأنشاءها :
تم حذف dir1 و dir2

كود:
rmdir [options] directory_name(s)

لنعمل على حذف مجلدين من المجلدات التي قمنا بأنشاءها :
تم حذف dir1 و dir2
touch
touch : هذا الأمر يقوم بإنشاء ملف واحد أو عدة ملفات وهذة الملفات ممكن أن تحمل أي امتداد تريدة مثلا .txt أو .c أو .html وغيرها من الأمتدادات
الصيغة العامة له :
الآن لنأخذ مثال عملي على ذلك :
لنقوم بإنشاء 4 ملفات بإمتدادات مختلفة :
وهنا ايضا تم أنشاء الملفات والحمد لله .

كود:
touch [options] filename(s)

لنقوم بإنشاء 4 ملفات بإمتدادات مختلفة :
وهنا ايضا تم أنشاء الملفات والحمد لله .
rm
rm : اختصار لـِ remove ويقوم هذا الأمر بحذف ملف أو عدة ملفات
الصيغة العامة له :
الآن لنأخذ مثال عملي على ذلك :
لنقوم بحذف ملفين من الملفات التي تم أنشاءها :
هذا الأمر يأخذ بعض الخيارات(options) المهمه لنتعلمها سوياً :

كود:
rm [options] filename(s)

لنقوم بحذف ملفين من الملفات التي تم أنشاءها :
هذا الأمر يأخذ بعض الخيارات(options) المهمه لنتعلمها سوياً :
الخيار | الوصف |
i- | لتأكيد الحذف لكل ملف قبل إزالته أي أنه يخبرك هل تريد حذف الملف حقا؟ وتجيب بنعم ![]() ![]() |
* | لحذف جميع الملفات في المكان الموجود فيه مثلا سطح المكتب تقوم بحذف كل الملفات الموجودة بسطح المكتب . |
الآن لنعيد إنشاء الملفات التي قمنا بحذفها ثم لنقوم بحذف الملف f2.txt و f3.html ولكن بكل حذف سنتعطية جواب مختلف :
في السطر الثاني قمت بحذف الملف f2.txt بعدها قام بسؤالي اذا ما كنت اريد حقا ذلك واجبته ب y بمعنى yes اريد ذلك .
أما في السطر الثالث قمت بحذف الملف f3.html ولسبب ما لم أعد أريد حذفه ، وهو قام بسؤالي اذا ما كنت أريد حقا ذلك وأجبته ب n بمعنى no أي أنني لا اريد ذلك
الأن أعدت انشاء الملفات التي حذفتها وقمت باستخدام الخيار * كما يلي :
هنا قام بسؤالي ما اذا كنت اريد حقا حذف جميع العناصر الموجودة بسطح المكتب وبعد الاجابه بنعم قام بحذف جميع الملفات الموجودة بسطح المكتب
ls
ls : اختصار لـِ List ويقوم هذا الأمر بعرض محتويات المكان الموجود فيه مثلا سطح المكتب او المجلد الرئيسي للمستخدم (~)
الصيغة العامة له :
الآن لنأخذ مثال عملي على ذلك :
لنقوم بإنشاء ملفات ومجلدات بالقدر الذي نريدة ثم لنقوم بعرضها :
هناك عدة خيارات ايضاً للأمر ls لنتعرف على أهمها :

كود:
ls options arguments

لنقوم بإنشاء ملفات ومجلدات بالقدر الذي نريدة ثم لنقوم بعرضها :
هناك عدة خيارات ايضاً للأمر ls لنتعرف على أهمها :
الخيار | الوصف |
ls -a | يعرض جميع المحتويات في المكان الحالي، بما في ذلك العناصر التي تبدأ بنقطة (.) والمخفية ايضاً. |
ls -l | يعرض وضع الملف بالكامل، من صلاحيات من حجم (بالبايتات) من وقت آخر تعديل لكل ملف وغيرها. |
ls -la | يعرض جميع المحتويات في المكان الحالي، بما في ذلك العناصر التي تبدأ بنقطة (.) بتنسيق قائمة تعرض وضع الملف بالكامل. |
ls pathname | لعرض الملفات في المكان الذي تحدده. |
ls -l pathname | لعرض الملفات في المكان الذي تحدده بتنسيق قائمة تعرض وضع الملف بالكامل. |
مثال على أول خيار ls -a :
مثال على ثاني خيار ls -l :
الآن جميعكم تقولون في نفسكم هذة قائمة ام سحر

لا تقلقو يا اصدقائي الموضوع بسيط جدا

لذا خذ نفساُ عميقاُ وقل بسم الله ولنبدأ شيئا فشيئا بشرح هذة القائمة والشرح سيكون على أول سطر لنفهم كل عنصر ماذا يعني :
كود:
drwxrwxr-x 2 sakura sakura 4096 Oct 27 18:50 dir1

الحرف الأول اما d أو - أو p أو i : ال d تعنى انه النوع هو مجلد directory اما اذا كان – فهذا يعني أنه ملف وال p تعني أنه pipe و i للروابط .
باقي الحروف rwxrwxr-x : هذه هي الصلاحيات للأشخاص المصرح لهم بفتح الملفات.
وهذه الصلاحيات تقسم الى 3 أقسام وهي : (r --> read , w --> write , x --> execute)
إما قراءة أو كتابه (تعديل) أو تنفيذ ، ويستطيع الشخص فعل اكثر من شيء في آنٍ واحد.
إذا لم نرد أن نعطى أحدهم واحدة أو أكثر من هذة الصلاحيات نضع اشارة – بمكانه .
وتم تقسم هؤلاء الاشخاص الى 3 اقسام :
1. المستخدم : وهو مالك الملف او المجلد وله اول 3 من السطر وهم باللون الحمر rwx
2. المجموعة : وهي المجموعة المالكة للمجلد أو الملف وله ثاني 3 من السطر وهم باللون الازرق rwx
3. الاخرين : وهم الاشخاص العاديين ليس لهم ملكية للملف او المجلد ولهم ثالث 3 من السطر باللون الاخضر r-x
وهذه صورة للتوضيح اكثر :
لنرجع الى السطر الأول ونكمل

في حالة المجلدات، يشير هذا الرقم إلى:
1) رابط للمجلد نفسه.
2) رابط للمجلد الرئيسي (parent directory) الذي يحتوي عليه.
إذا كان داخل المجلد مجلدات فرعية، فسيزداد هذا الرقم، لأن كل مجلد فرعي يحتوي على رابط يشير إلى المجلد الرئيسي الذي يحتوي عليه.





وهذة صورة تلخص سطراً آخر للتوضيح أكثر :
cd
cd : اختصار لـِ (Change Directory) ويُستخدم هذا الأمر لتغيير المكان الحالي إلى مكان آخر.
الصيغة العامة له :
Name directory : هو المسار او المكان الذي تريد الإنتقال إليه
الآن لنأخذ مثال عملي على ذلك :
لو كنتُ في سطح المكتب وأريد الذهاب الى dir1 :
نلاحظ أن المسار اختلف واصبح Desktop/dir1/~ وكأنني كنت في سطح المكتب وضغطت بالفأرة مرتين على المجلد dir1 لكي أفتحه
الأن في داخل المجلد dir1 استطيع أن افعل ما اريد مثلا انشاء مجلد آخر و ملفين :
الإنتقال ليس بالضرورة أن يكون للأمام دائما ربما أريد العودة الى المجلد السابق الذي كنت فيه ، مثلا ألست الأن في المجلد dir1 لنفرض انني اريد العوردة الى سطح المكتب فماذا افعل
؟
أو مثلا أنا في مجلد ال downloads وأريد الذهاب الى dir2 ستقول في نفسك أن المجلد dir2 ليس موجوداً في ال downloads فماذا سأفعل في هذه الحالة أيضاً
؟
هناك مجموعة من Arguments يمكننا استخدامها للتحكم في كيفية التنقل واهمها ما يلي :
1. " .. ": نستخدم .. للعودة إلى المجلد السابق للمجلد الحالي الذي أنت فيه
مثال على ذلك ، أنا في dir1 وأريد العودة الى سطح المكتب :
2. " ~ " : للعودة إلى المجلد الرئيسي للمستخدم (/home/sakura) الذي تحدثنا عنه سابقا (~)
وبغض النظر عن موقعك الحالي، سينقلك هذا الأمر إلى مجلد المستخدم الرئيسي
مثال على ذلك انا موجود في مجلد dir4 الموجود في dir1 الموجود في سطح المكتب واريد العودة الى ال (/home/sakura) :
3. " - " : للعودة إلى المكان السابق قبل الأنتقال إلى المجلد الحالي.
مثال على نفس المثال السابق بعدما ذهبت الى ال (/home/sakura) اريد العودة الى المكان الذي كنت فيه dir4 :
4. " / " : للذهاب الى مجلد الجذر للنظام وهو أعلى مستوى في هيكلة الملفات ويمكنك من هنا الوصول إلى جميع الملفات والمجلدات على النظام. ومجلد الجذر يحتوي بداخلة المجلدات الفرعية للنظام مثل /bin و /home و /var و /etc وغيرها.
مثال على ذلك :
أخيرا سنتعلم عن المسارات(paths)
المسارات: هي الطرق الموجودة داخل نظامك والتي تقودك وتعرفك مكان وجود كل عنصر داخل النظام بالنسبة للمجلد الرئيسي.
وهيه تشبه الى حد كبير الطرق في حياتنا فمثلا : لنقل أنك تسكن في عمّان وتريد الذهاب الى المسجد الأقصى المبارك أن شاء الله
أولا ستبدأ من نقطة معينة في عمان لكي تذهب الى الحدود ثم عند دخولك الى فلسطين ستذهب الى مدينة القدس ومن هناك عبر الشوارع والأزقة حتى تصل إلى البلدة القديمة وداخل البلدة القديمة، سوف تسير في طرق محددة حتى تصل إلى باب العامود (أحد الأبواب الرئيسية المؤدية إلى المسجد). ومن هناك تتبع مسار محدد وصولاً إلى المسجد الأقصى.
هذه الطرق التي سلكناها من عمان الى المسجد الاقصى المبارك هي المسارات (paths)
وللمسارات نوعان ويمكننا استخدم أياً منها :
1. مسار مطلق (Absolute Path) : يستخدم للوصول إلى مكان معين عن طريق المسار الكامل من الجذر الى المكان الذي تريده.
لا يشترط أن تذهب من المكان الموجود فيه حاليا الى هناك .
مثلا انا في Documents واريد الذهاب الى dir4 مباشره :
2. مسار نسبي (Relative Path): يستخدم للوصول إلى مكان معين من الموقع الحالي الموجود فيه .
مثال على الإنتقال السابق نفسه ولكن باستخدام المسار النسبي :
انتقلنا الى /home/sakura ومن هناك ذهبنا الى سطح المكتب ومنه الى dir1 ومنه الى dir4 .
اعتقد أن الصورة للمسارات فيها بعض التشويش لديكم لذا سأخبركم بطريقة ممتازة لإتقانها وكنت اعتمدتها عند دراستي لهذا الموضوع أول مره
وهي رسم المسارات وكأنك تقوم برسم خارطة وبالفعل هذه الطريقة من أفضل الطرق لكي لا تضيع في الطريق
لذا لو رسمنا المسارات التي انشئناها في هذا الدرس ستكون بهذا الشكل :
نبدأ من Root الذي يحتوي مجموعة من المجلدات من ضمنها /home الذي يحتوي مجموعة من المجلدات ومن ضمنها Desktop وفية قمنا بأنشاء مجلدات وملفات وبداخل المجلد dir1 انشئنا أيضا مجلد وملفين .
آخر جزئية من درسنا لهذا اليوم ستقومون أنتم بفعلها
:
اريد منكم بعض تنفيذ بعض المهام لقياس مدى فهمكم للدرس :

كود:
cd [name directory]

لو كنتُ في سطح المكتب وأريد الذهاب الى dir1 :
نلاحظ أن المسار اختلف واصبح Desktop/dir1/~ وكأنني كنت في سطح المكتب وضغطت بالفأرة مرتين على المجلد dir1 لكي أفتحه
الأن في داخل المجلد dir1 استطيع أن افعل ما اريد مثلا انشاء مجلد آخر و ملفين :
الإنتقال ليس بالضرورة أن يكون للأمام دائما ربما أريد العودة الى المجلد السابق الذي كنت فيه ، مثلا ألست الأن في المجلد dir1 لنفرض انني اريد العوردة الى سطح المكتب فماذا افعل

أو مثلا أنا في مجلد ال downloads وأريد الذهاب الى dir2 ستقول في نفسك أن المجلد dir2 ليس موجوداً في ال downloads فماذا سأفعل في هذه الحالة أيضاً

هناك مجموعة من Arguments يمكننا استخدامها للتحكم في كيفية التنقل واهمها ما يلي :
1. " .. ": نستخدم .. للعودة إلى المجلد السابق للمجلد الحالي الذي أنت فيه
مثال على ذلك ، أنا في dir1 وأريد العودة الى سطح المكتب :
2. " ~ " : للعودة إلى المجلد الرئيسي للمستخدم (/home/sakura) الذي تحدثنا عنه سابقا (~)
وبغض النظر عن موقعك الحالي، سينقلك هذا الأمر إلى مجلد المستخدم الرئيسي
مثال على ذلك انا موجود في مجلد dir4 الموجود في dir1 الموجود في سطح المكتب واريد العودة الى ال (/home/sakura) :
3. " - " : للعودة إلى المكان السابق قبل الأنتقال إلى المجلد الحالي.
مثال على نفس المثال السابق بعدما ذهبت الى ال (/home/sakura) اريد العودة الى المكان الذي كنت فيه dir4 :
4. " / " : للذهاب الى مجلد الجذر للنظام وهو أعلى مستوى في هيكلة الملفات ويمكنك من هنا الوصول إلى جميع الملفات والمجلدات على النظام. ومجلد الجذر يحتوي بداخلة المجلدات الفرعية للنظام مثل /bin و /home و /var و /etc وغيرها.
مثال على ذلك :
أخيرا سنتعلم عن المسارات(paths)

المسارات: هي الطرق الموجودة داخل نظامك والتي تقودك وتعرفك مكان وجود كل عنصر داخل النظام بالنسبة للمجلد الرئيسي.
وهيه تشبه الى حد كبير الطرق في حياتنا فمثلا : لنقل أنك تسكن في عمّان وتريد الذهاب الى المسجد الأقصى المبارك أن شاء الله
أولا ستبدأ من نقطة معينة في عمان لكي تذهب الى الحدود ثم عند دخولك الى فلسطين ستذهب الى مدينة القدس ومن هناك عبر الشوارع والأزقة حتى تصل إلى البلدة القديمة وداخل البلدة القديمة، سوف تسير في طرق محددة حتى تصل إلى باب العامود (أحد الأبواب الرئيسية المؤدية إلى المسجد). ومن هناك تتبع مسار محدد وصولاً إلى المسجد الأقصى.
هذه الطرق التي سلكناها من عمان الى المسجد الاقصى المبارك هي المسارات (paths)
وللمسارات نوعان ويمكننا استخدم أياً منها :
1. مسار مطلق (Absolute Path) : يستخدم للوصول إلى مكان معين عن طريق المسار الكامل من الجذر الى المكان الذي تريده.
لا يشترط أن تذهب من المكان الموجود فيه حاليا الى هناك .
مثلا انا في Documents واريد الذهاب الى dir4 مباشره :
2. مسار نسبي (Relative Path): يستخدم للوصول إلى مكان معين من الموقع الحالي الموجود فيه .
مثال على الإنتقال السابق نفسه ولكن باستخدام المسار النسبي :
انتقلنا الى /home/sakura ومن هناك ذهبنا الى سطح المكتب ومنه الى dir1 ومنه الى dir4 .
اعتقد أن الصورة للمسارات فيها بعض التشويش لديكم لذا سأخبركم بطريقة ممتازة لإتقانها وكنت اعتمدتها عند دراستي لهذا الموضوع أول مره
وهي رسم المسارات وكأنك تقوم برسم خارطة وبالفعل هذه الطريقة من أفضل الطرق لكي لا تضيع في الطريق

لذا لو رسمنا المسارات التي انشئناها في هذا الدرس ستكون بهذا الشكل :
نبدأ من Root الذي يحتوي مجموعة من المجلدات من ضمنها /home الذي يحتوي مجموعة من المجلدات ومن ضمنها Desktop وفية قمنا بأنشاء مجلدات وملفات وبداخل المجلد dir1 انشئنا أيضا مجلد وملفين .
آخر جزئية من درسنا لهذا اليوم ستقومون أنتم بفعلها

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