مضى على الشبكة و يوم من العطاء.

ترسانة أدوات لينكس : أداة fd

GHAITHGHAITH is verified member.

.:: اداري سابق ::.
.:: اداري سابق ::.

linux

السمعة:

بسم الله الرحمن الرحيم

سنستكمل إن شاء الله سلسلة ترسانة أدوات لينكس, وكما نعلم أن الأمر 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 الخاص بامتداد الملف, مثال على ذلك أحياناً بكون فيه ملفات بهذا الشكل:

2.webp

كما ترى لدينا عدة ملفات منها ينتهي بامتداد "py" وهو اختصار "python" ومنها من ينتهي ب "cpp" وهو اختصار للغة البرمجة c++


الآن لنعد إلى الأمر الذي يمكننا البحث من خلاله على امتداد الملف حتى وإن كانت صورة بامتداد "png"بدون الحاجة للاسم:

Bash:
find /home/kali -name "*.py"
find /var/log -name "*.log"

في الأمر الأول كما موضح فيه حددت البحث بال * والمقصود بالنجمة هو ابحث لي عن كل المجلدات التي تنتهي بامتداد ال "py"

والأمر قبل الأخير معنا هو لمعرفة حجم الملف في المسار المحدد , يعني لنرى كم حجم الملفات الأكبر من 100MB+ في المسار home في جهازي

Bash:
find /home -size +100M


21.webp


وهكذا حتى إذا أردت البحث عن مجلدات أو ملفات بسعة أقل أو أكثر مثلاً اختصار الكيلو بايت (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"

🔰ماذا عن "fd" التي تحدثت عنها في بداية الموضوع ؟
- نعم لم أنساها لكن أخذني الحديث في التعرف على أداة "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"


في الختام أتمنى أن تكون استفدت أو على الأقل زاد مخزونك المعرفي في عالم متضارب بالأضداد, التي تطلب منا الإنصات والسكون في عالم لا يتوقف عن الثرثرة.

إلى اللقاء في موضوع جديد _<
 
التعديل الأخير بواسطة المشرف:
تم الإضافة الى الترسانة بنجاح 😇

أفضل بكثير الصراحة من الـ find في نقطه الـ extension و الـ exclude ....

أحسنت النشر يا صديقي 🤗
 
بسم الله الرحمن الرحيم
سنستكمل إن شاءالله سلسلة ترسانة أدوات لينكس
وكما نعلم ان الأمر 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 الخاص بإمتداد الملف
مثال على ذالك احياناً بكون فيه ملفات بهذا الشكل
مشاهدة المرفق 15798

كما ترى لدينا عدة ملفات منها ينتهي ب إمتداد "py" وهو اختصار "python" ومنها من ينتهدي ب "cpp" وهو إختصار للغة البرمجة c++
الآن لنعد الى الأمر الذي يمكننا البحث من خلاله على إمتداد الملف حتى وإن كانت صورة بإمتداد "png"بدون الحاجة للإسم

Bash:
find /home/kali -name "*.py"
find /var/log -name "*.log"

في الأمر الأول كما موضح فيه حددت البحث بال * والمقصود بالنجمة هو ابحث لي عن كل المجلدات التي تنتهي بإمتداد ال "py"

والأمر قبل الأخير معنا هو لمعرفة حجم الملف في المسار المحدد يعني لنرى كم حجم الملفات الأكبر من 100MB+ في المسار home في جهازي
Bash:
find /home -size +100M


مشاهدة المرفق 15799
وهكذا حتى إذا اردت البحث عن مجلدات او ملفات ب سعة أقل او أكثر مثلاً اختصار الكيلو بايت (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"

-ماذا عن "fd" التي تحدثت عنها في بداية الموضوع ؟
- نعم لم انساها لاكن اخذني الحديث في التعرف على أداة "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"


في الختام أتمنى أن تكون إستفدت او على الأقل زاد مخزونك المعرفي في عالم متضارب بالأضداد...التي تطلب منا الإنصات والسكون في عالم لا يتوقف عن الثرثرة
إلى اللقاء في موضوع جديد _<
الله يعطيك ألف عافية أخوي
الظاهر عاد العمل على قسم اللينكس

و إن شاء الله سيعود العمل على قسم الهندسة و بقوة
بالتوفيق أخوي
 
ما شاء الله تبارك الله لا قوة الا بالله
بارك الله فيك اخوي وجزاك الله كل خير
ننتظر جديد ابداعاتك دائماً
تحياتي
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى