مرحبًا بكم في الفصل الثاني من دليلنا لتعليم لينكس! في هذا الفصل، سنغوص أعمق في أوامر سطر الأوامر الأساسية التي ستساعدك على التنقل في نظام التشغيل لينكس بسهولة. سنستكشف أدوات مثل ls و cd و mkdir، بالإضافة إلى أوامر أخرى مفيدة لإدارة الملفات والدلائل.
العالم بين يديك، أو بالأحرى الـ Shell هو بين يديك. ما هو الـ Shell؟ الـ Shell هو في الأساس برنامج يأخذ أوامرك من لوحة المفاتيح ويرسلها إلى نظام التشغيل لتنفيذها. إذا كنت قد استخدمت واجهة رسومية (GUI) من قبل، فمن المحتمل أنك رأيت برامج مثل "Terminal" أو "Console"، وهذه مجرد برامج تطلق الـ Shell لك. طوال هذا الكورس، سنتعلم عن عجائب الـ Shell.
في هذا الكورس، سنستخدم برنامج الـ Shell المسمى bash (Bourne Again Shell)، حيث تعتمد معظم توزيعات لينكس افتراضيًا على الـ Shell bash. هناك أنواع أخرى من الـ Shells مثل ksh و zsh و tsch، لكننا لن ندخل في تفاصيلها.
لكي تعرف ما هو نوع الShell الدي لديك إستعمل الأمر التالي:
دعنا نبدأ مباشرة! حسب التوزيعة، قد يتغير سطر أمر الـ Shell لديك، لكن في الغالب يجب أن يتبع التنسيق التالي:
username@hostname:current_directory
لاحظ الرمز $ في نهاية السطر؟ الـ Shells المختلفة لها سطور أوامر مختلفة، في حالتنا الرمز $ يشير إلى مستخدم عادي يستخدم Bash أو Bourne أو Korn shell، ولا تضيف رمز السطر عند كتابة الأمر، فقط كن على دراية بأنه موجود هناك.
دعنا نبدأ بأمر بسيط، echo. أمر echo يقوم بطبع النصوص المحددة على الشاشة.
كل شيء في لينكس هو ملف، ومع استمرار رحلتك في تعلم لينكس ستفهم هذا جيدًا، لكن للحين فقط احتفظ بهذا في ذهنك. كل ملف منظم ضمن هيكلية شجرة دلائل هرمية. الدليل الأول في نظام الملفات يُسمى الدليل الجذر (root directory) بشكل مناسب. يحتوي الدليل الجذر على العديد من المجلدات والملفات التي يمكنك تخزين المزيد من المجلدات والملفات داخله، وهكذا. إليك مثالًا على شكل شجرة الدلائل.
تُعرف مواقع هذه الملفات والدلائل باسم المسارات (paths). إذا كان لديك مجلد يُسمى home يحتوي على مجلد آخر يُسمى adel ومجلد آخر داخله يُسمى Movies، فإن المسار سيكون كالتالي: /home/adel/Movies، بسيط جدًا، أليس كذلك؟
التنقل في نظام الملفات، تمامًا كما في الحياة الواقعية، يكون مفيدًا إذا كنت تعرف مكانك وإلى أين تتجه. لمعرفة مكانك الحالي، يمكنك استخدام أمر pwd، وهذا الأمر يعني "طباعة الدليل الحالي" ويعرض لك الدليل الذي أنت فيه، لاحظ أن المسار يبدأ من الدليل الجذر.
الآن بعد أن عرفت مكانك، دعنا نرى إذا كنا قادرين على التنقل قليلاً في نظام الملفات. تذكر أننا سنحتاج إلى التنقل باستخدام المسارات. هناك طريقتان مختلفتان لتحديد المسار، وهما المسار المطلق والمسار النسبي.
المسار المطلق: هذا المسار من الدليل الجذر. الجذر هو الرئيس الأعلى. يُظهر الدليل الجذر عادةً برمز الشرطة العلوية (/). كلما بدأ مسارك بـ /، فهذا يعني أنك تبدأ من الدليل الجذر. على سبيل المثال، /home/adel/Desktop.
المسار النسبي: هذا المسار من المكان الذي أنت فيه حاليًا في نظام الملفات. إذا كنت في الموقع /home/adel/Documents وأردت الذهاب إلى دليل داخل Documents يُسمى taxes، فليس عليك تحديد المسار الكامل من الجذر مثل /home/adel/Documents/taxes، يمكنك فقط الذهاب إلى taxes/ بدلاً من ذلك.
الآن بعد أن عرفت كيف تعمل المسارات، نحتاج فقط إلى شيء يساعدنا على تغيير الدليل الذي نريد الذهاب إليه. لحسن الحظ، لدينا cd أو "تغيير الدليل" للقيام بذلك.
لقد غيرت الآن موقع دليلي إلى /home/adel/Documents.
الآن من هذا الدليل، لدي مجلد داخلي يُسمى Hawaii، يمكنني التنقل إلى ذلك المجلد باستخدام:
لاحظ كيف استخدمت فقط اسم المجلد؟ ذلك لأنني كنت بالفعل في /home/adel/Documents.
يمكن أن يصبح التنقل باستخدام المسارات المطلقة والنسبية مرهقًا في بعض الأحيان، لكن لحسن الحظ هناك بعض الاختصارات التي ستساعدك.
. (الدليل الحالي). هذا هو الدليل الذي أنت فيه حاليًا. .. (الدليل الأب). يأخذك إلى الدليل أعلى من الدليل الحالي. ~ (دليل المنزل). هذا الدليل يعود افتراضيًا إلى "دليل المنزل" الخاص بك، مثل /home/adel. - (الدليل السابق). سيأخذك إلى الدليل الذي كنت فيه سابقًا.
الآن بعد أن تعلمنا كيف نتحرك في النظام، كيف يمكننا معرفة ما هو متاح لنا؟ الآن الأمر يشبه التحرك في الظلام. حسنًا، يمكننا استخدام الأمر الرائع ls لعرض محتويات الدليل. الأمر ls سيقوم بعرض الدلائل والملفات في الدليل الحالي افتراضيًا، ولكن يمكنك تحديد المسار الذي تريد عرض دلائله.
أمر ls أداة مفيدة جدًا، كما أنه يظهر لك معلومات مفصلة عن الملفات والدلائل التي تنظر إليها.
لاحظ أيضًا أنه ليس كل الملفات في دليل معين ستبدو مرئية. أسماء الملفات التي تبدأ بـ . مخفية، يمكنك رؤيتها باستخدام أمر ls وإضافة العلم -a (a للكل).
هناك أيضًا علم آخر مفيد لـ ls، وهو -l للعرض الطويل، حيث يعرض قائمة مفصلة للملفات بتنسيق طويل. سيعرض لك معلومات مفصلة، بدءًا من اليسار: أذونات الملف، عدد الروابط، اسم المالك، مجموعة المالك، حجم الملف، توقيت آخر تعديل، واسم الملف/الدليل.
الأوامر تحتوي على ما يُسمى بالعلامات (أو الحجج أو الخيارات، مهما كنت تفضل تسميتها) لإضافة وظائف إضافية. انظر كيف أضفنا -a و -l، حسنًا يمكنك إضافة الاثنين معًا باستخدام -la. ترتيب العلامات يحدد الترتيب الذي يتم به، وفي معظم الأحيان هذا لا يهم كثيرًا، لذا يمكنك أيضًا كتابة ls -al وسيعمل بنفس الطريقة.
دعنا نتعلم كيفية إنشاء بعض الملفات. طريقة بسيطة جدًا هي استخدام أمر touch. يتيح لك touch إنشاء ملفات فارغة جديدة.
وها قد انتهى الأمر، ملف جديد!
يُستخدم touch أيضًا لتغيير بصمات الوقت (timestamps) على الملفات والدلائل الموجودة مسبقًا. جرب ذلك، نفّذ أمر ls -l على ملف ولاحظ بصمة الوقت، ثم استخدم touch على ذلك الملف وسيتم تحديث بصمة الوقت.
هناك طرق أخرى كثيرة لإنشاء ملفات تشمل أشياء مثل إعادة التوجيه ومحررات النصوص، لكن سنتناول ذلك في كورس التلاعب بالنصوص (Text Manipulation) = الفصل الثالث إن شاء الله
في الدرس السابق، تعلمنا عن الأمر `touch`، دعنا نعود إليه قليلاً. هل لاحظت أن اسم الملف لم يتبع التقاليد القياسية للتسمية التي ربما رأيتها في أنظمة تشغيل أخرى مثل ويندوز؟ عادةً، قد تتوقع ملفًا يُسمى `banana.jpeg` وتفترض أنه ملف صورة JPEG.
في لينكس، أسماء الملفات ليست مطلوبة لتعكس محتويات الملف. يمكنك إنشاء ملف يُسمى `funny.gif` ولكنه في الواقع ليس صورة GIF.
لمعرفة نوع الملف، يمكنك استخدام الأمر `file`. سيُظهر لك وصفًا لمحتويات الملف.
نحن على وشك الانتهاء من تصفح الملفات، لكن أولاً دعنا نتعلم كيفية قراءة ملف. أمر بسيط يمكن استخدامه هو الأمر cat، وهو اختصار لكلمة "concatenate" (ربط)، فهو لا يعرض محتويات الملف فحسب، بل يمكنه أيضًا دمج عدة ملفات وعرض نتائجها.
ليس مثاليًا لعرض الملفات الكبيرة، وهو مخصص فقط للمحتوى القصير. هناك العديد من الأدوات الأخرى التي نستخدمها لعرض ملفات نصية أكبر سنناقشها في الدرس القادم.
إذا كنت تشاهد ملفات نصية أكبر من مجرد إخراج بسيط، فإن الأمر less هو الأفضل. يتم عرض النص بطريقة مقسمة إلى صفحات، مما يتيح لك التنقل عبر الملف النصي صفحة بصفحة.
تقدم وشاهد محتويات ملف باستخدام less. بمجرد دخولك إلى الأمر less، يمكنك استخدام أوامر لوحة المفاتيح الأخرى للتنقل داخل الملف.
less name_of_file.txt
استخدم الأوامر التالية للتنقل عبر less:
q - يُستخدم للخروج من less والعودة إلى الواجهة الطرفية. Page up، Page down، Up و Down - التنقل باستخدام مفاتيح الأسهم ومفاتيح الصفحات. g - ينتقل إلى بداية الملف النصي. G - ينتقل إلى نهاية الملف النصي. /search - يمكنك البحث عن نص معين داخل المستند النصي. ابدأ الكلمات التي تريد البحث عنها بـ / h - إذا كنت بحاجة إلى مساعدة حول كيفية استخدام less أثناء تواجدك فيه، استخدم المساعدة.
في واجهة الأوامر (الshell)، يتم الاحتفاظ بسجل الأوامر التي أدخلتها سابقًا، ويمكنك بالفعل استعراض هذه الأوامر. هذه الميزة مفيدة جدًا عندما تريد العثور على أمر استخدمته من قبل وتشغيله مرة أخرى دون الحاجة إلى كتابته مجددًا.
هل تريد تشغيل الأمر نفسه الذي استخدمته من قبل؟ فقط اضغط على مفتاح السهم لأعلى.
هل تريد تشغيل الأمر السابق دون كتابته مجددًا؟ استخدم `!!`. على سبيل المثال، إذا كتبت `cat file1` وأردت تشغيله مرة أخرى، يمكنك ببساطة كتابة `!!` وسيعيد تشغيل آخر أمر قمت بتنفيذه.
اختصار آخر مفيد للتاريخ هو `Ctrl+R`. هذا هو أمر البحث العكسي. إذا ضغطت على `Ctrl+R` وبدأت في كتابة جزء من الأمر الذي تريده، سيعرض لك التطابقات، ويمكنك التنقل بينها بالضغط على مفتاح `Ctrl+R` مرة أخرى. بمجرد العثور على الأمر الذي تريد استخدامه مجددًا، اضغط على مفتاح Enter.
تبدو الواجهة الطرفية لدينا مزدحمة قليلاً، أليس كذلك؟ دعنا نقوم ببعض التنظيف. استخدم الأمر `clear` لمسح الشاشة.
ها قد أصبح المظهر أفضل، أليس كذلك؟
بينما نتحدث عن الأشياء المفيدة، واحدة من أكثر الميزات فائدة في أي بيئة واجهة أوامر هي الإكمال التلقائي باستخدام مفتاح Tab. إذا بدأت بكتابة بداية أمر أو ملف أو دليل وما إلى ذلك، ثم ضغطت على مفتاح Tab، فسيقوم الإكمال التلقائي بناءً على ما يجده في الدليل الذي تبحث فيه، بشرط ألا يكون لديك ملفات أخرى تبدأ بنفس الحروف. على سبيل المثال، إذا كنت تحاول تشغيل الأمر `chrome`، يمكنك كتابة `chr` والضغط على Tab، وسيقوم بإكمال الكلمة إلى `chrome`.
لنبدأ بإنشاء نسخ من هذه الملفات. مثلما نقوم بنسخ الملفات ولصقها في أنظمة التشغيل الأخرى، توفر واجهة الأوامر طريقة أبسط للقيام بذلك.
`1.txt` هو الملف الذي تريد نسخه، و`/home/adel/startimes/files` هو المكان الذي ستنسخ الملف إليه.
يمكنك نسخ عدة ملفات ودلائل، بالإضافة إلى استخدام الأحرف البدلية (wildcards). الأحرف البدلية هي أحرف يمكن أن تُستبدل بنمط معين للاختيار، مما يمنحك مرونة أكبر في البحث. يمكن استخدام الأحرف البدلية في كل أمر لزيادة المرونة.
- `*`: الحرف البدلي الأكثر شيوعًا، يُستخدم لتمثيل أي حرف واحد أو أي سلسلة. - `?`: يُستخدم لتمثيل حرف واحد فقط. - `[]`: يُستخدم لتمثيل أي حرف ضمن الأقواس.
``` $ cp *.jpg /home/adel/Pictures ```
هذا الأمر سينسخ جميع الملفات التي تحمل الامتداد `.jpg` في الدليل الحالي إلى دليل الصور (Pictures).
أمر مفيد آخر هو استخدام العلامة `-r`، التي تتيح النسخ المتكرر (recursive) للملفات والدلائل داخل دليل معين.
حاول القيام بنسخ دليل يحتوي على بعض الملفات إلى دليل Documents. لم ينجح الأمر، أليس كذلك؟ هذا لأنك بحاجة إلى نسخ الملفات والدلائل الموجودة داخله أيضًا باستخدام العلامة `-r`.
شيء يجب ملاحظته: إذا قمت بنسخ ملف إلى دليل يحتوي على ملف بنفس الاسم، سيتم الكتابة فوق الملف الموجود بما تقوم بنسخه. هذا ليس جيدًا إذا كان لديك ملف لا تريد الكتابة فوقه عن طريق الخطأ. يمكنك استخدام العلامة `-i` (تفاعلي) لتطالبك بالتأكيد قبل الكتابة فوق ملف.
يُستخدم الأمر `mv` لنقل الملفات وأيضًا لإعادة تسميتها. يتشابه إلى حد كبير مع الأمر `cp` من حيث العلامات والوظائف.
يمكنك إعادة تسمية الملفات كالتالي:
أو يمكنك نقل ملف إلى دليل آخر:
ويمكنك أيضًا نقل أكثر من ملف:
يمكنك إعادة تسمية الدلائل أيضًا:
مثل الأمر `cp`، إذا قمت بنقل ملف أو دليل باستخدام `mv`، فسيتم الكتابة فوق أي شيء موجود في الدليل نفسه. لذا، يمكنك استخدام العلامة `-i` لتطالبك بالتأكيد قبل الكتابة فوق أي شيء.
لنفترض أنك أردت نقل ملف والكتابة فوق النسخة السابقة. يمكنك أيضًا إنشاء نسخة احتياطية من الملف القديم، حيث سيتم إعادة تسمية النسخة القديمة بإضافة `~`.
سنحتاج إلى بعض الدلائل لتخزين كل هذه الملفات التي كنا نعمل عليها. الأمر `mkdir` (اختصار لـ Make Directory) مفيد لهذا الغرض، حيث يقوم بإنشاء دليل إذا لم يكن موجودًا بالفعل. يمكنك حتى إنشاء عدة دلائل في نفس الوقت.
يمكنك أيضًا إنشاء دلائل فرعية في نفس الوقت باستخدام العلامة `-p` (علامة الدليل الأصل).
يبدو أن لدينا الآن الكثير من الملفات، فلنجرب حذف بعضها. يمكنك استخدام الأمر `rm` لإزالة الملفات. الأمر `rm` (اختصار لـ remove) يُستخدم لحذف الملفات والدلائل.
كن حذرًا عند استخدام `rm`، فلا يوجد سلة مهملات سحرية يمكنك من خلالها استعادة الملفات المحذوفة. بمجرد أن تختفي، تكون قد ذهبت إلى الأبد، لذا كن متأكدًا.
لحسن الحظ، هناك بعض الإجراءات الآمنة المدمجة، مما يجعل الشخص العادي غير قادر على حذف كمية كبيرة من الملفات المهمة بسهولة. الملفات المحمية من الكتابة ستطلب منك تأكيدًا قبل حذفها. وإذا كان الدليل محميًا من الكتابة، فلن يتم حذفه بسهولة أيضًا.
الآن، إذا لم تهتم بذلك، يمكنك بالتأكيد حذف كمية كبيرة من الملفات.
خيار `-f` (force) يأمر `rm` بحذف جميع الملفات، سواء كانت محمية من الكتابة أم لا، دون طلب تأكيد من المستخدم (شريطة أن تكون لديك الأذونات المناسبة).
إضافة العلامة `-i`، مثل العديد من الأوامر الأخرى، ستعرض لك رسالة تأكيد لتحديد ما إذا كنت تريد فعلاً حذف الملفات أو الدلائل.
لا يمكنك حذف دليل بشكل افتراضي باستخدام `rm`، ستحتاج إلى إضافة العلامة `-r` (recursive) لحذف جميع الملفات والدلائل الفرعية الموجودة بداخله.
يحتوي نظام لينُكس على أدوات مدمجة رائعة تساعدك على معرفة كيفية استخدام الأوامر أو التعرف على الخيارات (flags) المتوفرة لكل أمر. إحدى هذه الأدوات هي الأمر `help`، وهو أمر مدمج في bash يقدّم المساعدة حول أوامر bash الأخرى مثل `echo`، `logout`، `pwd`، وغيرها.
سيعطيك هذا وصفًا للأمر والخيارات التي يمكنك استخدامها عند تنفيذ الأمر `echo`. بالنسبة للبرامج التنفيذية الأخرى، من الشائع وجود خيار يسمى `--help` أو شيء مشابه.
ليست كل البرامج التنفيذية تلتزم بهذا الأسلوب، لكن غالبًا ما يكون هذا الخيار هو أفضل وسيلة للحصول على معلومات مساعدة عن البرنامج.
أحيانًا تتمنى لو أن بعض هذه البرامج تحتوي على دليل استخدام حتى تتمكن من معرفة المزيد عنها. لحسن الحظ، هذا موجود فعلًا! وتُسمى هذه الأدلة "صفحات man" (man pages)، ويمكنك عرضها باستخدام الأمر `man`.
صفحات `man` هي أدلة مدمجة بشكل افتراضي في معظم توزيعات نظام لينُكس. وهي توفّر توثيقًا شاملاً حول الأوامر المختلفة والجوانب الأخرى للنظام.
جرّب استخدام هذا الأمر مع بعض الأوامر الأخرى للحصول على معلومات أعمق عنها.
لقد تعلمنا العديد من الأوامر حتى الآن، وإذا شعرت يومًا بالشك حول وظيفة أمر معين، يمكنك استخدام أمر whatis. أمر whatis يقدم وصفًا مختصرًا لبرامج سطر الأوامر.
يتم أخذ هذا الوصف من صفحة الدليل (manual) الخاصة بكل أمر. فإذا قمت بتنفيذ الأمر، سترى وصفًا قصيرًا يشرح وظيفة الأمر.
السلام عليكم ورحمة الله وبركاته
معلومات رائع ومواضيع مميز وابداع التي قدمتها لنا
وتسلم الايادي التي ابداعت في هذا المشاركة
اتمنى لك التوفيق ولا تحرمنا من ابداعاتك وتميزك المتواصل
واتمنى ان تعم في كل ما هو جديد ومفيد للجميع ان شاء الله بانتظار جديدك الرائع والجميــــــل كوجـودك المتواصـل والجميـل معنا
تحياتـــي الحــار وجزاك الله خير وجعل عملك حسنة تانية لك بالتوفيق تسلم الايادي لتستفيد وتفيد اعاني الله مليون رد مشاركة
تسلم اليد لي رسمت مشاركاتك الرائعة
لك تقبل مروري المتواضع
شرح يفوق الخيال، سهل الفهم مع وجود أمثلة و صور جدا واضحة و عالية الجودة
تبارك الله عليك يا غالي، انطلاقة قوية حقا، و أتمنى من القلب أت تروق للأعضاء و زوار المنتدى و كذاك كل محبي اللينكس
لك من منتدى الخبرات، منزلك الأول و منزل كل محبي و خبرات المجال الحاسب، وسام رفيــــــع رغم أنه لن يوفي المجهود المبدول هنا
و في هذا الإطار أنا آخذ البادرة لأشجع الجميع على التطبيق و المناقشة، سأعطي وسام ذهبي و فضي معا لكل من يقوم بتطبيق و رفع صور التطبيق لما تم شرحه هنا برد بالموضوع
و كذلك وسام ذهبي لكل من يناقش ما تم شرح أو يطرح أسئلة تقنية لصاحب السلسلة أو لم يضيف إفادة أخرى لم يتم التطرق لها بهذا العدد من السلسلة
بانتظاركم يا خبراء اللينكس 😉 و أنا هنا لكي أساهم في إثراء و إغناء مفاهمكم إن أمكنني ذلك
شرح يفوق الخيال، سهل الفهم مع وجود أمثلة و صور جدا واضحة و عالية الجودة
تبارك الله عليك يا غالي، انطلاقة قوية حقا، و أتمنى من القلب أت تروق للأعضاء و زوار المنتدى و كذاك كل محبي اللينكس
لك من منتدى الخبرات، منزلك الأول و منزل كل محبي و خبرات المجال الحاسب، وسام رفيــــــع رغم أنه لن يوفي المجهود المبدول هنا
و في هذا الإطار أنا آخذ البادرة لأشجع الجميع على التطبيق و المناقشة، سأعطي وسام ذهبي و فضي معا لكل من يقوم بتطبيق و رفع صور التطبيق لما تم شرحه هنا برد بالموضوع
و كذلك وسام ذهبي لكل من يناقش ما تم شرح أو يطرح أسئلة تقنية لصاحب السلسلة أو لم يضيف إفادة أخرى لم يتم التطرق لها بهذا العدد من السلسلة
بانتظاركم يا خبراء اللينكس 😉 و أنا هنا لكي أساهم في إثراء و إغناء مفاهمكم إن أمكنني ذلك