الأربعاء، 12 مارس 2008

الحصول على تلخيصات الاوامر بواسطة apropos و whatis

عند استكشافك لينكس للمرة الأولى ، قد تعترضك بعض البرامج التي لا تكون وظيفتها جليه . معظم برامج لينكس مصممه لتعطي على الأقل بعض المساعده بواسطة الخيار ? أو help- في سطر أمرها لكن لا يجب عادة أن تشغل برنامجاً دون أن تعرف وظيفته مسبقاً .
قد يكون الأمر whatis قادر على مساعدتك في معرفة وظيفة أي برنامج بسرعه بواسطة سطر تلخيص مستخرج من صفحة كتيب البرنامج . مثلاً ، لمعرفة ماهو whereis ( ليس whreris whatis !) يمكنطك كتابة
#whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
لكن ، كما هو الحال مع الأمر locate عليك أولاً بناء قاعدة بيانات لتلخيصات الأوامر بواسطة الأمر makewhatis الموجود في الدليل usr/sbin/ لتحقيق هذا تأكد من أنك سجلت دخولك كجذر وأكتب
#makewhatis
الأمر makewhatis كما الأمر updatedb سيستغرق في بضع دقائق ليبني قاعدة بيانات whatis التي خلافاً لقاعدة بيانات locate تدعى whatis وتتواجد في الدليل usr/man/man1/ يملك الأمر makewhatis عدة خيارات لكنه لا يملك صفحة كتيب لرؤية تلخيص سريع أستعمل
#makewhatis -?
أيضاً كما هو الحال مع قاعدة بينات locate ستحتاج الى تحديث قاعدة بيانات whatis من وقت لاخر لتبقى على أطلاع بالبرامج المثبته حديثاً .
لقد رأيت حتى الآن كيف يستطيع الأمر أن whatis و whereis مساعدتك في إيجاد البرامج أو معرفة وظائفها .لكم ماذا لو أردت فعل شيء ما ولا تستطيع تذكر البرنامج الذي يقوم بذلك ؟ يمكنك في هذه الحالة اللجوء الى الامر apropos .
مثلاً اذا كنت لاتستطيع تذكر أي أمر يبحث عن الملفات ، يمكنك كتابة
# apropos search
apropos (1) -search the whatis database for strings .
badblock (8) -search a device for bad blocks .
bsearch (3) -binary search of a sorted array.
conflict (8) -search for alias/password conflicts.
سترى على شاشتك لائحة برامج من قاعدة بيانات whatis . يستعمل الأمر apropos قاعدة البيانات هذه ليبحث عن الكلمات الدليلية التي كتبتها . اذا كنت تبقي صفحات كتيبك وقاعدة بيانات whatis محذثة ، ستكون قادراً على أستعمال apropos ليساعدك في إيجاد البرنامج الذي تحتاج إليه .

الخميس، 6 مارس 2008

التنقل في نظام الملفات والبحث فيه

