Tag Archives: ليونكس

أمر locate للبحث عن الملفات على ليونكس

السلام عليكم

أسهل طريقة للبحث عن الملفات من سطر الأوامر على ليونكس هي استخدام أمر locate الذي يكون موضوع هذه التدوينة. يوجد أيضا أمر find الذي يوفر خيارات أكثر للتحكم في البحث عن الملفات.

يُستخدم أمر locate بالطريقة التالية

locate [options] name(s)

حيث

  • options خيارات البحث
  • name(s) اسم أو أسماء الملفات المُراد البحث عنها. (معيار البحث)

في حالة عدم تحديد أي خيارات، فإن السلوك الافتراضي ل locate هو البحث في كل الملفات التي لدى المستخدم المُنفِّذ للأمر صلاحياتُ الوصول إليها، ثم إظهار اسم المسار المطلق (المسار الكامل) Absolute pathname للملفات المُدرجة في نتائج البحث.

مثال

locate "image.jpg"

كما يظهر في الصورة أدناه، فإن نتيجة البحث تعطي المسار الكامل لكل الملفات التي تحوي أسماءها image.jpg .
لزيادة إمكانيات البحث يمكن استخدام أحرف البدل wildcards أو التعبيرات النمطية regular expressions (). أحرف البدل هي أحرف(رموز) تُتخدم لتحل محل حرف مجموعة من الأحرف. من بين هذه الرموز علامة * التي تُستخدم لاستبدال مجموعة من الأحرف مهما كان عددها. مثلا للبحث عن كل الملفات ذات الامتداد png ننفذ الأمر التالي

locate "*.png"

تُمكن قراءة هذا الأمر  كما يلي: ابحث عن الملفات التي يتكون اسمها من عدد من الأحرف متبوعا بنقطة ثم الأحرف png.

خيار n-

في حال كنت ترغب بتعيين حد أقصى لنتائج الأمر locate فبإمكانك ذلك عبر الخيار n- متبوعا بعدد النتائج كما يلي

locate "*.png" -n 5

locate "*.png" -n 20

في الأمر الأول ستظهر فقط 5 ملفات على الأكثر. في الأمر الثاني زدنا الحد الأقصى إلى 20 ملفا.

خيار i-

الإعداد الافتراضي لأمر locate هو التفريق بين الأحرف الصغيرة والأحرف الكبيرة كما هو الحال في كل نظام لينكس. لتجاهل هذا الإعداد يُستعمل الخيار i- مثلا في الأمر

locate -i "*.Png"

ستظهر ملفات بامتداد png رغم أننا حددنا P كبيرة. في حال استخدام الأمر السابق دون i- فإن الملفات ذات الامتدا Png – إن وجدت – هي فقط ما سيظهر في النتائج.

خيار q-

يُستعمل هذا الخيار لحذف رسائل الخطأ من نتائج الأمر locate. مثلا حتى لا تظهر رسائل تقول إنه ليس لديك إذن الوصول لملف ما (تظهر هذه الرسائل permission dnied في حالة وافقَ ملف ما معيار البحث دون أن يكون لدى المستخدم صلاحيات الوصول إليه، لأنه ليس root على سبيل المثال).

locate "image.jpg" -q

خيار b-

عند تنفيذ locate للبحث عن اسم ملف (وليكن image.jpg ) فإن المطابقة لا تكون تامة. تظهر مثلا ملفات بأسماء مثل no_image.jpg . للبحث مع مطابقة معيار البحث نستخم خيار b- مع علامة  \ قبل اسم الملف كما يلي

locate -b "\image.jpg"

تجربة أخيرة

إنشاء ملف ثم البحث عنه

لننشئ ملفا

touch test.it

فلنبحث عنه

locate -b "\test.it"

النتيجة ؟؟ .. صفر !!

الآن نفَّذ الأمر التالي بصلاحيات root

sudo updatedb

ثم أعد البحث

locate -b "\test.it"

وجدتَه؟ أظن الجواب نعم.

تحديث بيانات locate

تحديث بيانات locate

ما هذا ؟

عند طلب الأمر locate فإنه يبحث في قاعدة بيانات تحوي جميع أسماء الملفات الموجودة في النظام. استخدام قاعدة البيانات هذه يوفر الكثير من الوقت عند البحث. الوجه الآخر هو أن قاعدة البيانات هذه يجب تحديثها من حين لآخر وهو ما يقوم به النظام بشكل دوري (يوميا في الغالب) ثم إن النتائج التي نحصل عليها عند استخدام locate قد تحيل لملف لم يعود موجودا (أي أن الملف حُذف بعد التحديث الأخير لقاعدة بيانات locate). مهمة الأمر updatedb هي تحديث قاعدة بيانات locate وهو ما يفسر أننا لم نحصل على الملف “test.it” عند البحث في المرة الأولى خلال التجربة السابقة ثم ظهر في النتائج بعد تحديث قاعدة البيانات وإعادة تنفيذ الأمر.

على توزيعة أوبنتو مسار قاعدة بيانات locate هو

/var/lib/mlocate/mlocate.db

وهو ما يمكن معرفته عبر الأمر التالي

locate -b "*locate.db"

للحصول على آخر الإضافات مباشرة بعد نشرها يُرجى الاشتراك في تغذيات RSS.

أو على تطبيق فيدلي عبر الضغط على الزر أدناه

تابعنا على تطبيق فيدلي

للمزيد

http://www.linfo.org/locate.html
http://www.codecoffee.com/tipsforlinux/articles/20.html

Advertisements

حيلة: إظهار نجوم مكان الأحرف عند إدخال كلمة السر في ليونكس

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

أثناء كتابة كلمة سر المستخدم في الطرفية Terminal فإن الإعداد الافتراضي هو عدم إظهار أي حرف أو رمز مكان كلمة السر. السبب في ذلك أمني. فالمُتطفل (صديقك الجالس بقربك أو جارك في المقهى مثلا) لن يرى كلمة سرك ولن يعرف عدد الرموز المُكونة لها.
بعض المُستخدمين يُفضل إظهار نجمات مكان الأحرف بحيث يعرف عدد الرموز التي كتبها مما يُساعده على التخفيف من أخطاء الطباعة أثناء إدخال كلمة السر.
تفعيل هذا الخيار بسيط حيث يتطلب فقط تغيير بعض الإعدادات.

الخطوات

نبدأ بتنفيذ الأمر التالي في طرفية

sudo visudo

سيظهر الملف التالي، تَنَقّل بالسهم حتى السطر الذي يحوي

Defaults        env_reset

ثم أضف الكلمة المفتاحية التالية لنهاية السطر مسبوقة بفاصلة دون ترك مسافات

pwfeedback

حتى يصبح السطر هكذا

Defaults        env_reset,pwfeedback

كما هو مبين  في الصورة

sudoers.tmp

sudoers.tmp

احفظ الملف بالضغط على زري CTRL + O متبوعا بزر Enter ثم أغلقه عبر الضغط على زري CTRL + X.

سيتوجب عليك إغلاق الطرفية ثم إعادة فتحها لترى التغييرات وتظهر علامات النجمة أثناء كتابة كلمة السر.

إلى الملتقى

حيل أخرى

للحصول على آخر الإضافات مباشرة بعد نشرها يُرجى الاشتراك في تغذيات RSS.

رابط مختصر للمشاركة مع أصدقائك عبر شبكات التواصل الاجتماعي http://wp.me/p1vJeS-fK

ملحوظة: حسب المصدر فإن هذه الحيلة صالحة أيضا لحواسيب ماك، ولكني لم أجربها (لم أستخدم حواسيب ماك قط 🙂 )

المصدر

الأمر tar لأرشفة، استخراج، ضغط وفك ضغط الملفات على ليونكس

السلام عليكم،

في تدوينة سابقة تناولت الأمر wget وطريقة استخدامه لتنزيل موقع يُتصفح محليا، على نفس النهج أقدم اليوم أمر tar واستخداماته، على أمل أن أتحدث عن أوامر أخرى في تدوينات قادمة بإذن الله.

يُستخدم الأمر tar (اختصار ل tape archiver الترجمة الحرفية: مُؤَرشِف أشرطة) لتجميع -أرشفة- عدة ملفات في ملف واحد أو العكس، استخراج مجموعة من الملفات مؤرشفة في ملف واحد كبير. غالبا ما تضغط الملفات المؤرشفة – وامتدادها tar. – للحصول على ملف جديد بحجم أقل مثلا عن طريق أحد الأمرين gzip (بعد الضغط يكون الملف الناتج يحمل الامتداد tar.gz) أو bzip2 (ملفات مضغوطة بامتداد tar.bz2 ).
اختيار نوعية الضغط – gzip أو bzip2 – يعتمد على متطلباتك. bzip2 يُنتج ملفات بحجم أقل ولكن يستغرق وقتا أطول من gzip الذي يعطي ملفات بحجم أكبر، أي بنسبة ضغط أقل. إذن الاختيار يكون اعتمادا على الأولوية بالنسبة لك، الوقت الذي يستغرقه الضغط أو حجم الملف المضغوط الناتج. في الملفات ذات الحجم المحدود لايكون الفرق واضحا ولكنه يكون جليا في الملفات الكبيرة الحجم.

الخيارات الأساسية للأمر tar

فيما يلي أهم الخيارات المتوفرة للأمر tar مع أمثلة لاستخدامها. كل خيار – كما غالبية الخيارات في أوامر ليونكس – يتوفر بكتابة قصيرة تسبقها شرطة وكتابة طويلة تسبقها شرطتان(تظهر هنا وكأنها شرطة واحدة إلا أنها في الحقيقة شرطتان، أكتب شرطتين في المصدر ولكن عند العرض تظهر شرطة واحدة، لم أفهم السبب). ينبغي الانتباه أيضا إلى الاختلاف بين الأحرف الصغيرة والكبيرة، r- تختلق تماما عن R- .

  • c- (أو create–): إنشاء أرشيف جديد
  • v- (أو verbose–): إظهار التقدم في معالجة الملف
  • f- (أو file–): تحديد اسم الملف المراد معالجته (استخراجه أو تجميعه)

بمجع الخيارات أعلاه نستطيع إنشاء أرشيف جديد عبر تنفيذ الأمر التالي

tar cvf archive_name.tar dirname/

حيث archive_name.tar هو اسم الأرشيف و dirname/ اسم المجلد – الدليل – المراد أرشفته(تجميع ملفاته).

هذا الأمر ينشئ أرشيفا غير مضغوط، لإنشاء أرشيف مضغوط نستخدم أحد الخيارين:

  • j- (أو bzip2–) لضغط أرشيف عن طريق bzip2 أو فك ضغط واستخراج محتويات ملف ضُغط باستخدام هذا البرنامج (الامتداد: tar.bz2)
  • z- (أو gzip–): نفس عمل j- ولكن يستخدم برنامج gzip (الامتداد: tar.gz) بدلا من bzip2

إنشاء أرشيف مضغوط باستخدام bzip2

tar cvjf archive_name.tar.bz2 dirname/

إنشاء أرشيف مضغوط باستخدام gzip

tar cvzf archive_name.tar.gz dirname/

  •   x- (أو extract–): استخراج مكونات الملف المُجمع

يُستخدام الخيار x- كما يلي لاستخراج أرشيف tar(سيكون الناتج مجلدا بنفس اسم الأرشيف مع إزالة امتداد الأرشيف)

tar xvf archive_name.tar

لاستخراج وفك ضغط ملف gzip ننفذ الأمر

tar xvzf archive_name.tar.gz

بالنسبة لأرشيف مضغوط ب bzip2 نضع j مكان z مع أخذ امتداد الملف بالاعتبار:

tar xvjf archive_name.tar.bz2

لاستخراج ملف واحد من الأرشيف نضيف المسار إلى الملف – داخل الأرشيف – للأمر السابق (في بعض التوزيعات يجب أن يكون المسار مسبوقا ب نقطة “.”)


tar xvf archive_name.tar ./file1
tar xvzf archive_name.tar.gz ./file1 (أرشيف مضغوط gzip)
tar xvjf archive_name.tar.bz2 ./file1 (أرشيف مضغوط bzip2)

  • t- (أو list–): سرد قائمة بالملفات الموجودة في الأرشيف دون استخراج مكوناته

أمثلة


