Grep: تعلم البرمجة النصية للقذيفة باستخدام أمر Grep Terminal

الأمر grep

تعلم البرمجة النصية لـ Shell باستخدام الأمر الطرفي: grep

يعد الأمر "grep" في أنظمة التشغيل الحرة مثل GNU / Linux أمرًا قيمًا ومفيدًا للغاية. يأتي اسمها من العبارة الإنجليزية: "Global Regular Expression Print" وتستخدم لأداء مهمة البحث عن ومطابقة وعرض نمط بحث أو تعبير عادي لملف واحد (1) أو عدة ملفات نصية.

بشكل أساسي ، يبحث الأمر "grep" عن النمط المشار إليه في معلمات أمر الأمر ، ويطبع النتائج التي تم الحصول عليها باتباع مؤشرات معلمات الأمر.، والتي يمكن أن تكون: الشاشة أو ملف الإخراج.

مقدمة إلى الأمر "grep"

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

أمثلة عملية

عرض موقفنا / موقعنا

طباعة محتويات الدليل الحالي باستخدام شجرة دليل رسومية:

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'

على سبيل المثال:

Grep: دليل يشبه الشجرة

قم بإنشاء كلمة مرور عشوائية بطول 30 حرفًا

قم بإنشاء سلاسل عشوائية داخل / dev / urandom ثم حدد وعرض واحد (1) باستخدام ترشيح باستخدام الأمر "grep" للأحرف الأبجدية الرقمية فقط ، مع شرط حجم أول 30 حرفًا ، مما يلغي جميع موجزات الأسطر.

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

على سبيل المثال:

Grep: إنشاء كلمة المرور

قم بإنشاء ملخص رسومي للاتصالات

تصور في شكل رسومي (جدول) ولخص شكل عدد اتصالات الشبكة الداخلية والخارجية التي تم الكشف عنها بواسطة أمر "netstat" للمضيف في لحظة معينة.

netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'

على سبيل المثال:

Grep: رسم بياني لاتصالات Netstat

يمكن استخدامه أيضًا لإنشاء جدول ملخص لعدد الاتصالات حسب نوعها ، كما هو موضح أدناه:

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

على سبيل المثال:

Grep: جداول الملخص مع Netstat

ابحث عن سلسلة (نمط) داخل مسار

حدد موقع واعرض جميع تطابقات النمط في أسماء الملفات أو محتوى الملف. استخدام المعلمات لتحقيق ذلك هي: -R (التكرار للأدلة الفرعية) ، -n (إظهار أرقام أسطر المطابقات) ، -i (تجاهل الأحرف الكبيرة والصغيرة) ، -s (منع 'لا توجد رسائل "لا يمكن" اقرأ ") ، -I (تجاهل الثنائيات في البحث).

grep -RnisI  *

Grep: ابحث عن الأنماط في الملفات والمجلدات

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

find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;

Grep: ابحث عن الأنماط في الملفات

تعرف على كمية البيانات في ذاكرة RAM

هذا مفيد لمعرفة مقدار البيانات (المعلومات) التي تنتظر كتابتها على القرص الصلب بالضبط ومن الضروري فرض إعادة تشغيل أو إيقاف تشغيل الكمبيوتر.

grep ^Dirty /proc/meminfo

Grep: البيانات في ذاكرة الوصول العشوائي

تعرف على عنوان IP الخاص بشبكة WAN

من المفيد دائمًا معرفة عنوان IP الخاص بشبكة WAN تلقائيًا من الجهاز ثم تمرير هذه المعلمة إلى مهمة آلية أخرى. يستخدم هذا المثال خدمة DynDNS للحصول عليه.

curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"

Grep: تعرف على WAN IP الخاص بنا

ضع قائمة بالمعدات المتصلة بجزء من الشبكة

باستخدام حلقة for مع الأمر "ping" وتصفية النتيجة باستخدام الأمر "grep" ، يمكننا التحقق من صحة أجهزة الكمبيوتر الخاصة بنا المتصلة بالشبكة مع تمكين خدمة ping دون الحاجة إلى أداة NMap.

for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done

على سبيل المثال:

لسرد حقل عنوان IP الذي تم تتبعه ، يمكنك استخدام هذا السطر بشكل أكثر تقدمًا ، وتصفية نتائج الأمر "grep" باستخدام الأمرين "awk" و "القطع" ، كما هو موضح أدناه:

for i in {100..110}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done | awk '{ print $4 }' | cut -d ":" -f 1

على سبيل المثال:

Grep: قائمة LAN IP

هذه الأمثلة لأسطر الأوامر باستخدام الأمر grep. ويمكن استخدامها مباشرة من وحدة التحكم أو بشكل غير مباشر عن طريق إدراجها في برنامج نصي (مهمة آلية).

في المنشور التالي على Shell Scripting سنستكشف أوامر أخرى.

إذا كنت تريد معرفة المزيد عن الأمر «grep» ، فتفضل بزيارة هذا الرابط «ديبيان ويكي»وإذا كنت تريد معرفة المزيد حول البرمجة النصية في شل في مدونتنا الخاصة، يمكنك إلقاء نظرة على إصداراتنا الأخرى حول هذا الموضوع ، من خلال النقر هنا: البرمجة النصية DesdeLinux


2 تعليقات ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   لياندرو قال

    المقال رائع شكرا جزيلا لك.

  2.   تثبيت Linux Post قال

    على الرحب والسعة ، إنه لمن دواعي سروري! الآن يأتي واحد مع الأمر Sed.