يتناول هذا القسم أوامر التنقل الاساسية ويبين لك كيفية التنقل في نظام ملفات لينكس والبحث عن الملفات وبناء قواعد بينات تحتوي على معلومات الملفات كتلك التي يتم أستعمالها مع الأمر whatis ستتعلم أيضاً عن الأساليب والبرامج البديلة وكيفية تسريع عمليات البحث لإيجاد الملفات بسرعه .
الانتقال إلى دلائل أخرى بواسطة الأمر cd
الأمر cd ( التغيير إلى دليل ) هو أداة التنقل الاساسية لكي تنقل مكانك الحالي إلى إجزاء مختلفة في نظام ملفات لينكس . يمكنك الأنتقال إلى دليل ما مباشرة بكتابة هذا الأمر يلية مسار أو أسم دليل مثلاً سينقلك الأمر التالي إلى دليل usr/bin:
# cd /usr/bin
عندما تصبح في ذلك الدليل يمكنك الأنتقال إلى الأعلى نحو الدليل usr/ بواسطة الأمر التالي :
# cd ..
يمكنك أيضا الانتقال الى دليل الجذري ( الدليل/) أثناء تواجدك في الدليل usr/bin/ بكتابة الأمر التالي :
# cd ../..
أخيرا يمكنك دائما العودة الى دليلك الأم ( حيث توجد ملفاتك ) بإستعمال أحد الأمرين التاليين :
# cd
او
# cd ~
معرفة مكان تواجدك بواسطة الأمر pwd
يبلغك الأمر pwd ( طباعة دليل العمل ) عن مكان تواجدك ويطبع أسم دليل العمل ( الدليل الحالي ) مثلاً إذا نفذت الأمر
# cd /usr/bin
ثم كتبت
# pwd
سترى
/usr/bin
رغم أن هناك صفحة كتيب للأمر pwd فالاحتمال هو أنك عندما تستعمل pwd تكون تستعمل أمر pwd مبني ضمن غلافك . كيف تستطيع معرفة ذلك ؟ إذا حاولت أستدعاء pwd بواسطة الامر التالي يجب أن ترى إسم دليل العمل الحالي فقط :
# pwd --help
بدالا من ذلك حاول استدعاء pwd كالتالي
# /bin/pwd --help
سترى ملف مساعدة موجز عن الامر pwd وليس إسم دليل الحالي .
البحث في الدلائل عن ملفات مطابقة بواسطة الأمر find
الامر find هو برنامج بحث فعال يمكنك أستعمال للبحث عن الملفات في قرصك الثابت . يمكنك البحث بسهولة بواسطة امر find بسيط مثلاً للبحث عن الامر spell في الدليل usr/ ستستعمل
# find /usr -name spell -print
يمكنك استعمال الامر find أيضا للبحث عن الملفات حسب تواريخها يمكنك تحديد نطاق أوقات أيضا مثلا للبحث عن البرامج في الدليل usr/bin/ التي لم تستعملها في الايام الماضيه أكتب :
# find /usr/bin -type f -atime +100 -print
للبحث عن أي ملفات إما جديدة أو معدلة التي تكون قديمة يوماً واحداً أو أقل في الدليل usr/bin/ اكتب :
# find /usr/bin -type f -mtime -1 -print
يقبل الامر find أحرف بدل أيضا وهو ما ستتعلم عنه في الدروس القادمة بإذن الله وهذا مثال
# find /usr -name '*.ps' -print
إيجاد الملفات بواسطة الأمر whereis
يستطيع الأمر whereis إيجاد الملفات بسرعه كما أنه يبين لك أين توجد نسخة كل ملف الثنائية والمصدر وصفحات كتيبه لك الأمر التالي أن الأمر find موجود في الدليل usr/bin/ وأن صفحة كتيبة موجوده في الدليل usr/man/man1/ :
# whereis find
find: /usr/bin/find /usr/man/man1/find.1
يمكنك أيضا أستعمال الأمر whereis لايجاد فقط الاصدار الثنائي للبرنامج بواسطة
# whereis -b find
find: /usr/bin/find
اذا لم يتمكن whereis من إيجاد ماتريده ستحصل على سلسلة فارغه مثلاً :
# whereis foo
foo:
جزء من المشكلة قد يكون أن الملف ليس موجوداً في أي دليل من الدلائل التي بحث فيها whereis ان الدلائل التي يبحث فيها "محفورة" في البرنامج . رغم أن هذا قد لايبدو عائقاً الا أن حد نطاق البحث عند الدلائل المعروفة كــ usr/man/ او usr/bin/ او usr/sbin/ يمكن أن يسرع عملية إيجاد الملفات .
رغم أن whereis اسرع من find لايجاد البرامج أو صفحات الكتيب الا أن هناك برنامج بحث أسرع أيضا يمكنك أستعماله يدعى locate سنشرحه في القسم التالي .
البحث عن الملفات بواسطة الأمر locate
إحدى الطرق لتسريع عمليات البحث عن الملفات هي بعدم البحث في الدلائل يمكنك فعل هذا بإستعمال برنامج كـlocate الذي يستعمل قاعدة بينات تحتوي على أسماء ملفات و أماكن والذي يفور الوقت ببحثه في ملف واحد بدلا من الملاحه في قرصك الثابت . أن العثور على ملف بإستعمال الامر locate أسرع بكثير من أستعمال الامر find أو locate ينتقل الى ملف قاعدة البيانات مباشره فيبحث عن أسماء الملفات المطابقة ويعرض النتائج .
الأمر locate سهل الاستعمال مثلاً لايجاد كل الملفات البوستسكريبت في كمبيوترك يمكنك كتابة
# locate *.ps
تواً تقريباً ستظهر أسماء الملفات على الشاشة حتى أنك قد تجد الأمر locate أبسط من الامر find لكن هناك صعوبة سيعمل find بعد أخراجه من الحزمه مباشرة بينما تحتاج أولاً مع الأمر locate إلى بناء قاعدة بيانات بكل الملفات الموجوده في كمبيوترك لكن لا تقلق لإن هذا الاجراء تلقائي في الموجّه
# updatedb
قد يستغرق أنشاء قاعدة البيانات حوالي الدقيقه لكن عندما ينتهي ستتواجد قاعدة البيانات التي تدعى locatedb ( حوالي 300.00 حرف لملفات حجمها 400 ميقابايت ) في الدليل var/lib/ العائق الوحيد لاستعمال الأمر locate هو أنه بعد فترة من الوقت ستصبح قاعدة بياناته قديمة كونك أضفت و حذفت ملفات من كمبيوترك . لكن يمكنك تحديث قاعدة البيانات تلقائيا .