أتمتة كاملة لـ WSL2 باستخدام Zsh و Oh My Zsh على نظام التشغيل Windows

آخر تحديث: 26 من 2026 فبراير
نبذة عن الكاتب: تكنوديجيتال
  • يتيح لك WSL2 استخدام نظام Linux كامل داخل Windows ودمجه مع Zsh لإنشاء طرفية قوية وحديثة.
  • تعمل Windows Terminal و Nerd Fonts و Oh My Zsh على تحسين التجربة المرئية والوظيفية من خلال السمات والأيقونات والمكونات الإضافية والأسماء المستعارة المخصصة.
  • تسهل البرامج النصية التمهيدية وملفات الإعدادات المخفية وحاويات التطوير أتمتة بيئة التطوير والتحكم في إصداراتها لفريق التطوير بأكمله.
  • يؤدي التكامل مع VS Code وأدوات مثل NVM و Conda و BAT و LSD أو FZF إلى إنشاء سير عمل قوي وقابل للتكرار.

أتمتة Zsh على نظام التشغيل Windows باستخدام WSL2

إذا كنت مطورًا باستخدام Node.js أو Python على نظام Windows وترغب في الاستفادة من مزايا Linux دون التخلي عن ألعابك أو أدواتك المعتادة أو سير عملك، فإن WSL2 وZsh هما على الأرجح الخيار الأمثل لك. فامتلاك توزيعة Linux حقيقية، مع طرفية متطورة وأتمتة كاملة لكل شيء، يجعل إعداد بيئة التطوير أمرًا سهلاً وسريعًا، فلا يتطلب ساعات من نسخ الأوامر.

ستتعرف في هذا الدليل، بعناية فائقة وتفصيل دقيق، على كيفية أتمتة بيئة WSL2 بالكامل باستخدام Zsh وOh My Zsh ، وكيفية دمجها مع Windows Terminal وVisual Studio Code، وكيفية تجميعها في نصوص برمجية وملفات إعدادات (dotfiles) بحيث يمكنك (أو أي شخص في فريقك) تكرار نفس الإعداد في دقائق. الهدف هو أن تقضي وقتًا أقل في التعامل مع الإعدادات ووقتًا أطول في الاستمتاع بكتابة التعليمات البرمجية.

ما هو WSL2 ولماذا يستحق استخدامه مع Zsh؟

نظام ويندوز الفرعي لنظام لينكس (WSL) هو الطبقة التي تتيح لك تشغيل لينكس داخل ويندوز دون الحاجة إلى أجهزة افتراضية معقدة أو نظام تشغيل مزدوج. مع WSL2، تُطوّر مايكروسوفت هذه التقنية خطوةً أخرى: فهي تُشغّل نواة لينكس كاملة باستخدام Hyper-V ، مع استهلاك منخفض جدًا للموارد وأداء قريب جدًا من التثبيت الأصلي.

بفضل هذا، يمكنك تثبيت توزيعات مثل Ubuntu أو Debian أو Kali أو Alpine مباشرة من متجر Microsoft أو باستخدام أوامر PowerShell، والاستمتاع بنظام ملفات Linux وحزم apt وأدوات التطوير، وبالطبع، واجهات سطر الأوامر المتقدمة مثل Zsh مع Oh My Zsh وملحقاتها.

لسنوات طويلة، لم يكن البرمجة على نظام ويندوز خيارًا جذابًا : فبدون باش، ونظام ملفات معقد، وأدوات تطوير أصلية أقل، انتهى المطاف بمعظم المطورين بالانتقال إلى لينكس أو ماك أو إس. مع WSL2، يتغير هذا الوضع جذريًا: ستبقى على ويندوز، لكنك ستعمل كما لو كنت تستخدم توزيعة لينكس ، مع إمكانية أتمتة عملية الإعداد بالكامل تقريبًا.

يكمن جمال الجمع بين WSL2 و Zsh في حقيقة أن Zsh يقدم تجربة طرفية أفضل بكثير من bash الكلاسيكي : إكمال تلقائي متقدم، واقتراحات، وسمات، وتكامل Git، ومكونات NVM الإضافية، وأسماء مستعارة، وتلوين بناء الجملة، وقائمة طويلة من الميزات التي يصعب التخلي عنها بمجرد تجربتها.

بيئة WSL2 و Zsh مخصصة

قم بتثبيت وإعداد WSL2 على نظام التشغيل Windows 10 أو 11

قبل الخوض في تفاصيل ضبط الأتمتة، ستحتاج إلى تفعيل WSL2 وتثبيت توزيعة لينكس . أصبحت العملية أبسط بكثير اليوم مقارنةً بالإصدارات السابقة، ويمكن إنجاز كل شيء تقريبًا بأمر واحد.

في أنظمة التشغيل Windows 10 الحديثة (الإصدار 2004 أو أعلى) أو Windows 11 ، ما عليك سوى فتح PowerShell كمسؤول (ابحث عنه في قائمة ابدأ، وانقر بزر الماوس الأيمن، ثم اختر "تشغيل كمسؤول") وقم بتشغيله:

wsl --install

يُفعّل هذا الأمر الميزات الاختيارية الضرورية ، ويُنزّل نواة لينكس ، ويُعيّن WSL2 كإصدار افتراضي ، ويُثبّت أوبونتو كتوزيعة افتراضية . بمجرد اكتمال العملية، سيطلب منك النظام إعادة تشغيل جهاز الكمبيوتر لتطبيق التغييرات.

إذا كنت تفضل توزيعة مختلفة، يمكنك تحديدها في الأمر نفسه، على سبيل المثال لتثبيت دبيان:

wsl --install -d Debian

يمكنك في أي وقت التحقق من حالة التوزيعات المثبتة وإصداراتها باستخدام:

wsl -l -v

وإذا كنت ترغب في تغيير توزيعة لينكس أو تنظيف توزيعة لم تعد تستخدمها، فلديك خيارات مثل سرد التوزيعات المتاحة عبر الإنترنت أو إزالة تثبيت معين:

wsl -l -o
wsl --unregister Ubuntu-20.04

عند تشغيل التوزيع لأول مرة، سيظهر معالج نصي يطلب منك القيام بما يلي: أنشئ مستخدم UNIX وكلمة مرورهسيكون هذا هو المستخدم الرئيسي الخاص بك داخل WSL، مع وجود HOME النموذجي الخاص به في /home/tuusuarioومن المهم أن تدون اسم المستخدم وكلمة المرور لأنك ستستخدمهما في المهام الإدارية. sudo.

قم بتهيئة Windows Terminal للعمل مع WSL2

بعد تثبيت نظام WSL2 وتشغيله، تتمثل الخطوة المنطقية التالية في تحسين تجربة استخدام سطر الأوامر في نظام ويندوز باستخدام تطبيق Windows Terminal . يدعم هذا التطبيق علامات التبويب، واللوحات، والسمات، والشفافيات، وملفات تعريف خاصة بتوزيعات ويندوز المختلفة، وخطوط الأيقونات، وغير ذلك الكثير.

قم بتثبيت Windows Terminal من متجر Microsoft ، وعند فتحه، ستلاحظ أنه يعرض عادةً ملف تعريف PowerShell أو CMD افتراضيًا. من القائمة المنسدلة، يمكنك اختيار توزيعة WSL الخاصة بك (Ubuntu، Debian، إلخ) وفتحها في علامة تبويب جديدة.

إلى سيتم فتح نظام Ubuntu أو أي توزيعة أخرى تستخدمها في WSL بشكل افتراضي دائمًا.يمكنك تعديل الإعدادات. يحفظ Windows Terminal إعداداته في ملف JSON، يمكن الوصول إليه من قائمة الإعدادات. حدد موقع الحقل "defaultProfile" وضع معرّف ملف تعريف أوبونتو GUID (سترى ذلك في القائمة) profiles) كقيمة.

