أوامر لينكس اليومية: البحث والعمليات والحزم
درس 9 من 11
9أوامر لينكس اليومية: البحث والعمليات والحزم
الصورة الكبيرةحين يتوقّف خادم في الثالثة فجرًا لا توجد واجهة رسومية. هذه الأوامر هي يداك وعيناك داخل أي جهاز لينكس في العالم.
ماذا تشاهد في الرسم: خمسة أسئلة تسألها كل يوم، ولكل سؤال أمر. تعلّمها بالترتيب هذا لأن كل واحد يعتمد على الأنابيب التي عرفتها.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
تخيّل أنك تدير مستودعًا ضخمًا: find موظّف يبحث عن صندوق بالاسم، وgrep يقرأ داخل الصناديق عن كلمة، وps قائمة العمّال الآن، وkill تطلب من عامل التوقّف، وdf يقول كم بقي من مساحة، وssh بوابة تدخل منها مستودعًا في مدينة أخرى.
find يمشي الشجرة بمعايير (-name، -type، -mtime، -size) وينفّذ بـ -exec. grep -rn يبحث بتعابير نمطية مع رقم السطر. ps aux لقطة للعمليات، top/htop حيّة، وkill يرسل إشارة (SIGTERM 15 افتراضيًا، SIGKILL 9 كملاذ أخير). df -h لأنظمة الملفات وdu -sh للمجلدات. apt لحزم ديبيان/أوبونتو، curl -I للترويسات، ssh -i key user@host بمفتاح لا بكلمة مرور، وtar -czf للضغط.
قبل أن تبدأ
🐚الشل والأنابيب
تعرف ls وcd و| و>.
الفكرة الجوهرية
1البحث: find وgrep
find يجد الملفات بأسمائها وخصائصها، وgrep يجد النصوص داخلها. معًا يجاوبان «أين كُتب هذا الخطأ؟» في ثانية.
find . -name "*.log" -mtime -1 # log files changed in the last day find . -type f -size +100M # files over 100 MB grep -rn "ERROR" logs/ # every line with ERROR, with its line number grep -c "404" access.log # how many lines mention 404
2العمليات: ps وtop وkill
كل برنامج يعمل «عملية» لها رقم (PID). ps aux | grep node يجد عمليات node، وtop يعرض من يستهلك المعالج الآن، وkill PID يطلب منها التوقّف بلطف.
kill -9. هذه الإشارة تقتل العملية فورًا دون أن تحفظ ملفاتها أو تغلق اتصالاتها. جرّب kill العادي أولًا وانتظر ثوانٍ.3المساحة والحزم: df وdu وapt
df -h يقول كم بقي في كل قرص، وdu -sh * يقول كم يأخذ كل مجلد هنا. وsudo apt update && sudo apt install tree يثبّت برنامجًا من مستودع التوزيعة.
df -h / # free space on the main disk du -sh * | sort -h # folders here, smallest to largest sudo apt update sudo apt install -y tree
4الشبكة والخوادم: curl وssh وtar
curl -I https://example.com يجلب ترويسات الرد فقط (تذكّر درس HTTP). ssh user@server يفتح طرفية على خادم بعيد، وscp ينسخ إليه. وtar -czf backup.tar.gz project/ يضغط مجلدًا في ملف واحد.
curl -I https://example.com ssh -i ~/.ssh/id_ed25519 deploy@203.0.113.10 tar -czf backup.tar.gz project/ tar -xzf backup.tar.gz # unpack
مثال محلول
المسألة: الخادم يقول «No space left on device». الحل: df -h يريك أن القرص 100%. sudo du -sh /var/* | sort -h يكشف أن /var/log 18 جيجا. find /var/log -name "*.gz" -mtime +30 يجد السجلات القديمة المضغوطة، ثم تحذفها أو تنقلها، وتضبط تدوير السجلات حتى لا يتكرّر.
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| الطرفية للهاكرز والخبراء فقط. | عشرون أمرًا تغطّي أغلب عمل المطوّر، وكلها تتعلّمها في أسبوع. |
| kill -9 هو الطريقة الصحيحة لإيقاف أي برنامج. | هو الملاذ الأخير. الإيقاف العادي يعطي البرنامج فرصة للحفظ والإغلاق النظيف. |
اختبر فهمك
تريد كل الأسطر التي فيها «timeout» في مجلد السجلات. أي أمر؟
grep يبحث داخل محتوى الملفات، وfind يبحث في أسمائها.
أي أمر يقول كم بقي من مساحة القرص؟
df لأنظمة الملفات كلها، وdu لحجم مجلدات بعينها.
ما الطريقة الآمنة للدخول إلى خادم؟
المفتاح أصعب بكثير في التخمين من كلمة المرور، وtelnet غير مشفّر أصلًا.
بطاقات مراجعة سريعة
تحقق من فهمك
ما الفرق بين find وgrep؟
find يبحث عن الملفات نفسها بخصائصها، وgrep يبحث عن نص داخل الملفات.
لماذا نجرّب kill قبل kill -9؟
kill يرسل SIGTERM فيحفظ البرنامج ويغلق بنظافة، و-9 يقتله فورًا وقد يترك ملفات تالفة.
كيف تجد المجلد الذي يأكل المساحة؟
df -h لمعرفة القرص الممتلئ، ثم du -sh * | sort -h داخله ونزولًا حتى تجد المجلد.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
أدوات2
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.