Published on July 25, 2025 by d7man
تحسين أداء أداة الشل Zsh 🚀
مؤخرًا واجهت مشكلة مزعجة جدًا: الـZsh صار بطيء بشكل غير طبيعي!
كل ما أفتح التيرمنال، أحس كأني جالس أنتظر قطار! 🚅
وبما إن أغلب شغلي يعتمد على التيرمنال، ضروري يكون الشل سريع في التحميل عشان أقدر أكتب أوامري فورًا.
ما أسباب بطء الشل؟
في أكثر من سبب ممكن يخلي الشل يتأخر في التشغيل، ومنها:
- استخدام أدوات مثل
nvm
(لإدارة إصدارات Node.js) - وجود إضافات تشتغل تلقائيًا مع كل جلسة
- تحميل أوامر أو متغيرات غير ضرورية في بداية كل تشغيل
في هذا المقال، راح نركز على أحد الأسباب الشائعة: nvm
.
كيف نعرف سبب البطء؟
أول خطوة هي تحليل وقت تحميل الشل باستخدام أداة مدمجة اسمها zprof
.
افتح ملف الإعدادات الخاص بـZsh:
~/.zshrc
ونضيف اول سطر في الملف كالتالي
zmodload zsh/zprof
بعدها ننتقل لاخر سطر في الملف ونضيف كلمة zprof ونحفظ الملف
zprof
بعدها ننتقل الى التيرمنال ونحط الامر التالي عشان نعرف ايش هيا الاضافات اللي تخلي الشل ياخذ هذا الوقت كله
time zsh --interactive -c exit
طيب، وش الحل؟ 🔧
بما إن nvm
يسبب تأخير واضح، قررت أستبدله بأداة أسرع اسمها fnm
— مكتوبة بلغة Rust وتؤدي نفس الوظيفة.
تثبيت fnm
عن طريق brew
brew install fnm
او عن طريق Github:
اللحين نجي بعد ماحملنا الاداة ونحذف اللي اضفناه لملف الشل ونحط الكومناد عشان نشوف كم راح ياخذ وقت عشان يشتغل الشل معانا وهل فرق فعلا او لا ؟ سويت الامر اللي في البداية عشان نشوف سرعة تشغل الشل
time zsh --interactive -c exit
النتيجة
طبعا الفرق واضح قبل وبعد صار اسرع تقريبا ب 120% بكذا صاراسرع لانه خاصة لي وللي يستخدم التيرمنال بشكل دوري يهمه انه اول مايفتح التيرمنال يكتب الاوامر او يستخدم الشل بسرعة
هل في مجال لتحسين السرعة أكثر؟ 🧠
أكيد!
كيف؟
-
راجع الإضافات الموجودة وتأكد إنها ضرورية فعلًا.
-
استخدم مدير إضافات ذكي مثل
zinit
يدعم تحميل الإضافات عند الطلب (Lazy Loading). -
تجنّب تحميل ملفات البيئة (
env
) عند التشغيل، وخلها تتحمّل فقط عند الحاجة.🎯 خلاصة:
تحسين أداء الشل مو رفاهية، خصوصًا إذا كنت مطور وتعتمد عليه يوميًا.
بخطوات بسيطة، تقدر تسرّع تجربتك وتحافظ على إنتاجيتك.