شعرت أن كل شيء سينجح بالنسبة لي ، وذهبت في رحلة عبر عالم Linux. في قضية #IBelieveinDoing هذه ، كانت هناك دروس ليس فقط على Linux ، ولكن أيضًا على Git. يمكن استخلاص بعض أوجه التشابه بين هذه الأنظمة. Linux هو نظام تشغيل مفتوح المصدر يستخدمه المبرمجون ، و Git هو نظام تحكم في الإصدار يستخدم لتتبع التغييرات في التعليمات البرمجية المصدر عند تطوير البرامج. تجدر الإشارة إلى أن تعلم Linux و Git أصبح تجربة مثيرة للغاية. لكن Git نظام معقد جدًا ، لذلك كان من الصعب إتقان أساسياته من أساسيات Linux. في هذه المقالة ، أريد أن أشارككم ما تعلمته أثناء إتقان لينكس وجيت.
أوامر لينكس الأساسية
pwd: يستخدم هذا الأمر لعرض معلومات حول دليل العمل.
ls: باستخدام هذا الأمر ، يمكنك عرض معلومات حول محتويات الدليل. إذا تم تنفيذه في هذا النموذج ، بدون وسيطات سطر الأوامر ، فإنه يعطي معلومات بالتنسيق الافتراضي.
cd: هذا الأمر لتغيير الدليل.

تجربة أوامر Linux
cp : هذا الأمر لنسخ الملفات والمجلدات.
mv: باستخدام هذا الأمر ، يمكنك إعادة تسمية الملفات والمجلدات أو نقلها.
touch: يستخدم هذا الأمر لإنشاء ملفات فارغة ولتغيير الطابع الزمني للملفات.
cat: يتيح لك هذا الأمر عرض محتويات الملفات ، بمساعدته يمكنك إنشاء نسخ من الملفات وإرفاق محتويات بعض الملفات بالآخرين.
tree: يتيح لك هذا الأمر عرض معلومات الدليل بتنسيق يشبه الشجرة. يعرض الأمر ، افتراضيًا ، معلومات حول المجلدات والملفات ومعلومات حول عدد الملفات والمجلدات في هيكل الإخراج الخاص به. هنا مثال على استخدامه

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

أمثلة على استخدام أوامر grep و cat
awk : الغرض من هذا الأمر هو العمل مع الأداة المساعدة المقابلة ، والتي تمنحنا أدوات قوية لمعالجة السلاسل ، والتي يمكن مقارنتها بإمكانيات تلك المتوفرة في لغات البرمجة الكاملة.
في Linux ، يمكنك استخدام خطوط الأنابيب ، وهي عبارة عن أنابيب أحادية الاتجاه يمكنك استخدامها للتواصل بين العمليات. عند وصف خطوط الأنابيب ،
|يتم استخدامالرمز (). باستخدام هذا الرمز ، يمكنك ، على سبيل المثال ، توجيه إخراج أحد الأوامر إلى إدخال آخر.

مثال على استخدام خط الأنابيب
ssh : يتيح لك هذا الأمر العمل مع عميل ssh ، والذي يستخدم للاتصال بالأنظمة البعيدة وتنفيذ الأوامر عليها. يهدف بروتوكول SSH إلى تنظيم التفاعل الآمن لأجهزة الكمبيوتر.
rm: يستخدم هذا الأمر لحذف الملفات والمجلدات. على سبيل المثال ، استدعاءه في النموذجrm fileيؤدي إلى حذف الملف ، وفي الشكلrm -r directory - إلى حذف الدليل وجميع محتوياته.
هيكل دليل Linux
يستخدم Linux بنية دليل تشبه الشجرة. بداية هذا الهيكل الهرمي موجودة في الدليل الجذر. يتم تضمين كافة الأدلة الأخرى في هذا الدليل. تُستخدم الشرطة المائلة للأمام (
/) لفصل أسماء الدلائل عند تحديد مسارات الملفات والمجلدات .
هذا ما قد تبدو عليه بنية نظام الملفات في نظام Linux.

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

تجربة المسارات
توجد مسارات نسبية خاصة موضحة في الجدول التالي.
| مسار نسبي | وصف | مثال | ملاحظات على سبيل المثال |
|
دليل العمل الحالي. |
|
يعرض معلومات حول محتويات الدليل الحالي. |
|
دليل الوالدين. |
|
اصعد مستوى واحد إلى الدليل الأصل. |
|
دليل العمل السابق. |
|
العودة إلى دليل العمل السابق. |

أمثلة على استخدام المسارات النسبية الخاصة
روابط لينة وصلبة للملفات
يحتوي ارتباط الملف الناعم (الرمزي) على مؤشر لاسم الملف. تشبه هذه الارتباطات الاختصارات المستخدمة للوصول السريع إلى ملف من أدلة مختلفة. إذا تم حذف ملف يحتوي على رابط لين ، فسيظل الارتباط ، لكنه يتوقف عن العمل.
الرابط الثابت هو ارتباط إلى الموقع الموجود على القرص الصلب حيث يوجد الملف. يعتبر النظام أن الملف موجود طالما يوجد رابط صلب واحد على الأقل له. في الواقع ، إذا كان الملف يحتوي على روابط صلبة متعددة ، فيمكن مقارنته بملف له أسماء متعددة.
يتم استخدام الأمر لإنشاء روابط صلبة ولينة للملفات
ln. إليك مثال على إنشاء ارتباط رمزي به:
ln -s /path/to/file linkname
التحكم في سلوك الأوامر
يمكن التحكم في سلوك أوامر Linux عن طريق تمرير وسيطات سطر الأوامر (مفاتيح ، خيارات ، علامات) إليها عند استدعائها. عادةً ما تبدو كواصلة (
-) متبوعة باسم مفتاح مكون من حرف واحد (قد يبدو مثل هذا البناء ، على سبيل المثال -a). يمكن أن تبدو أيضًا كشرطتين ( --) متبوعين باسم مفتاح أطول (نوعًا ما --all).
لمعرفة المزيد حول أوامر Linux ، يمكنك استخدام نظام التعليمات المدمج ، والذي يتم الوصول إليه من خلال الأمر
man. على سبيل المثال ، lsيمكنك استخدام الأمر للحصول على مساعدة بشأن الأمر man ls. أدناه نتيجة مثل هذا الأمر.

تنقسم الصفحات المرجعية للأمر المرجعي لـ Ls إلى عدة أقسام. من بينها ما يلي:
NAME(اسم). يحتوي هذا على اسم الأمر ووصف موجز لما يفعله.SYNOPSIS(ملخص بناء جملة الأوامر). فيما يلي رسم تخطيطي لكيفية استخدام الأمر.DESCRIPTION(وصف). يقدم هذا القسم وصفًا تفصيليًا للأمر ومفاتيح تبديل سطر الأوامر التي يدعمها.
على سبيل المثال ، يتم
lsاستخدام الأمر غالبًا مع خيار -lيتيح لك عرض تفاصيل حول محتويات الدليل.

باستخدام الأمر ls -l
في الصورة السابقة ، ربما لاحظت تكوين العرض
drwxr-xr-x. هذا هو وصف أذونات الملف.
أذونات الملف
لنفترض أن لدينا البناء التالي الذي يصف أذونات الملف:
- rwx r-- r--
يرجى ملاحظة أنه يمكن تمييز أربع مجموعات من الرموز فيه:
- يشير الرمز الأول إلى ما نتعامل معه بالضبط. وبالتحديد ، إذا كانت هناك علامة (
-) هنا ، فلدينا ملف أمامنا. يشير الحرف (d) إلى دليل. الحرف (l) عبارة عن ارتباط. - تتيح لك الرموز الثلاثة التالية معرفة الأذونات التي يجب على المالك التعامل معها مع ملف معين:
r- قراءة ،w- كتابة ،x- تنفيذ. يتم تمثيل المجموعة الكاملة من الأذونات من خلال تسلسلrwx، في حالة عدم وجود إذن معين ، يتم وضع رمز (-) في الموضع المقابل بدلاً من ذلك . - , ( , ). , .
- , , , , .
يتم استخدام الأمر لإدارة أذونات الملف
chmod. على سبيل المثال، إضافة إلى القواعد الحالية للوصول إلى إذن الملف من أجل أن يعمل، يمكنك استخدام نظام التالية يدعو: chmod +x <filename>. +xيشير التصميم إلى إضافة هذا الإذن لجميع المستخدمين.
دعنا نتحدث عن بعض تفاصيل تكوين أذونات الملفات باستخدام
chmod. لذلك ، لتعيين إذن معين لجميع المستخدمين ، يتم استخدام إنشاءات مشابهة لتلك الموضحة أعلاه +x. +يتم استخدام عامل التشغيل ( ) لإضافة أذونات ، -ويسمح لك عامل التشغيل ( ) بإزالة الأذونات ، ويتم =استخدام عامل التشغيل ( ) لتعيين حقوق معينة للمستخدم الذي يمتلك الملف ( u، المستخدم) ، للمجموعة (g، المجموعة) ، للمستخدمين الآخرين ( o، الآخرين) ولجميع المستخدمين ( a، الكل). يتم ذلك في بنيات العرض chmod u=rwx,g=rx,o=rx filename.
عند تعيين الأذونات ، غالبًا ما تتم كتابتها في شكل رقمي. تتوافق الرموز الثمانية مع حقوق معينة. وهكذا، فإن
xقانون المقابلة 1، wالرمز المناسب 2و rرمز المقابلة 4. الرمز0يتوافق مع الغياب التام لأذونات العمل مع الملف. يتم وصف حقوق الملف برقم مكون من ثلاثة أرقام ، وهو ترتيب الأرقام الذي يتوافق مع الترتيب الموضح أعلاه لمجموعات الأذونات. أي أن الرقم الأول يصف أذونات مالك الملف ، ويصف الثاني أذونات المجموعة ، والثالث يصف أذونات المستخدمين الآخرين. كل رقم من هذه الأرقام هو مجموع أكواد التفويض r، wو x.
على سبيل المثال ،
chmod 444 filenameيعني أمر النموذج أن كل شخص سيكون له الحق فقط في قراءة الملف ( r--r--r--) ، chmod 700 filenameويشير أمر النموذج إلى أن المالك سيكون له الحق في قراءة الملف ( rwx, 4+2+1) وكتابته وتشغيله ، ولا يحق لأي شخص آخر تنفيذ أي إجراءات مع الملف. ( rwx------).
العمل مع Git
عند العمل مع Git ، عادةً ما يتم استخدام التسلسل التالي من الإجراءات:
- تعديل ملف في دليل العمل المحلي.
- فهرسة الملفات (الأمر
git add). - حفظ لقطة من البيانات المفهرسة في قاعدة البيانات الداخلية (
git commit). - إرسال التغييرات من المستودع المحلي إلى البعيد (
git push). - تحميل التغييرات من مستودع بعيد إلى مخزن محلي (
git pull).
هنا رسم تخطيطي يوضح هذا التسلسل من الخطوات.

يمكن أن تكون ملفات Git Workflow النموذجية في حالات مختلفة عند العمل مع Git.

حالات الملف
- الملف الذي لم يتم تعقبه هو ملف لا يراقب Git التغييرات فيه. يمكن إضافة هذا الملف إلى الفهرس ويكون في حالة مرحلية.
- غير معدل - ملف تمت مراقبته ولكن محتواه لم يتغير. إذا قمت بحذف هذا الملف ، فلن يتم مراقبته بعد ذلك. إذا قمت بتغييره ، فسوف ينتقل إلى حالة التعديل.
- معدل - الملف الذي تتم مشاهدته ، والذي تم تغيير محتوياته. يمكن فهرستها ووضعها في حالة مرحلية.
- تم تنظيم الملف الذي تتم مراقبته وإدراجه في الفهرس. يمكن دمج التغييرات المقابلة في قاعدة بيانات Git.
لنلقِ نظرة على بعض أوامر Git.
git init: ينشئ هذا الأمر مستودع Git فارغًا في الدليل. هذه هي الخطوة الأولى في إنشاء مستودع جديد. بعد تنفيذ هذا الأمر ، يمكنك استخدام الأوامر git addو git commit.

git addأمر Git init : يضيف هذا الأمر ملفات إلى الفهرس. وهو يدعم ، في الشكلgit add .، إضافة جميع الملفات غير المفهرسة إلى الفهرس ، في النموذجgit add filename- إضافة ملف معين إلى الفهرس ، في النموذجgit add dirname- إضافة دليل إلى الفهرس.

git commitأمر Git add : يكتب هذا الأمر التغييرات على المستودع المحلي. تسمى هذه التغييرات ، عن طريق القياس مع اسم الأمر ، "تلتزم". لكل التزام معرف فريد ، مما يسهل العمل مع الالتزامات.

git statusأمر Git الالتزام : يتيح لك هذا الأمر الحصول على معلومات حول الحالة الحالية للمستودع.

git configأمر Git status : يسمح لك هذا الأمر بتخصيص Git. من بين الإعدادات يمكن ملاحظة Gituser.nameوuser.email. تحتوي على اسم المستخدم وعنوان البريد الإلكتروني المستخدم في الالتزامات وتشير إلى من قام بها. إذاتم استخدامgit configعلامةعند استدعاء الأمر،--globalفسيتم تطبيق الإعدادات على جميع المستودعات المحلية. بدون هذه العلامة ، تنطبق الإعدادات فقط على المستودع الحالي.

git checkoutأمر Git config : يستخدم هذا الأمر للتبديل بين فروع المستودع (مثلgit checkout <branch_name>). بمساعدتها ، يمكنك إنشاء فرع جديد والتبديل إليه (git checkout -b <new_branch>).
git merge: هذا الأمر يسمح لك بدمج فروع المستودع. يأخذ التغييرات في فرع واحد ويدمجها في الفرع الآخر. على سبيل المثال ، هناك فرع يعمل على ميزة مشروع جديدة. بعد اكتمال هذه الميزة ، يتم دفع التغييرات إلى الفرع الذي يخزن الميزات الثابتة.
git clone: يستخدم هذا الأمر لإنشاء نسخة عمل محلية من مستودع بعيد. عند تنفيذه ، يتم تنزيل مواد المستودع البعيد على الكمبيوتر. يعد استنساخ مستودع موجود مماثلاً لإنشاء مستودع جديد باستخدام الأمرgit init... ولكن عند الاستنساخ ، يكون لدينا مستودع تحت تصرفنا ، يوجد فيه بالفعل شيء ما ، وعندما git initيتم تنفيذ الأمر ، يكون لدينا مستودع فارغ.
git pull: هذا الأمر مخصص لتنزيل البيانات الحديثة من مستودع بعيد.
git push: يمكن استخدام هذا الأمر لدفع الالتزامات المحلية إلى المستودع البعيد. عند استدعاء هذا الأمر ، تحتاج إلى تمرير معلومات حول المستودع البعيد وفرع المستودع المحلي ، والتي يجب إرسالها إلى المستودع البعيد.
النتيجة
لقد أخبرتك بكل شيء تعلمته خلال رحلتي إلى عالم Linux و Git. لقد كانت مثيرة للغاية. نأمل أن تفعل شيئًا مشابهًا وأن تتعلم شيئًا جديدًا ، شيء يوسع آفاقك المهنية.
إذا كنت قد أتقنت مؤخرًا شيئًا مثيرًا للاهتمام - من فضلك أخبرنا عنه.
