أرشيف التصنيف: دروس

إدارة الملفات والمجلدات 1

يوفر النظام أدوات قوية جداً للتعامل مع الملفات والمجلدات بكل سهولة.ولكن دعونا أولاً نتعرف علي بعض الادوات المهمة التي تساعدنا في التنقل داخل النظام.
الأداة اﻷولى:pwd وهي اختصاراً لـ (Print Working Directory) اي اعرض اسم ومكان المجلد الحالي .
مثال: pwd
النتيجة:/home/emad اي اننا بداخل مجلد اسمه emad موجود بداخل مجلد يسمى home بداخل الـ / اي الـ root (لا اقصد هنا المستخدم المسمى root ولكن المسار root “ساتحدث عن بنية النظام في درس لاحق فلا تقلق واكتفي بمعرفة اسمه الآن”)
اﻷداة الثانية:ls وهي اختصاراً لـ (List) اي اعرض الملفات والمجلدات الموجودة بداخل المجلد.الأداة لها العديد من الخيارات التي يمكن تمريرها لتعديل سلوك الأداة.الخيار (a) يجعل الأداة تقوم بعرض كافة الملفات والمجلدات بما فيها الملفات والمجلدات المخفية والتي يبدأ أسمها بـ (.)،الخيار (l) يجعل الأداة تعرض خصائص الملفات والمجلدات مثل الحجم والصلاحيات وملكية الملف او المجلد.طبعاً للأداة العديد من الخيارات المفيدة اﻷخرى ولكني لا استطيع ذكر كل الخيارات الخاصة بكل أداة لذا يمكنك اللجوء الي الـ man كما رأينا في الموضوع السابق.اذا اردت تمرير أكثر من خيار في نفس الوقت يمكنك ذلك عن طريق ذكر كل خيار منفصلاً او مجتمعاً.
مثال: الخيارات مجتمعة ls -al
مثال2:الخيارات منفصلة ls -a -l
مثال3: ls -al /home/emad/Downloads
هل لاحظت انه في المثال الثالث كلمة Downloads تبدأ بحرف كبير (Uppercase) ؟ نعم النظام حساس لحالة اﻷحرف فـ a تختلف عن A.
اﻷداة الثالثة:cd وهي اختصارأ لـ (Change Directory) وهي احدى الـ Built-in Commands التي تحدثنا عنها سابقاً ونستطيع من خلالها التنقل بداخل المجلدات فبكتابة cd /home/emad/Desktop تأخذنا الأداة الى هناك واذا كتبنا cd – تأخذ الاداة للمجلد السابق الذي اتينا منه (مثل زر Back الموجود بمتصفح الملفات ذو الواجهة الرسومية) اما اذا كتبنا cd .. فتأخذنا الاداة خطوة واحده الي الاعلي أي الي المجلد الذي يحوي المجلد الحالي (مثل زر Up الموجود بمتصفح الملفات ذو الواجهة الرسومية) اما اذا كتبتا cd فقط ستأخذنا اﻷداة لمجلد المنزل الخاص بالمستخدم الحالي.
قم بفتح الـ terminal (الطرفية) اﻵن وجرب اﻷدوات السابقة .هل أحسنت التعامل معها؟
اﻵن ننتقل للدرس (إدارة الملفات والمجلدات)
انتقل اﻵن الي مجلد/tmp حيث سيكون مسرح عملنا (يحوي هذا المجلد الملفات المؤقتة التي تُمسح بمجرد غلق النظام )

* إنشاء مجلد جديد اﻷداة (mkdir) :
مثال : mkdir test انشئنا مجلد جديد باسم test .
مثال2: mkdir /home/emad/Desktop/test2 انشئنا مجلد جديد باسم test2 علي سطح المكتب الخاص بالمستخدم emad.
مثال3: mkdir -p em1/em2/em3/em4 باستخدام الخيار (p) انشئنا سلسلة من المجلدات بداخل بعضها حيث em1 يحوي em2 الذي سيحوي em3 الذي سيحوي em4.
للمزيد عن اﻷداة راجع الـ man.

*حذف مجلد او ملف اﻷداة (rmdir, rm):
(rmdir)تستخدم هذه اﻷداة لحذف مجلد فارغ.
مثال: rmdir test .
اذا لم يكن المجلد فارغاً ستظهر رسالة خطأ مثل تلك rmdir: failed to remove ‘em1/’: Directory not empty.
(rm) تستخدم هذه اﻷداة لحذف ملف او مجلد.
مثال:rm lec.txt لحذف ملف اسمه lec.txt.
مثال2: rm -r em1 باستخدام الخيار (r) نستطيع حذف مجلد ومحتوياته.
مثال3:rm -f protected.txt باستخدام الخيار (f) نجبره علي حذف الملف المسمي protected.txt
مثال4:rm -rv em1 بإضافة الخيار (v) سيعطينا معلومات عن الملفات التي يقوم بمسحها مثل شريط التقدم (Progress bar) في الواجهة الرسومية.
للمزيد راجع الـ man .