بالإضافة إلى ذلك، يمكنك قم بتخصيص أنظمة الألوان وأضف شفافية الأكريليك لإضفاء لمسة عصرية عليه. على سبيل المثال، في جزء من "defaults" بالنسبة للملفات الشخصية، يمكنك تحديد شيء كهذا:

  Active Desktop: ما هو، وما هو استخدامه، وما هو تأثيره على تاريخ Windows.

"defaults": {
"useAcrylic": true,
"acrylicOpacity": 0.4
}

إذا كنت ترغب في إضافة المزيد من الألوان، يمكنك إضافة مخطط مخصص في القسم "schemes" من ملف JSON، يتم تحديد ألوان الخلفية، وألوان المقدمة، ولوحة ألوان الطرفية الأساسية. مثال نموذجي على ذلك هو سمة Solarized، والتي يمكنك ربط ملف تعريف WSL بها باستخدام الخاصية. "colorScheme" : "wsl" في الملف الشخصي المقابل.

ويندوز تيرمينال مع WSL2 و Zsh

قم بتثبيت وأتمتة Zsh + Oh My Zsh في WSL2

مع وجود أساس متين لنظام WSL وWindows Terminal، حان الوقت لإضافة إمكانيات هائلة إلى واجهة سطر الأوامر. يُعدّ Zsh بديلاً أقوى بكثير من bash ، وبالاقتران مع Oh My Zsh، يصبح أداة متعددة الاستخدامات للعمل مع Git وNode وPython، وأي شيء آخر تقريبًا في سطر الأوامر.

في توزيعة WSL الخاصة بك (على سبيل المثال أوبونتو)، ابدأ بتحديث المستودعات وتثبيت الحد الأدنى من الحزم الضرورية :

sudo apt update
sudo apt install git zsh -y

ثم قم بتثبيت Oh My Zsh باستخدام البرنامج النصي الرسمي، مستفيدًا من curl لتنزيل المثبت وتشغيله مباشرة:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

أثناء التثبيت، سيُطلب منك تحديد ما إذا كنت ترغب في تعيين Zsh كصدفة افتراضية ؛ اختر "نعم". إذا احتجت إلى القيام بذلك يدويًا، يمكنك استخدام:

chsh -s /bin/zsh

عند الانتهاء، سيتم إنشاء ملف تكوين في دليل المستخدم الخاص بك باسم ~/.zshrcحيث يتم التحكم بكل شيء: الإضافات، والقوالب، والأسماء المستعارة، والبيئة، والمسارات...

أحد المواضيع الشائعة جدًا في Oh My Zsh هو مُلحد، مع التركيز على عرض معلومات Git بوضوح. لتفعيله، قم بتحرير الملف ~/.zshrc باستخدام المحرر الذي تفضله (على سبيل المثال) vi ~/.zshrc o nano ~/.zshrc) وتأكد من أن عنوان الموضوع يبدو كالتالي:

ZSH_THEME="agnoster"

يوصى أيضاً بذلك، في كل من bash و Zsh، فرض بدء تشغيل shell في دليل المستخدم الرئيسي (HOME) الخاص بك في نظام Linux (ليس في مجلد مستخدم ويندوز)، لأن WSL يعمل بشكل أفضل بكثير داخل نظام الملفات الأصلي للتوزيعة. ما عليك سوى إضافة ما يلي إلى نهاية ~/.zshrc سطر بسيط:

cd ~

خطوط نيرد وباورلينس: الأيقونات والجماليات في الطرفية

لكي تظهر سمات Zsh و Oh My Zsh بالشكل المطلوب، تحتاج إلى خط يدعم الرموز والأيقونات الخاصة (ما يُعرف بخطوط Nerd أو خطوط Powerline). وإلا، فسترى مربعات غريبة أو أحرفًا مشوهة في موجهات الأوامر المتقدمة.

أمامك خياران شائعان: تثبيت حزمة خطوط Powerline الكلاسيكية أو اختيار خط Nerd محدد مثل MesloLGS NF أو Hack Nerd Font . إحدى الطرق السريعة هي استنساخ مستودع خطوط Powerline من PowerShell في نظام Windows، وذلك بالانتقال أولاً إلى مجلد فارغ.

git clone https://github.com/powerline/fonts.git
cd fonts
.\install.ps1

سيضيف برنامج التثبيت تلقائيًا عددًا من الخطوط إلى النظام. بعد ذلك، من إعدادات Windows Terminal، حدد أحد الخطوط المثبتة لملف تعريف WSL، على سبيل المثال:

"fontFace": "DejaVu Sans Mono for Powerline"

إذا كنت تفضل شيئًا أكثر حداثة، يمكنك تنزيل خط Nerd Font محدد (مثل MesloLGS NF Regular.ttf ) من موقع Nerd Fonts الإلكتروني، وتثبيته على نظام التشغيل Windows بالنقر المزدوج عليه واختيار "تثبيت"، ثم اختياره كخطك في ملف تعريف Windows Terminal.

إذا كنت تستخدم سمات متقدمة مثل Powerlevel10k ، يُنصح بشدة باستخدام Nerd Fonts. لتثبيت هذه السمة، يمكنك اتباع الخطوات التالية من خلال حساب مستخدم WSL الخاص بك:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc

بعد إعادة تحميل Zsh (zsh أو إغلاق وفتح الطرفية)، سيتم تشغيل معالج إرشادي (p10k configure) لتخصيص الرسالة حسب رغبتك، وإنشاء ملف ~/.p10k.zsh مع جميع الإعدادات.

أتمتة متقدمة لـ WSL2 و Zsh

إضافات مفيدة لـ Zsh: إنتاجية فورية

من أهم مزايا Oh My Zsh سهولة إضافة الإضافات لتحسين سير العمل. فيما يلي قائمة ببعض الإضافات الأكثر استخدامًا في بيئات تطوير WSL2.

يتم تفعيل إضافة Git افتراضيًا، وتعرض الفرع الذي تعمل عليه، وما إذا كانت لديك تغييرات معلقة، وما إذا كانت هناك تغييرات غير مُلتزم بها، وغير ذلك الكثير - كل ذلك مباشرةً في موجه الأوامر. إنها مثالية لتتبع حالة مستودعك أثناء تصفحك.

ومن الإضافات الكلاسيكية الأخرى zsh-autosuggestions ، التي تقترح الأوامر باللون الرمادي بناءً على سجل الأوامر، مما يسمح لك بقبول الاقتراح بضغطة زر وتجنب كتابة نفس التركيبات الطويلة مرارًا وتكرارًا . لتثبيتها:

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions

كما يُنصح بشدة باستخدام zsh-syntax-highlighting ، الذي يقوم بتلوين الأوامر وفقًا لما إذا كانت مكتوبة بشكل صحيح، وما إذا كانت الملفات التي تشير إليها موجودة، وما إلى ذلك، مما يساعدك على اكتشاف أخطاء بناء الجملة قبل الضغط على مفتاح الإدخال (Enter ):

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting

قم بتفعيل هذه الإضافات، وأضف ما يلي إلى نهاية ملفك ~/.zshrc شيء مثل:

source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

إضافة أخرى مفيدة للغاية هي إضافة Oh My Zsh sudo ، والتي تتيح لك، على سبيل المثال، الضغط على مجموعة مفاتيح لإضافة "sudo" بسرعة قبل تنفيذ الأمر الأخير . يمكنك تنزيلها من هنا:

mkdir -p ~/.zsh/sudo-plugin && cd ~/.zsh/sudo-plugin
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/plugins/sudo/sudo.plugin.zsh

وقم بتفعيله بإضافته إلى ~/.zshrc:

source ~/.zsh/sudo-plugin/sudo.plugin.zsh

أدوات سطر الأوامر المحسّنة (BAT، LSD، FZF، HTTPie)

بما أنك تقوم بتعديل الطرفية، فمن المفيد تثبيت بعض البرامج الإضافية. بدائل حديثة للخدمات التقليدية كما cat o lsبالإضافة إلى أدوات البحث وعملاء HTTP سهلي الاستخدام.

  دليل شامل لبرامج تنظيف سجل نظام ويندوز

BAT إنها نسخة "احترافية" من cat، مع تمييز بناء الجملة، والترقيم، والتكامل مع Gitمثالي لقراءة ملفات التعليمات البرمجية مباشرةً في سطر الأوامر. يمكنك تثبيته عن طريق تنزيل الحزمة المناسبة من GitHub (مع تعديلها لتناسب بنية نظامك):

wget https://github.com/sharkdp/bat/releases/download/v0.20.0/bat_0.20.0_amd64.deb
sudo dpkg -i bat_0.20.0_amd64.deb

لدمجها في سير عملك، يمكنك إنشاء أسماء مستعارة في ~/.zshrc لذلك عند الكتابة cat لقد قمت بالفعل باستدعاء BAT، لكنني احتفظت باختصارات الأداة التقليدية:

alias cat='/bin/bat'
alias catn='/bin/cat'
alias catnl='/bin/bat --paging=never'

من جانبها، LSD يستبدل ls مع الألوان والأيقونات ومخرجات أكثر وضوحًايتم تثبيته بشكل مشابه لبرنامج BAT:

wget https://github.com/Peltoche/lsd/releases/download/0.21.0/lsd_0.21.0_amd64.deb
sudo dpkg -i lsd_0.21.0_amd64.deb

بعد ذلك، يمكنك إعادة تعريف الأسماء المستعارة الشائعة لفرز الدلائل، وإظهار التفاصيل، وإخفائها، وما إلى ذلك، على سبيل المثال:

alias ll='lsd -lh --group-dirs=first'
alias la='lsd -a --group-dirs=first'
alias l='lsd --group-dirs=first'
alias lla='lsd -lha --group-dirs=first'
alias ls='lsd --group-dirs=first'

لإجراء عمليات بحث تفاعلية داخل سطر الأوامر، يُعدّ FZF أداةً لا غنى عنها تقريبًا: فهو يُشغّل محرك بحث تدريجي يتكامل مع سجل الأوامر والمسارات والأوامر الأخرى. يتم تثبيته عن طريق استنساخ مستودعه وتشغيل برنامج التثبيت.

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

سيضيف برنامج التثبيت إلى ~/.zshrc el source المقابل (شيء من هذا القبيل) [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh) حتى يكون كل شيء جاهزًا. يتم تفعيله باستخدام اختصارات مثل CTRL + T.

وأخيرًا، إذا كنت تعمل مع واجهات برمجة التطبيقات (APIs)، HTTPie إنها توفر تجربة أكثر راحة بكثير من curl، مع مخرجات ملونة وبنية سهلة القراءةيمكنك تثبيته عن طريق إضافة مستودعه واستخدام apt:

curl -SsL https://packages.httpie.io/deb/KEY.gpg | apt-key add -
curl -SsL -o /etc/apt/sources.list.d/httpie.list https://packages.httpie.io/deb/httpie.list
apt update
apt install httpie
apt upgrade httpie

Node.js وNVM وPython وغيرها من الأدوات في WSL2

أحد الأسباب الرئيسية لإنشاء هذا النظام هو توفير بيئة قوية لـ Node.js وPython وغيرها من التقنيات ، مع نظام تحكم بسيط وقابل للتكرار في الإصدارات. وهنا تبرز أهمية NVM لـ Node وأدوات مثل Conda لـ Python.

في حالة Node، يُعدّ استخدام NVM (مدير إصدارات Node) الحل الأمثل ، حيث يتيح لك تثبيت إصدارات متعددة والتبديل بينها ببضع أوامر. يمكنك تثبيت NVM من خادم WSL2 الخاص بك باستخدام الأمر التالي:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | zsh

بعد ذلك، قم بتثبيت Node (الإصدار المستقر الحالي أو إصدار محدد):

nvm install node
nvm install 18.17.0

إذا كنت ترغب في التحقق من أن كل شيء على ما يرام، فلديك أوامر التحقق من الإصدار المعتادة، والتي يجب أن تُرجع قيمًا صحيحة:

node --version
npm --version

مع Zsh، قد لا يتم تحميل NVM تلقائيًا عند فتح الطرفية. يمكنك حل هذه المشكلة بطريقتين: إضافة المتغيرات اللازمة يدويًا إلى ~/.zshrc أو باستخدام الملحق zsh-nvm من موقع Oh My Zsh. قد يبدو الإصدار اليدوي كالتالي:

export NVM_DIR=~/.nvm
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

إذا اخترت الملحق، فافتحه ~/.zshrcحدد موقع سطر الإضافات (على سبيل المثال plugins=(git)) ويضيف zsh-nvm أضفه إلى القائمة. بعد الحفظ وإعادة تشغيل الطرفية، يجب أن يتم تحميل NVM بدون أي مشكلة.

بالنسبة للغة بايثون، يُعدّ Conda (أو Miniconda) خيارًا قويًا للغاية ، إذ يُتيح لك إنشاء بيئات معزولة، وإدارة التبعيات، والتعامل مع إصدارات بايثون دون الحاجة إلى التفاعل مع النظام الرئيسي. توجد برامج نصية مؤتمتة تقوم، ضمن مستودع تكوين WSL، بتثبيت Conda وبرامج تشغيل وحدة معالجة الرسومات (GPU) ومكونات أخرى بسلاسة تامة.

أتمتة عملية التهيئة باستخدام البرامج النصية وملفات الإعدادات وحاويات التطوير

لقد رأينا حتى الآن كيفية ضبط كل شيء يدويًا، لكن مفتاح بيئة عمل جيدة، خاصةً في فرق العمل، هو أتمتة عملية الإعداد والتحكم في إصدارات الإعدادات . يُعدّ WSL2 مثاليًا لهذا الغرض لأنه يسمح لك بتجميع كل شيء بدءًا من التثبيت وحتى تخصيص واجهة المستخدم.

يتمثل أحد الأساليب الشائعة جدًا في وجود برنامج Bootstrap (على سبيل المثال install.sh o setup.sh) في مستودع الفريق الذي يقوم، بالتتابع، بمهام مثل:

  • تحقق من المتطلبات الأساسية (إصدار ويندوز، و WSL2 النشط، ووجود Docker Desktop إذا لزم الأمر، إلخ).
  • قم بتثبيت أو تحديث توزيعة WSLالحزم الأساسية، Zsh، Oh My Zsh، NVM، Conda، إلخ.
  • استنسخ الملفات المخفية وقم بتطبيقها (.zshrc, .bashrc, .gitconfigملفات السمات، والأسماء المستعارة المشتركة...).
  • قم بتثبيت أدوات حزمة المشروع (Node، Python، قواعد البيانات، واجهات سطر الأوامر المحددة).
  • قم بتكوين نصوص التحقق كما make check-env للتأكد من صحة كل شيء.

يجب أن تكون هذه النصوص أيديمبوتنتأي أنه ينبغي أن يكون بالإمكان تشغيلها عدة مرات دون إحداث أي خلل، ويُنصح بتوثيق جميع متغيرات البيئة في ملف مثل .env.example بحيث يمكن لكل شخص تخصيص بيئته دون المساس بالبرنامج الرئيسي.

طبقة أخرى بالغة الأهمية هي حاويات تطوير VS Code (.devcontainerوهي عبارة عن أوصاف تعريفية للبيئة (ملف Dockerfile، وتكوين VS Code، والإضافات، والمنافذ، وما إلى ذلك) والتي تسمح لكل مشروع حاوية تطوير خاصة بهبالإضافة إلى WSL2، بفضل الإضافة عن بعد - WSLيمكنك فتح مستودع في حاوية لينكس داخل WSL والتأكد من أن الجميع لديهم نفس الإصدارات والأدوات.

بالتوازي مع ذلك، يُساعد الاحتفاظ بمستودع لملفات الإعدادات المُرقّمة (على سبيل المثال، على GitHub) في مشاركة ومزامنة إعدادات سطر الأوامر، والأسماء المستعارة، والسمات، والبرامج عبر أجهزة كمبيوتر متعددة أو حتى عبر أجهزة مختلفة تابعة للمطور نفسه. وتُستخدم أدوات مثل chezmoi أو نصوص النسخ الرمزي البسيطة على نطاق واسع لهذا الغرض.

  ميزات أمان حصرية لنظام التشغيل Windows Pro تُحدث فرقًا كبيرًا

دمج WSL2 و Zsh مع Visual Studio Code

تتحسن التجربة بشكل كبير عند دمج هذه البيئة بالكامل مع محرر نصوص خفيف الوزن ولكنه عالي الكفاءة مثل Visual Studio Code . الفكرة هي أن يعمل VS Code مباشرةً مع نظام ملفات WSL ، مما يجنب مشاكل الأداء والأذونات.

أولًا، ثبّت برنامج VS Code على نظام ويندوز من موقعه الرسمي. ثم، من داخل المحرر نفسه، افتح تبويب الإضافات (باستخدام اختصار لوحة المفاتيح Ctrl + Shift + X ) وابحث عن إضافة "Remote - WSL" وثبّتها . تتيح لك هذه الإضافة فتح المجلدات والمشاريع الموجودة على توزيعة لينكس الخاصة بك، مع تشغيل جميع العمليات المنطقية داخل نظام WSL.

بعد التثبيت، يمكنك تشغيل الأمر التالي من طرفية أوبونتو الخاصة بك:

code .

سيؤدي هذا إلى فتح VS Code، المتصل ببيئة WSL، مع إمكانية الوصول الكامل إلى الأدوات المثبتة هناك. ولإكمال التكامل المرئي، يمكنك ضبط طرفية VS Code المدمجة لاستخدام نفس خط Nerd الذي اخترته في طرفية Windows، ما يضمن مظهرًا أنيقًا للأيقونات.

{
"terminal.integrated.fontFamily": "DejaVu Sans Mono for Powerline"
}

في الملف settings.json في برنامج VS Code، يمكنك أيضًا تعيين طرفية Windows الافتراضية لتكون طرفية Ubuntu الخاصة بك في WSL، وذلك عن طريق تكوين ملف تعريف على النحو التالي:

"terminal.integrated.profiles.windows": {
"Ubuntu (WSL)": {
"path": "C:\\Windows\\System32\\wsl.exe",
"args": ["-d", "Ubuntu"]
}
},
"terminal.integrated.defaultProfile.windows": "Ubuntu (WSL)"

وبينما أنت تفعل ذلك، يمكنك اغتنام الفرصة لتفعيل التنسيق التلقائي عند الحفظ، وتلوين أزواج الأقواس ، وغيرها من التحسينات الصغيرة التي تجعل الاستخدام اليومي للمحرر أكثر متعة.

نصوص برمجية مؤتمتة ومستودعات تكوين WSL2 كاملة

بينما يمكنك بناء بنية برمجية خاصة بك، يمكنك أيضًا الاعتماد على مستودعات جاهزة تُؤتمت الكثير من العمل . تحتوي بعض هذه المستودعات على أدلة لينكس، وبرامج نصية لتثبيت أدوات طرفية (مثل Oh My Zsh، والإضافات، والقوالب)، وConda، وبرامج تشغيل وحدات معالجة الرسومات، ومكونات أساسية أخرى لبيئة علوم البيانات أو تطوير الويب.

الفكرة وراء هذه المستودعات واضحة: باستخدام أمر واحد، يمكنك تشغيل برنامج نصي Bash يقوم بتحديث التوزيعة، وتثبيت curl و Node.js عند الضرورة، والاهتمام بـ NVM، وتنزيل الخطوط مثل Nerd Fonts، وتكوين Zsh مع سمة ومجموعة معقولة من المكونات الإضافية والأسماء المستعارة، ويترك جهازك الطرفي جاهزًا للاستخدام.

أثناء تنفيذ هذه البرامج النصية، ستلاحظ أنه سيتم سؤالك في عدة نقاط. كلمة مرور المسؤول الخاصة بك بسبب استخدام sudoهذا أمر طبيعي تماماً، حيث يتم تثبيت الحزم، وتعديل مسارات النظام، ونسخ الملفات إلى مواقع محمية.

في بعض الحالات، سيطلبون منك أن اختر الإصدار المحدد من الأدوات مثل BAT أو LSD (على سبيل المثال bat_0.25.0_amd64.deb o lsd_1.1.5_amd64.debيعتمد ذلك على كل من الإصدار المتاح على GitHub وعلى بنية جهازك (الأمر المعتاد هذه الأيام هو amd64تأكد من اختيار الحزمة الصحيحة لتجنب أخطاء عدم التوافق.

ينتج عن هذا النوع من البرامج النصية بيئة يكون فيها يحتوي Zsh بالفعل على ملف .zshrc كاملة جدامع سمة مميزة، وإضافات، واختصارات لأوامر cat/ls، وتكامل Gitmoji لإضافة أيقونات عند الحاجة، وتمييز بناء الجملة، وإكمال تلقائي لـ Oh My Zsh، وغيرها من الميزات الرائعة. يا له من برنامج طرفي سترغب في إبقائه مفتوحًا على شاشتك طوال اليوم!

ولإتمام عملية التخصيص، يمكنك حتى اضبط السمات لعرض اسم المستخدم فقط (وإخفاء اسم المضيف) تعديل ملفات سمات محددة بشكل مباشر، مثل agnoster.zsh-theme في الطريق ~/.oh-my-zsh/themes، وتغيير السطر المقابل إلى شيء كهذا:

prompt_segment green black "%(!.%{%F{yellow}%}.)%n"

مع كل هذا، ما تحققه هو أن أي مطور في الفريق يمكنه استنساخ مستودع التكوين، وتشغيل أمر ما، والحصول في غضون دقائق قليلة على نفس البيئة التي يتمتع بها أي شخص آخر: نفس الصدفة، ونفس المظهر، ونفس إصدارات الأدوات الأساسية، ونفس سلوك المحطة الطرفية، دون الحاجة إلى عبارات مثل "إنه يعمل على جهاز الكمبيوتر الخاص بي" أو "لا أتذكر ما قمت بتثبيته في ذلك اليوم".

في النهاية، يتطلب إعداد بيئة WSL2 وZsh وأتمتتها دمج عدة عناصر: نظام لينكس أساسي ضمن ويندوز، طرفية مُهيأة جيدًا مثل Windows Terminal، واجهة سطر أوامر مُحسّنة باستخدام Oh My Zsh وملحقاتها، أدوات حديثة مثل BAT وLSD وFZF، نظام تحكم في الإصدارات باستخدام NVM أو Conda، التكامل مع VS Code عبر Remote-WSL، بالإضافة إلى نصوص برمجية وملفات إعدادات تسمح لك بتكرار كل ذلك بكفاءة. إذا خصصت بعض الوقت لضبطها بدقة، ستحصل على بيئة برمجية تُمكّنك من الانتقال من الصفر إلى البرمجة بسهولة في دقائق معدودة بدلًا من قضاء ساعات طويلة في إعادة تثبيت البرامج يدويًا.