





السمعة:
- إنضم7 نوفمبر 2023
- المشاركات 323
- الحلول 9
- مستوى التفاعل 589
- النقاط 93
- الإقامة Hashemite Kingdom of Jordan
بسم الله الرحمن الرحيم
سنستكمل إن شاء الله سلسلة ترسانة أدوات لينكس, وكما نعلم أن الأمر find هو الأكثر شيوعاً بين مستخدمي لينكس ولمن لا يعلم ما هو الأمر find إليك نبذة عنه من البداية :
مع استخدامنا المتواصل للتيرمينال نحتاج بين الحين والآخر إلى السرعة في معرفة مسارات الملفات والمجلدات والبحث عن اسم محدد أو صيغة من ملف أو امتداد نسينا أمره. أو في كثير من تحديات ال CTF التي تطلب مهارة وسرعة لإيجاد ما تبحث عنه. ولهذا لينكس وفرَ لنا عدة خيارات منها find,fd
سنتحدث عن استخداماتهم المتعددة وكيف يمكن الإستفادة من تلك الأدوات أقصى استفادة. لنأخذ في هذا السياق وفي البداية
أمر البحث عن مجلد باسم محدد:
وفي الأمر الثاني كان المقصود به البحث في المسار /home/kali عن مجلد مثل الأمر الأول لكن الفرق بين الحروف الكبيرة والصغيرة
مثال:
find /home/kali -iname "file.TEXT"
لننتقل للأمر التالي والذي نستخدمه غالباً في إيجاد امتداد الملف أو ال extension الخاص بامتداد الملف, مثال على ذلك أحياناً بكون فيه ملفات بهذا الشكل:
كما ترى لدينا عدة ملفات منها ينتهي بامتداد "py" وهو اختصار "python" ومنها من ينتهي ب "cpp" وهو اختصار للغة البرمجة c++
الآن لنعد إلى الأمر الذي يمكننا البحث من خلاله على امتداد الملف حتى وإن كانت صورة بامتداد "png"بدون الحاجة للاسم:
في الأمر الأول كما موضح فيه حددت البحث بال * والمقصود بالنجمة هو ابحث لي عن كل المجلدات التي تنتهي بامتداد ال "py"
والأمر قبل الأخير معنا هو لمعرفة حجم الملف في المسار المحدد , يعني لنرى كم حجم الملفات الأكبر من 100MB+ في المسار home في جهازي
وهكذا حتى إذا أردت البحث عن مجلدات أو ملفات بسعة أقل أو أكثر مثلاً اختصار الكيلو بايت (K)والجيجابايت(G)
إليك مثال:
وآخر أمر معنا هو للبحث عن اسم ملف داخل مجلد النظام ويتطلب منك صلاحيات الروت:
ويمكنك أيضاً قرائت المزيد حول أداة "find" بالكتابة على التيرمينال:
أتمنى أن أكون أعطيتك نبذة كافية لبدء مشوارك بالاستكشاف والبحث بين السطور والمسارات في عالم SH3LL وتحديداً عند أداة "find"
ماذا عن "fd" التي تحدثت عنها في بداية الموضوع ؟
- نعم لم أنساها لكن أخذني الحديث في التعرف على أداة "find" لا بأس ياصديقي
دعنا نبدأ من جديد, بسم الله الرحمن الرحيم
في البداية أريد منك أن تفتح التيرمينال وتُنصب الأداة بحسب التوزيعة التي تستخدمها. إليك أشهر توزيعات لينكس التي تتوافق مع الأداة فقط حدد مدير الحزم الخاص بك وقم بتنزيلها
عند الإنتهاء من تنزيلها سنبدأ بشكل مباشر باستخدامها, لماذا اخترت أداة "fd" ؟ صراحة لأن أداة fd هي بديل سريع وسهل الاستخدام عن الأمر find في لينكس، وتستخدم للبحث عن الملفات والمجلدات. فيما يلي سأقوم بالحديث عن أشهر 10 أوامر استخدمها مع هذه الأداة السلسة :
1. البحث عن ملف أو مجلد بالاسم
فقط اكتب اسم الأداء واسم المجلد أو الملف الذي تريده, بهذا الشكل:
في هذا الأمر يبحث عن الملفات أو المجلدات التي تحتوي على اسم معين.
2. البحث في دليل معين
يحدد مسار الدليل الذي تريد البحث فيه بدلًا من البحث في النظام بأكمله
3. تجاهل الملفات أو المجلدات المخفية في المسار الذي انت فيه
يُظهر الملفات والمجلدات المخفية أثناء البحث.
4. البحث باستخدام تعبير عادي (Regex)
يبحث عن الملفات التي تبدأ بـ test وتنتهي بـ .txt.
5. البحث عن المجلدات فقط
يقتصر البحث على المجلدات فقط.
6. البحث عن الملفات فقط يمكنك اضافة اسم ملف ايضاً
يقتصر البحث على الملفات فقط.
7. البحث بامتداد معين
يبحث عن ملفات بامتداد معين (مثل .txt أو .jpg).
مثال:
يبحث عن جميع ملفات PDF.
8. البحث داخل الملفات
fd 'keyword' --exec grep -i 'search_term' {}
يبحث عن كلمة معينة داخل الملفات التي تطابق البحث.
9. استثناء مسارات معينة من البحث
يستثني مسارًا معينًا من نتائج البحث
مثال متقدم: للبحث عن جميع ملفات .log في دليل معين مع استثناء الملفات المخفية:
في الختام أتمنى أن تكون استفدت أو على الأقل زاد مخزونك المعرفي في عالم متضارب بالأضداد, التي تطلب منا الإنصات والسكون في عالم لا يتوقف عن الثرثرة.
إلى اللقاء في موضوع جديد _<
سنستكمل إن شاء الله سلسلة ترسانة أدوات لينكس, وكما نعلم أن الأمر find هو الأكثر شيوعاً بين مستخدمي لينكس ولمن لا يعلم ما هو الأمر find إليك نبذة عنه من البداية :
مع استخدامنا المتواصل للتيرمينال نحتاج بين الحين والآخر إلى السرعة في معرفة مسارات الملفات والمجلدات والبحث عن اسم محدد أو صيغة من ملف أو امتداد نسينا أمره. أو في كثير من تحديات ال CTF التي تطلب مهارة وسرعة لإيجاد ما تبحث عنه. ولهذا لينكس وفرَ لنا عدة خيارات منها find,fd
سنتحدث عن استخداماتهم المتعددة وكيف يمكن الإستفادة من تلك الأدوات أقصى استفادة. لنأخذ في هذا السياق وفي البداية

Bash:
find /home/kali -name "file.text"
find /home/kali -iname "File.Text"
وفي الأمر الثاني كان المقصود به البحث في المسار /home/kali عن مجلد مثل الأمر الأول لكن الفرق بين الحروف الكبيرة والصغيرة
مثال:
find /home/kali -iname "file.TEXT"
لننتقل للأمر التالي والذي نستخدمه غالباً في إيجاد امتداد الملف أو ال extension الخاص بامتداد الملف, مثال على ذلك أحياناً بكون فيه ملفات بهذا الشكل:
كما ترى لدينا عدة ملفات منها ينتهي بامتداد "py" وهو اختصار "python" ومنها من ينتهي ب "cpp" وهو اختصار للغة البرمجة c++
الآن لنعد إلى الأمر الذي يمكننا البحث من خلاله على امتداد الملف حتى وإن كانت صورة بامتداد "png"بدون الحاجة للاسم:
Bash:
find /home/kali -name "*.py"
find /var/log -name "*.log"
في الأمر الأول كما موضح فيه حددت البحث بال * والمقصود بالنجمة هو ابحث لي عن كل المجلدات التي تنتهي بامتداد ال "py"
والأمر قبل الأخير معنا هو لمعرفة حجم الملف في المسار المحدد , يعني لنرى كم حجم الملفات الأكبر من 100MB+ في المسار home في جهازي
Bash:
find /home -size +100M
وهكذا حتى إذا أردت البحث عن مجلدات أو ملفات بسعة أقل أو أكثر مثلاً اختصار الكيلو بايت (K)والجيجابايت(G)
إليك مثال:
Bash:
find /home -size +1G
find /home -size +100K
وآخر أمر معنا هو للبحث عن اسم ملف داخل مجلد النظام ويتطلب منك صلاحيات الروت:
Bash:
sudo find / -name "config.json"
sudo find / -name "error.log"
ويمكنك أيضاً قرائت المزيد حول أداة "find" بالكتابة على التيرمينال:
Bash:
find --help
man find
أتمنى أن أكون أعطيتك نبذة كافية لبدء مشوارك بالاستكشاف والبحث بين السطور والمسارات في عالم SH3LL وتحديداً عند أداة "find"

- نعم لم أنساها لكن أخذني الحديث في التعرف على أداة "find" لا بأس ياصديقي

دعنا نبدأ من جديد, بسم الله الرحمن الرحيم
في البداية أريد منك أن تفتح التيرمينال وتُنصب الأداة بحسب التوزيعة التي تستخدمها. إليك أشهر توزيعات لينكس التي تتوافق مع الأداة فقط حدد مدير الحزم الخاص بك وقم بتنزيلها
Bash:
$ sudo apt install fd-find [On Debian, Ubuntu and Mint]
$ sudo yum install fd-find [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-apps/fd [On Gentoo Linux]
$ sudo pacman -S fd [On Arch Linux]
$ sudo zypper install fd [On OpenSUSE]
$ sudo apk add fd [On Alpine Linux]
عند الإنتهاء من تنزيلها سنبدأ بشكل مباشر باستخدامها, لماذا اخترت أداة "fd" ؟ صراحة لأن أداة fd هي بديل سريع وسهل الاستخدام عن الأمر find في لينكس، وتستخدم للبحث عن الملفات والمجلدات. فيما يلي سأقوم بالحديث عن أشهر 10 أوامر استخدمها مع هذه الأداة السلسة :
1. البحث عن ملف أو مجلد بالاسم
فقط اكتب اسم الأداء واسم المجلد أو الملف الذي تريده, بهذا الشكل:
Bash:
fd filename
في هذا الأمر يبحث عن الملفات أو المجلدات التي تحتوي على اسم معين.
2. البحث في دليل معين
Bash:
fd filename /path/to/directory
fd test.text /home/kali
يحدد مسار الدليل الذي تريد البحث فيه بدلًا من البحث في النظام بأكمله
3. تجاهل الملفات أو المجلدات المخفية في المسار الذي انت فيه
Bash:
fd --hidden
يُظهر الملفات والمجلدات المخفية أثناء البحث.
4. البحث باستخدام تعبير عادي (Regex)
Bash:
fd '^test.*\.txt$'
يبحث عن الملفات التي تبدأ بـ test وتنتهي بـ .txt.
5. البحث عن المجلدات فقط
Bash:
fd -t d
يقتصر البحث على المجلدات فقط.
6. البحث عن الملفات فقط يمكنك اضافة اسم ملف ايضاً
Bash:
fd -t f
يقتصر البحث على الملفات فقط.
7. البحث بامتداد معين
Bash:
fd -e ext
يبحث عن ملفات بامتداد معين (مثل .txt أو .jpg).
مثال:
Bash:
fd -e pdf
يبحث عن جميع ملفات PDF.
8. البحث داخل الملفات
fd 'keyword' --exec grep -i 'search_term' {}
يبحث عن كلمة معينة داخل الملفات التي تطابق البحث.
9. استثناء مسارات معينة من البحث
Bash:
fd filename --exclude path
fd test.text --exclude /var/www/html
يستثني مسارًا معينًا من نتائج البحث
مثال متقدم: للبحث عن جميع ملفات .log في دليل معين مع استثناء الملفات المخفية:
Bash:
fd -e log --hidden --exclude ".git"
في الختام أتمنى أن تكون استفدت أو على الأقل زاد مخزونك المعرفي في عالم متضارب بالأضداد, التي تطلب منا الإنصات والسكون في عالم لا يتوقف عن الثرثرة.
إلى اللقاء في موضوع جديد _<
التعديل الأخير بواسطة المشرف: