مضى على الشبكة و يوم من العطاء.

الدرس الثاني : أوامر لينكس (الجزء الأول)

Sakura02Sakura02 is verified member.

./عضو نشيط
.:: الرقابة والتنظيم ::.
.:: طاقم المشرفين ::.

السمعة:

السلام عليكم ورحمة الله وبركاته

أهلا بكم مرة آخرى مع موضوع جديد في سلسلة تطبيقات عملية على أنظمة التشغيل

في هذا الدرس سنقوم بإذن الله بالإجابة على هذة الاسئلة :

❓ ما هي أوامر لينكس التي نحتاجها في تطبيقاتنا العملية
❓ ما معنى صلاحيات وهل جميع الأشخاص لديهم نفس الصلاحيات أم أن هناك فرق في ذلك حسب رتبة الشخص
❓ كيف نتنقل بين الملفات والمجلدات وكيف ننتقل من بيئة عمل الى آخرى عن طريق ال terminal command
❓ ما هي أنواع المسارات (Paths)

كل هذه الأسئلة وأكثر سنتعلمها اليوم بإذن الله


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

12506-82c79048cfa7c899b71c63326ca3121d.webp

لنستذكر سريعا تعريف النافذة الطرفية (command
terminal): هي نافذة تتيح لك كتابة وتنفيذ الأوامر النصية للتواصل مع النظام وتعمل عن طريق كتابة أمر معين ثم يتولى النظام تنفيذه ويعرض لك النتيجة مباشرةً.

الآن لنبدأ سويا بتعلم بعض الأوامر الخاصة بهذه النافذة , بسم الله :
mkdir : اختصار لـِ Make Directory ويعمل هذا الأمر على إنشاء مجلد واحد أو عدة مجلدات.

📝 الصيغة العامة له :
كود:
mkdir [options] directory_name(s)
directory_name(s) : ال(s) بمعنى يمكنك انشاء اكثر من مجلد بنفس السطر

🔰الآن لنأخذ مثال عملي على ذلك :
لنقوم بإنشاء 3 مجلدات على سطح المكتب ويمكنك تجريب العدد الذي تريده :
ولكن قبل ذلك لكي ننتقل الى سطح المكتب نفذ الأمر cd Desktop (سنتعلمه في هذا الدرس إن شاء الله )
ثم أعطي الأمر mkdir لكي يتم إنشاء المجلدات كما في الصورة التالية :

1730837942417.webp

ها هي المجلدات تم انشاءها على سطح المكتب بفضل الله


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

📝الصيغة العامة له :
كود:
rmdir [options] directory_name(s)

🔰الآن لنأخذ مثال عملي على ذلك :
لنعمل على حذف مجلدين من المجلدات التي قمنا بأنشاءها :

1730838172819.webp

تم حذف dir1 و dir2

touch : هذا الأمر يقوم بإنشاء ملف واحد أو عدة ملفات وهذة الملفات ممكن أن تحمل أي امتداد تريدة مثلا .txt أو .c أو .html وغيرها من الأمتدادات

📝 الصيغة العامة له :
كود:
touch [options] filename(s)

🔰الآن لنأخذ مثال عملي على ذلك :
لنقوم بإنشاء 4 ملفات بإمتدادات مختلفة :

1730838406094.webp

وهنا ايضا تم أنشاء الملفات والحمد لله .
rm : اختصار لـِ remove ويقوم هذا الأمر بحذف ملف أو عدة ملفات

📝الصيغة العامة له :
كود:
rm [options] filename(s)

🔰الآن لنأخذ مثال عملي على ذلك :
لنقوم بحذف ملفين من الملفات التي تم أنشاءها :

1730838615396.webp


هذا الأمر يأخذ بعض الخيارات(options) المهمه لنتعلمها سوياً :

الخيار
الوصف
i-
لتأكيد الحذف لكل ملف قبل إزالته أي أنه يخبرك هل تريد حذف الملف حقا؟ وتجيب بنعم (y) او لا (n) .
*
لحذف جميع الملفات في المكان الموجود فيه مثلا سطح المكتب تقوم بحذف كل الملفات الموجودة بسطح المكتب .

الآن لنعيد إنشاء الملفات التي قمنا بحذفها ثم لنقوم بحذف الملف f2.txt و f3.html ولكن بكل حذف سنتعطية جواب مختلف :
1730838885201.webp

في السطر الثاني قمت بحذف الملف f2.txt بعدها قام بسؤالي اذا ما كنت اريد حقا ذلك واجبته ب y بمعنى yes اريد ذلك .
أما في السطر الثالث قمت بحذف الملف f3.html ولسبب ما لم أعد أريد حذفه ، وهو قام بسؤالي اذا ما كنت أريد حقا ذلك وأجبته ب n بمعنى no أي أنني لا اريد ذلك


الأن أعدت انشاء الملفات التي حذفتها وقمت باستخدام الخيار * كما يلي :
1730838936242.webp

هنا قام بسؤالي ما اذا كنت اريد حقا حذف جميع العناصر الموجودة بسطح المكتب وبعد الاجابه بنعم قام بحذف جميع الملفات الموجودة بسطح المكتب

ls : اختصار لـِ List ويقوم هذا الأمر بعرض محتويات المكان الموجود فيه مثلا سطح المكتب او المجلد الرئيسي للمستخدم (~)

📝الصيغة العامة له :
كود:
ls options arguments

🔰الآن لنأخذ مثال عملي على ذلك :
لنقوم بإنشاء ملفات ومجلدات بالقدر الذي نريدة ثم لنقوم بعرضها :

1730839180756.webp


هناك عدة خيارات ايضاً للأمر ls لنتعرف على أهمها :

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

مثال على أول خيار ls -a :
1730839481858.webp


مثال على ثاني خيار ls -l :
1730839512612.webp


الآن جميعكم تقولون في نفسكم هذة قائمة ام سحر :rolleyes: ؟
لا تقلقو يا اصدقائي الموضوع بسيط جدا 😁 فقط يحتاج منك الى القليل من التركيز
لذا خذ نفساُ عميقاُ وقل بسم الله ولنبدأ شيئا فشيئا بشرح هذة القائمة والشرح سيكون على أول سطر لنفهم كل عنصر ماذا يعني :

كود:
drwxrwxr-x 2 sakura sakura 4096 Oct 27 18:50 dir1

🔸 drwxrwxr-x : هذه هي صلاحيات للأشخاص المصرح لهم بفتح هذه الملفات والمجلدات ويتم قراءتها كالتالي :

الحرف الأول اما 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

وهذه صورة للتوضيح اكثر :

1730839799186.webp


لنرجع الى السطر الأول ونكمل

🔸 الرقم "2" : يمثل عدد الروابط (Links) التي تشير إلى هذا المجلد.

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

🔸 sakura : الاولى هي اسم المالك (user owner)

🔸 sakura : الثانية هي اسم المجموعة المالكة (group owner)

🔸 4096 : حجم الملف او المجلد بالبايت

🔸 Oct 27 18:50 : تاريخ ووقت آخر تعديل على الملف او المجلد

🔸 dir1 : اسم المجلد أو الملف

وهذة صورة تلخص سطراً آخر للتوضيح أكثر :
1730839826081.webp

cd : اختصار لـِ (Change Directory) ويُستخدم هذا الأمر لتغيير المكان الحالي إلى مكان آخر.

📝 الصيغة العامة له :
كود:
cd [name directory]
Name directory : هو المسار او المكان الذي تريد الإنتقال إليه

🔰الآن لنأخذ مثال عملي على ذلك :
لو كنتُ في سطح المكتب وأريد الذهاب الى dir1 :

1730839937768.webp


نلاحظ أن المسار اختلف واصبح Desktop/dir1/~ وكأنني كنت في سطح المكتب وضغطت بالفأرة مرتين على المجلد dir1 لكي أفتحه



الأن في داخل المجلد dir1 استطيع أن افعل ما اريد مثلا انشاء مجلد آخر و ملفين :
1730839964553.webp


الإنتقال ليس بالضرورة أن يكون للأمام دائما ربما أريد العودة الى المجلد السابق الذي كنت فيه ، مثلا ألست الأن في المجلد dir1 لنفرض انني اريد العوردة الى سطح المكتب فماذا افعل 🤔؟
أو مثلا أنا في مجلد ال downloads وأريد الذهاب الى dir2 ستقول في نفسك أن المجلد dir2 ليس موجوداً في ال downloads فماذا سأفعل في هذه الحالة أيضاً 🤔 ؟

هناك مجموعة من Arguments يمكننا استخدامها للتحكم في كيفية التنقل واهمها ما يلي :

1. " .. ": نستخدم .. للعودة إلى المجلد السابق للمجلد الحالي الذي أنت فيه
مثال على ذلك ، أنا في dir1 وأريد العودة الى سطح المكتب :
1730840211312.webp



2. " ~ " : للعودة إلى المجلد الرئيسي للمستخدم (/home/sakura) الذي تحدثنا عنه سابقا (~)
وبغض النظر عن موقعك الحالي، سينقلك هذا الأمر إلى مجلد المستخدم الرئيسي
مثال على ذلك انا موجود في مجلد dir4 الموجود في dir1 الموجود في سطح المكتب واريد العودة الى ال (/home/sakura) :
1730840233083.webp



3. " - " : للعودة إلى المكان السابق قبل الأنتقال إلى المجلد الحالي.
مثال على نفس المثال السابق بعدما ذهبت الى ال (/home/sakura) اريد العودة الى المكان الذي كنت فيه dir4 :
1730840255476.webp



4. " / " : للذهاب الى مجلد الجذر للنظام وهو أعلى مستوى في هيكلة الملفات ويمكنك من هنا الوصول إلى جميع الملفات والمجلدات على النظام. ومجلد الجذر يحتوي بداخلة المجلدات الفرعية للنظام مثل /bin و /home و /var و /etc وغيرها.
مثال على ذلك :
1730840276127.webp