tar tvf archive_name.tar
tar tvfz archive_name.tar.gz (أرشيف مضغوط gzip)
tar tvfj archive_name.tar.bz2 (أرشيف مضغوط bzip2)

تتوفر أيضا خاصية wildcards– لسرد الملفات التي ينطبق عليها تعبير نمطي regular expression دون غيرها، مثلا لسرد الملفات ذات الامتداد txt. داخل الأرشيف

tar xvf archive_file.tar –wildcards ‘*.txt’

  • r- (أو append–): إضافة ملف للأرشيف، تعمل فقط مع أرشيف غير مضغوط

مثال إضافة الملف newfile للأرشيف  archive_name.tar

tar rvf archive_name.tar newfile

  • d- (أو compare–) : للتحقق من الفوارق – الحجم، الصلاحيات … – بين ملف موجود في الأرشيف وملف بنفس الاسم يوجد خارجه

مثال:
فلنفرض أن الأرشيف test.tar يحوي ملفين test1 و test2. للتحقق من الفوارق بين الملف test1 وملف آخر يحمل نفس الاسم – خارج الأرشيف ولكن في نفس المجلد الذي يحوي الأرشيف – ننفذ الأمر التالي:


tar -d –file=test.tar ./test1

إذا وُجدت فروق فإنها ستظهر، مثلا بعد الأمر السابق ظهرت النتيجة التالية


./test1: Mod time differs
./test1: Size differs

للدلالة أن تاريخ التغيير -Mod time- والحجم -Size- غير متطابقين.
في حال عدم تعيين ملف من ملفات الأرشيف فإن المقارنة تكون بين كل مكونات الأرشيف والملفات التي تحمل نفس أسمائها.

ملحوظتان:
من المستحسن دائما عند دمج العديد من الخيارات في الأمر tar البدءُ بخيارات الدوال وجعل الخيار f- إن وُجد في الوضعية الأخيرة ( من بين الخيارات التي ذكرتُها c- و x- و d- و r- و t- دوال، يمكن معرفة البقية عن طريق صفحة الدليل عبر الأمر man tar حيثُ تظهر تحت بند Function Letters). أي أن تموضع الخيارات المنصوح به – لأسباب تتعلق بالحفاظ على طريقة عمل الأمر على مختلف التوزيعات – هو خيارات الدوال ثم الخيارات الأخرى وأخيرا الخيار f-.
بشكل افتراضي تنتظر tar مسارات نسبية، عند إعطاء مسار مطلق يظهر الخطأ tar: Removing leading `/’ from member names . هذا السلوك معد لأسباب أمنية، لذا ينصح بالالتزام بمسارات نسبية، وإن كان لابد من استخدام مسارات مطلقة يمكن استخدام الخيار P- .

اشترك في خدمة RSS واحصل على آخر إضافات المدونة.

مصادر

man tar
http://www.cyberciti.biz/faq/tar-extract-linux/
http://www.gnu.org/software/tar/manual/html_section/Advanced-tar.html#SEC65
http://www.thegeekstuff.com/2010/04/unix-tar-command-examples/
http://www.linuxquestions.org/questions/linux-general-1/bin-tar-removing-leading-%60-from-member-names-269508/

حظر الدخول لمواقع غير مرغوبة على ليونكس

السلام عليكم،
هل بحثتَ يوما عن طرية سهلة وفعالة لحجب بعض المواقع ومنع دخولها من النظام لديك ؟ إليك هذه الحيلة البسيطة.

افتح طرفية وأدخل الأمر التالي

sudo nano /etc/hosts

بإمكانك استخدام محرر النصوص المفضل لديك (gedit أو Kate مثلا)

في آخر الملف أضف السطر التالي

0.0.0.0 http://www.sitename.com

أبدل  http://www.sitename.com بالموقع المراد حظره.

بنية الأسطر في الملف يجب أن تكون عنوان الآي بي IP الخاص بالموقع متبوعا باسم الموقع أو اسم مختصر للدخول إلى الموقع ، القيمة 0.0.0.0 هي لتجاهل الموقع المدرج بعدها وبالتالي حظره.

سيأخذ النظام التغييرات عند إعادة تشغيله.

إلى الملتقى.