*إنشاء ملف جديد فارغ اﻷداة (touch):
مثال: touch life.txt انشئنا ملف جديد فارغ اسمه life.txt.

*نسخ ملف او مجلد الأداة (cp):
cp Source Destination
نسخ المصدر الجهة
مثال: cp life.txt /home/emad/Desktop قمنا هنا بنسخ الملف Life.txt الموجود بداخل المجلد الحالي الي سطح المكتب الخاص بالمستخدم emad.
مثال2: cp life.txt /home/emad/Desktop/new.txt قمنا هنا بنسخ الملف life.txt الموجود بداخل المجلد الحالي الي سطح المكتب الخاص بالمستخدم emad باسم جديد(new.txt) “هل رأيت القوة نسخ وإعادة تسمية بخطوة واحدة :D”
مثال3: cp /home/emad/Desktop/new.txt ./new2.txt قمنا بالعكس نسخنا الملف new.txt الموجود علي سطح المكتب الخاص بالمستخدم emad باسم جديد(new2.txt) (.) تعني الي هنا اي الي المجلد الحالي.
لنسخ مجلد نضيف الخيار ( r R)
مثال: cp -r em1 ~/Desktop (ملحوظة: استخدمت ~ بدلاً من /home/emad ).
للمزيد راجع الـ man.

*قص /نقل ملف او مجلد اﻷداة (mv):
مثال:mv life.txt /tmp/test قمنا بنقل الملف life.txt الي المجلد /tmp/test .
مثال2: mv /tmp/test/life.txt ~/Documents/read.txt قمنا بنقل الملف الي مجلد Documents باسم جديد(read.txt)
تستخدم اﻷداة (mv) لعمل وظيفة إضافية وهي إعادة التسمية
مثال:إعادة تسمية المجلد em1 الي try
mv em1 try

*إخفاء ملف او مجلد:
كل ما عليك فعله لإخفاء ملف او مجلد هو اضافة (.) في بداية اسمه
مثال:mv life.txt .life.txt.
ساكتفي بهذا اليوم ونكمل في الجزء الثاني ان شاء الله.لا تبخل علي بدعائك 😀

استخدام الـ bash

من الآن فصاعداً سأتحدث عن الـ bash كـ shell افتراضي لمعظم التوزيعات.

هل الـ bash صعب الاستخدام؟
معظم القادمين الجدد لجنو/لينكس يشعرون بالرهبة من تلك الشاشة السوداء استناداً علي معلومات خاطئة بانها صعبة جداً وانها موجهة للمتقدمين ،لذلك بدءاً من هذا الدرس لن نتحدث سوي عن هذه البيئة الغامضة بالنسبة للبعض.

شكل الـ bash:
اذا وصلت للـ bash بعد عملية الـ boot مباشرة او من خلال الـ terminal من داخل الواجهة/البيئة الرسومية -كما ذكرنا في درس سابق- فستجد شكله كالتالي emad@mybox ~ $  حيث (emad) اسم المستخدم و(mybox) اسم الكمبيوتر و(~) هي اسم المجلد الحالي الذي انا بداخله(مجلد المنزل) و($) تفيد بان المستخدم مستخدم عادي وليس root “مستخدم جذر” (سنتعرف علي المستخدمين في درس لاحق)

كيف نستخدم الـ bash ؟
الـ bash ماهو الا بيئة عمل نصيةتسمح للبرمجيات الاخرى بالعمل من داخلها.هذه البرمجيات صممت بالاساس لتعمل في بيئة العمل النصية وليس الرسومية فعلي سبيل المثال نحن نستخدم متصفح الملفات في بيئة العمل الرسومية لعرض محتوى المجلدات عن طريق استخدام الفأرة والضغطات المفردة والمزدوجة ،اما في بيئة العمل النصية لا نستطيع فعل ذلك :(،فنستخدم أداة مصممة للعمل في البيئة النصية دون الحاجة لإستخدام الفأرة والضغطات مثل أداة ls فبدلاً من فتح مدير الملفات -بغض النظر عن اسمه- واستخدام الفأرة في تحديد المجلد والضغط المزدوج لفتحه وعرض محتوياته نكتب ls folder_name فتعرض لنا اﻷداة محتويات المجلد .

كيف أعرف اسماء الاوامر المستخدمة؟
في الحقيقة استخدام كلمة أوامر ليست دقيقة بالكامل حيث ان معظم الادوات التي نستخدمها في تلك البيئة ماهي الا برامج صغيرة اما كلمة أوامر فنستطيع اطلاقها علي بعض البرمجيات الصغيرة المدمجه بداخل الـ bash فهي تسمي built-in commands مثل “history” لمعرفة المزيد عن هذا يمكنك مراجعة الرابط التالي http://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html .

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

طريقة عمل الادوات في الـ bash:
غالباً ما تتبع الادوات نفس النمط في طريقة عملها حيث تكون علي الشكل التالي:
tooloption/s parameter/s
اي اسم الاداة ثم مسافه ثم شرطة ثم الخيار/الاختيارات (اذا كانت متاحه) ثم مسافه ثم معامل/معاملات (اذا كانت متاحه).مثال للتوضيح:
استخدام أداة ls لعرض محتويات مجلد
ls /home
استخدمنا اسم الاداة(ls) ثم مسافه ثم المعامل (اسم المجلد /home) .تلاحظ هنا اننا لم نستخدم اي خيار (option) !تتيح لك بعض الادوات استخدام خيارات او لا حسب حاجتك وهناك ادوات تجبرك علي وضع خيار/خيارات وهناك ايضاً بعض الادوات التي لا تتوفر بها اي خيارات.مثال اخر ls -a /home تلاحظ هنا اننا استخدام الخيار (a) حيث يتيح لك هذا الخيار عرض كافة المجلدات والملفات حتي المخفية منها.
كيف اعرف اذا كانت الاداة توفر خيارات ام لا وهل يجب علي حفظ كل الخيارات التي توفرها أداة معينة؟
الاجابة بسيطة “جلب المساعدة” يوفر لك النظام أدوات مساعدة عظيمة مثل أداة man وهي اختصار لكلمة manual اي دليل الاستخدام حيث لا يتطلب منك الامر سوي كتابة man ثم اسم الاداة التي تريد جلب معلومات عنها .مثال man ls سيعرض لك محتويات دليل الاستخدام الخاص بالاداة حيث يحتوي علي اسم الاداة ،طريقة أستخدامها ،الخيارات المتاحة ان وجدت وامثلة علي طريقة الاستخدام ثم اسم الشخص الذي كتب هذا الدليل.اعتقد الان ان اجابةالشق الثاني من السؤال اصبحت بديهية (لا تحتاج لحفظ الخيارات التي توفرها كل اداة حيث يمكنك الرجوع دائما للدليل ومعرفتها).في الحقيقة ليس الـ man هو أداة المساعدة الوحيدة المتوفرة بالنظام فهناك ايضاً أداة whatis لمعرفة وظيفة أداة معينه ،وأداة info التي تشبهه أداة man الا انها توفر معلومات أكثر تفصيلاً كما يمكننا كتابة اسم الاداة مباشرة متبوعة بـ (–help) مثال ls –help او اختصاراً ls -h مع العلم ان هذا الاختصار غير متاح في كل الادوات ولا يحبذ استخدامه .
ملحوظة:عند تثبيت برامج جديدة فانها تضيف ملفات دليل المستخدم الخاصة بها للـ man والـ info بشكل تلقائي.الا بعض الاستثناءات .
هناك ايضاً ملفات التوثيق والموجودة في المجلد التالي usr/share/doc والتي توفر معلومات قيمه عن الادوات.

هل اذا كتبت اسم اي أداة بداخل الـ bash ستعمل مباشرة؟
لا،يجب ان يكون المجلد الذي يحتوي علي الملف التنفيذي الخاص بالاداة معرف في الـ PATH variable (المتغيير الذي يحتوي اسماء المجلدات التي بداخلها الملفات التنفيذية)الخاص بالـ bash والموجود بداخل ملف etc/profile او ملف ~/.bash_prpofile   (لا تقلق سنتعرف في دروس لاحقة علي هذه الملفات وطريقة عملها وطريقة تعديلها) لعرض الـ PATH variable نكتب التالي : echo $PATH
سيكون الناتج كالتالي :/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
نلاحظ ان اسماء المجلدات التي تحتوي علي البرامج التي يستطيع المستخدم استخدامها مكتوبة بجانب بعضها ومفصولة باستخدام علامة (:) . مرة أخري لا تقلق من هذا الجزء سنتعرف عليه في دروس لاحقة.

كيف تعرف مكان أداة معينه؟
يمكنك كتابة which ثم اسم الاداة .مثال:
emad@mybox ~ $ which ls
/bin/ls

ساكتفي بهذا ونكمل في درس قادم ان شاء الله.