أخيرا سنتعلم عن المسارات(paths) 🛤️
المسارات: هي الطرق الموجودة داخل نظامك والتي تقودك وتعرفك مكان وجود كل عنصر داخل النظام بالنسبة للمجلد الرئيسي.

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

هذه الطرق التي سلكناها من عمان الى المسجد الاقصى المبارك هي المسارات (paths)

وللمسارات نوعان ويمكننا استخدم أياً منها :

1. مسار مطلق (Absolute Path) :
يستخدم للوصول إلى مكان معين عن طريق المسار الكامل من الجذر الى المكان الذي تريده.
لا يشترط أن تذهب من المكان الموجود فيه حاليا الى هناك .
مثلا انا في Documents واريد الذهاب الى dir4 مباشره :

1730840322661.webp



2. مسار نسبي (Relative Path): يستخدم للوصول إلى مكان معين من الموقع الحالي الموجود فيه .
مثال على الإنتقال السابق نفسه ولكن باستخدام المسار النسبي :

1730840386327.webp

انتقلنا الى /home/sakura ومن هناك ذهبنا الى سطح المكتب ومنه الى dir1 ومنه الى dir4 .

اعتقد أن الصورة للمسارات فيها بعض التشويش لديكم لذا سأخبركم بطريقة ممتازة لإتقانها وكنت اعتمدتها عند دراستي لهذا الموضوع أول مره
وهي رسم المسارات وكأنك تقوم برسم خارطة وبالفعل هذه الطريقة من أفضل الطرق لكي لا تضيع في الطريق 😁

لذا لو رسمنا المسارات التي انشئناها في هذا الدرس ستكون بهذا الشكل :

1730840399792.webp


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

12506-82c79048cfa7c899b71c63326ca3121d.webp


آخر جزئية من درسنا لهذا اليوم ستقومون أنتم بفعلها 😇 :

اريد منكم بعض تنفيذ بعض المهام لقياس مدى فهمكم للدرس :

التدريب الأول : باستخدام Linux command terminal، قم بإنشاء المجلدات والملفات التالية ضمن الدليل الشخصي الخاص بك.

انتبه: الملفات تنتهي دائما بامتداد على عكس المجلدات

1730840420994.webp



التدريب الثاني: قم بتغيير مكانك الحالي الى المجلد الرئيسي للمستخدم ، ثم اعرض جميع الملفات (المرئية والمخفية) بتنسيق يظهر الصلاحيات والتاريخ ونوع كل ملف أو مجلد .



هكذا نكون قد أنهينا جزء كبير من تعلم ال commands وسنكمل أن شاء الله الباقي في الدرس القادم.

وأخيرا إذا كانت هناك أي مشكلة لا تتردد في اخباري بذلك فمن دواعي سروري مساعدتكم لحل المشكلة


ونختم بدعائنا اللهم انفعنا بما علمتنا، وعلمنا ما ينفعنا، وزدنا علمًا يا أرحم الراحمين


نراكم قريبا
والسلام عليكم ورحمة الله وبركاته

 
ما شاء الله من دون مبالغة موضوع رائع و مفهوم

حقا كنت أرى تلك القائمة كشيء غير مفهوم
فالله يعطيكم ألف عافية

و بصراحة شرح رائع جدا و متأكد من انه إن شاء الله سيكون مرجع قوي بالمستقبل القريب
 
ما شاء الله من دون مبالغة موضوع رائع و مفهوم

حقا كنت أرى تلك القائمة كشيء غير مفهوم
فالله يعطيكم ألف عافية

و بصراحة شرح رائع جدا و متأكد من انه إن شاء الله سيكون مرجع قوي بالمستقبل القريب
الله يعافيك يا رب
وسعيده جداً بكلامك الطيب
 
بسم الله ما شاء الله لا قوة الا بالله
بارك الله فيك بش مهندسة وجزاك الله كل خير
ننتظر جديد ابداعاتك دائماً
تحياتي
 
بسم الله ما شاء الله لا قوة الا بالله
بارك الله فيك بش مهندسة وجزاك الله كل خير
ننتظر جديد ابداعاتك دائماً
تحياتي
وفيكم بارك
بإذن الله
 
  • Love
التفاعلات: STORM
بصراحه ما احلا شرحك ودرسك جميل جدا انا اليوم اول يوم احمل النظام وفي بدايه لفهم الدرس الله يبارك فيك وينور قلبك يا دكتوره بس ابي استفسر منك صار معي النظام بطيء بعد ما حملت نظام كالي لينكس كيف اسوي ممكن تنصحني
 

المرفقات

  • الدرس 1 بدايه.webp
    الدرس 1 بدايه.webp
    41.1 KB · المشاهدات: 87
مشكور على كلامك الطيب
ما شاء الله موفق يا رب وان شاء الله ربنا بكتبلك تبدع في المجال
رديت في الدرس الأول على موضوع انو صار بطيء جرب الطريقة وان شاء الله تنفع
 
مشكوره ربنا يسعدك ويسعد قلبك وحياتك يارب تسلم
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى