- WSL2 מאפשר לך להשתמש במערכת לינוקס שלמה בתוך Windows ולשלב אותה עם Zsh כדי ליצור טרמינל עוצמתי ומודרני.
- Windows Terminal, Nerd Fonts ו-Oh My Zsh משפרים את החוויה החזותית והפונקציונלית בעזרת ערכות נושא מותאמות אישית, סמלים, תוספים וכינויים.
- סקריפטי Bootstrap, dotfiles ו-Dev Containers מאפשרים אוטומציה וגירסה קלים של הסביבה עבור צוות פיתוח שלם.
- שילוב עם VS Code וכלים כגון NVM, Conda, BAT, LSD או FZF יוצר זרימת עבודה יציבה וניתנת לשחזור.
אם תתפתח ב האם אתם משתמשים ב-Node.js או ב-Python ב-Windows ורוצים את הנוחות של לינוקס? בלי לוותר על המשחקים, הכלים הרגילים או תהליך העבודה שלכם, WSL2 ו-Zsh הם כנראה השילוב שחיפשתם. הפצת לינוקס אמיתית, עם טרמינל משופר והכל אוטומטי לחלוטין, פירושה שהגדרת סביבת פיתוח כבר אינה משימה קשה של שעות של העתקת פקודות.
במדריך זה תראו, בתשומת לב רבה ובפירוט רב, כיצד להפוך סביבת WSL2 לאוטומטית לחלוטין בעזרת Zsh ו-Oh My Zshכיצד לשלב זאת עם Windows Terminal ו-Visual Studio Code, וכיצד לארוז זאת לתוך סקריפטים וקבצי דוט (dotfiles) כדי שאתם (או כל אחד בצוות שלכם) תוכלו לשכפל את אותה הגדרה תוך דקות. הרעיון הוא שתבזבזו פחות זמן בהתמודדות עם תצורה ויותר זמן בקידוד כאוות נפשכם.
מה זה WSL2 ולמה כדאי להשתמש בו עם Zsh?
WSL (מערכת משנה של Windows עבור לינוקס) היא השכבה המאפשרת ללינוקס לפעול בתוך Windows ללא מכונות וירטואליות כבדות משקל או אתחול כפול. עם WSL2, מיקרוסופט לוקחת את זה צעד קדימה: היא מפעילה ליבת לינוקס מלאה באמצעות Hyper-V, עם צריכת משאבים נמוכה מאוד וביצועים הדומים מאוד להתקנה מקורית.
בזכות זה אתה יכול התקנת הפצות כגון אובונטו, דביאן, קאלי או אלפין ישירות מחנות מיקרוסופט או באמצעות פקודות PowerShell, ותיהנו ממערכת קבצים של לינוקס, חבילות apt, כלי פיתוח וכמובן, מעטפות מתקדמות כמו ZSH עם אוי זש שלי והתוספים שלו.
במשך שנים רבות, תכנות מ-Windows לא היה אטרקטיביבלי bash, עם מערכת קבצים מסורבלת ופחות כלי פיתוח מקוריים, רוב האנשים בסופו של דבר עברו ללינוקס או macOS. עם WSL2, זה משתנה באופן קיצוני: אתה נשאר על Windows, אבל אתה עובד כאילו אתה בהפצת לינוקס, עם אפשרות לאוטומציה של כמעט כל תהליך התצורה.
היופי בשילוב WSL2 עם Zsh הוא ש Zsh מציע חוויית טרמינל טובה בהרבה מה-bash הקלאסי.השלמה אוטומטית מתקדמת, הצעות, ערכות נושא, שילוב Git, תוספי NVM, כינויים, הדגשת תחביר ועוד הרבה יותר, שברגע שמנסים אותם, קשה להשאיר מאחור.
התקנה והכנה של WSL2 ב-Windows 10 או 11
לפני שנתעמק בכוונון עדין של אוטומציה, אתה צריך להפעיל את WSL2 ולהתקין הפצת לינוקס.התהליך כיום פשוט הרבה יותר מאשר בגרסאות המוקדמות, וניתן לעשות כמעט הכל באמצעות פקודה אחת.
En גרסה עדכנית של Windows 10 (גרסה 2004 ומעלה) או Windows 11פשוט פתחו את PowerShell כמנהל (חפשו אותו בתפריט התחל, לחצו לחיצה ימנית, "הפעל כמנהל") והפעילו:
wsl --install
פקודה זו אחראית על הפעל את התכונות האופציונליות הנדרשות, הורידו את ליבת לינוקס, להקים WSL2 כגרסת ברירת המחדל ולהתקין כברירת מחדל אובונטו כהפצה. לאחר השלמת התהליך, המערכת תבקש ממך להפעיל מחדש את המחשב כדי להחיל את השינויים.
אם אתם מעדיפים הפצה אחרת, תוכלו לציין אותה בפקודה עצמה, לדוגמה כדי להתקין את דביאן:
wsl --install -d Debian
בכל זמן שאתה יכול בדוק את מצב ההפצות המותקנות והגרסאות שלהן עם:
wsl -l -v
ואם אתם רוצים להחליף הפצה או לנקות הפצה שאתם כבר לא משתמשים בה, יש לכם אפשרויות כמו רשימת ההפצות הזמינות באינטרנט או להסיר התקנה ספציפית:
wsl -l -o
wsl --unregister Ubuntu-20.04
כשתפעילו לראשונה את ההפצה, יופיע אשף מבוסס טקסט שיבקש מכם לעשות זאת צור משתמש יוניקס וסיסמה שלוזה יהיה המשתמש העיקרי שלך בתוך WSL, כאשר ה-HOME הטיפוסי שלו הוא /home/tuusuarioוחשוב שתרשמו את שם המשתמש והסיסמה שלכם, כי תשתמשו בהם למשימות אדמיניסטרטיביות. sudo.
הגדרת מסוף Windows לעבודה עם WSL2
לאחר ש-WSL2 מותקן ופועל, הצעד ההגיוני הבא הוא שיפור חוויית שורת הפקודה ב-Windows באמצעות מסוף Windowsיישום זה תומך בכרטיסיות, פאנלים, ערכות נושא, שקיפויות, פרופילים לפי הפצה, גופנים עם סמלים ועוד.
התקן את מסוף Windows מה- חנות Microsoft וכאשר תפתחו אותו, תראו שהוא בדרך כלל מציג פרופיל PowerShell או CMD כברירת מחדל. מחץ התפריט הנפתח של הכרטיסייה, תוכלו לבחור את הפצת ה-WSL שלכם (Ubuntu, Debian וכו') ולפתוח אותה בכרטיסייה חדשה.
עבור אובונטו או כל הפצה אחרת שבה אתם משתמשים ב-WSL תמיד תיפתח כברירת מחדל.ניתן לערוך את ההגדרות. מסוף Windows שומר את ההגדרות שלו בקובץ JSON, הנגיש מתפריט ההגדרות. אתר את השדה "defaultProfile" ולשים את GUID של פרופיל אובונטו (תראו את זה ברשימה) profiles) כערך.
בנוסף לכך, אתם יכולים התאמה אישית של ערכות צבעים והוספת שקיפות אקרילית כדי לתת לזה מגע מודרני יותר. לדוגמה, בחלק של "defaults" עבור הפרופילים, ניתן להגדיר משהו כזה:
"defaults": {
"useAcrylic": true,
"acrylicOpacity": 0.4
}
אם תרצו לקחת את הדברים צעד קדימה עם הצבעים, תוכלו להוסיף תוכנית מותאמת אישית בקטע "schemes" מה-JSON, המגדיר צבעי רקע, צבעי חזית ופלטת הטרמינל הבסיסית. דוגמה אופיינית תהיה משהו כמו ערכת נושא סולרית, שאליה ניתן לשייך פרופיל WSL באמצעות המאפיין "colorScheme" : "wsl" בפרופיל המתאים.
התקנה ואוטומציה של Zsh + Oh My Zsh ב-WSL2
כעת, לאחר שבסיס ה-WSL ובסיס הטרמינל של Windows מוכנים, הגיע הזמן להוסיף קצת בשר לקליפה. Zsh היא אלטרנטיבה הרבה יותר חזקה ל-bashובשילוב עם אוי זש שלי זה הופך להיות אולר שוויצרי לעבודה עם גיט, נוד, פייתון וכמעט כל דבר בטרמינל.
בהפצת ה-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
לאחר שתסיים, ייווצר קובץ תצורה בתיקיית HOME שלך בשם ~/.zshrcשבו הכל נשלט: תוספים, ערכת נושא, כינויים, סביבה, נתיבים...
נושא פופולרי מאוד עבור Oh My Zsh הוא אגנוסטר, המתמקד בהצגת מידע גיט בצורה ברורה. כדי להפעיל אותו, ערוך את הקובץ ~/.zshrc עם העורך המועדף עליך (לדוגמה vi ~/.zshrc o nano ~/.zshrc) וודאו ששורת הנושא נראית כך:
ZSH_THEME="agnoster"
מומלץ גם, גם ב-bash וגם ב-Zsh, לאלץ את המעטפת להתחיל בספריית ה-HOME של לינוקס (לא בתיקיית המשתמש של Windows), מכיוון ש-WSL עובד הרבה יותר טוב בתוך מערכת הקבצים המקורית של ההפצה. פשוט הוסיפו את הדברים הבאים לסוף ~/.zshrc שורה פשוטה:
cd ~
גופני Nerd ו-Powerline: אייקונים ואסתטיקה בטרמינל
כדי שהשירים של Zsh ו-Oh My Zsh ייראו כמתוכנן, אתה צריך גופן שתומך בסמלים ובסמלים מיוחדים. (אלה נקראים גופני Nerd או גופני Powerline). אם לא תעשו זאת, תראו ריבועים מוזרים או תווים שבורים בהנחיות מתקדמות יותר.
יש לך שתי אפשרויות פופולריות: להתקין חבילת ספק כוח Powerline קלאסית או לבחור גופן חנון ספציפי כמו MesloLGS NF o גופן Hack Nerdשיטה מהירה היא לשכפל את מאגר הגופנים של Powerline מ-PowerShell ב-Windows, תחילה ניווט לתיקייה ריקה:
git clone https://github.com/powerline/fonts.git
cd fonts
.\install.ps1
סקריפט ההתקנה יוסיף אוטומטית מספר גופנים למערכת. לאחר מכן, מהגדרות הטרמינל של Windows, בחר אחד מהגופנים המותקנים עבור פרופיל WSL, לדוגמה:
"fontFace": "DejaVu Sans Mono for Powerline"
אם אתם מעדיפים משהו אפילו יותר מודרני, תוכלו להוריד גופן Nerd ספציפי (כמו MesloLGS NF Regular.ttf) מאתר האינטרנט של Nerd Fonts, התקן אותו ב-Windows על ידי לחיצה כפולה ובחירה באפשרות "התקן", ולאחר מכן בחר אותו כגופן בפרופיל Windows Terminal.
במקרה של שימוש בערכות נושא מתקדמות כגון רמת הספק 10kמומלץ מאוד להשתמש בגופני Nerd. כדי להתקין ערכת נושא זו, ניתן לבצע את הפעולות הבאות בחשבון המשתמש שלך ב-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 עם כל ההגדרות.
תוספים שימושיים עבור Zsh: פרודוקטיביות מיידית
אחד היתרונות הגדולים של Oh My Zsh הוא ש זה מאפשר לך להוסיף תוספים בקלות רבה. כדי לשפר את חוויית העבודה. כמה מהסביבות הנפוצות ביותר בסביבות פיתוח WSL2 הן הבאות.
התוסף סילון הוא מופעל כברירת מחדל ואחראי על הצגת באיזה ענף אתה נמצא, אם יש לך שינויים ממתינים, אם יש שינויים שלא בוצעו?...הכל ישירות בשורת הפקודה. זה מושלם למעקב אחר סטטוס המאגר שלך בזמן הגלישה.
עוד קלאסיקה היא zsh-הצעות אוטומטיות, אשר מציע פקודות באפור בהתבסס על ההיסטוריה שלך, כך שתוכל לקבל את ההצעה בלחיצת מקש ו הימנעו מכתיבה של אותם צירופים ארוכים שוב ושוב. להתקנתו:
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
מומלץ מאוד הדגשת תחביר zshאשר צובע את הפקודות בהתאם לשאלה האם הן מאויתות נכון, האם הקבצים שאליהם אתה מצביע קיימים וכו', ועוזר לך לזהות שגיאות תחביר לפני לחיצה על 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" לפני הפקודה האחרונה זה רץ. אתה יכול להוריד את זה ככה:
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 ידידותיים למשתמש.
לבת זוהי גרסה "מקצועית" של cat, עם הדגשת תחביר, מספור, אינטגרציה עם גיט...אידיאלי לקריאת קבצי קוד ישירות בטרמינל. ניתן להתקין אותו על ידי הורדת החבילה המתאימה מ-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.
לבסוף, אם אתם עובדים עם ממשקי API, 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 (מנהל גרסאות צומת)מה שמאפשר לך להתקין מספר גרסאות ולעבור ביניהן באמצעות מספר פקודות. מה-WSL2 שלך, תוכל להתקין את NVM באמצעות:
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 אמור להיטען ללא בעיה.
עבור פייתון, אפשרות חזקה מאוד היא קונדה (או מיניקונדה), המאפשרת צור סביבות מבודדות, נהל תלויות וטפל בגרסאות Python מבלי להתעסק עם המערכת הגלובלית. ישנם סקריפטים אוטומטיים אשר, בתוך מאגר תצורות WSL, מתקינים את Conda, מנהלי התקנים של GPU ורכיבים אחרים באופן כמעט שקוף.
אוטומציה של תצורה באמצעות סקריפטים, קבצי דוט ומכולות פיתוח
עד כה ראינו כיצד להגדיר הכל "באופן ידני", אך המפתח לסביבת עבודה טובה, במיוחד בצוותים, טמון ב... אוטומציה של קליטה וגירסת תצורהWSL2 מושלם לכך משום שהוא מאפשר לך לארוז הכל, החל מהתקנה ועד להתאמה אישית של המעטפת.
גישה נפוצה מאוד היא לקיים סקריפט אתחול (למשל install.sh o setup.sh) במאגר צוותי שמבצע, ברצף, משימות כגון:
- בדוק את הדרישות המוקדמות (גרסת Windows, WSL2 פעיל, נוכחות של Docker Desktop במידת הצורך וכו').
- התקנה או עדכון של הפצת WSLחבילות בסיסיות, Zsh, Oh My Zsh, NVM, Conda וכו'.
- שכפול והחלת קבצי נקודה (
.zshrc,.bashrc,.gitconfig, קבצי ערכת נושא, כינויים משותפים...). - התקנת כלי מחסנית פרויקטים (Node, Python, מסדי נתונים, פקודות שורת פקודה ספציפיות).
- הגדרת סקריפטי אימות כמו
make check-envכדי לוודא שהכל נכון.
הסקריפטים האלה חייבים להיות אידמפוטנטכלומר, הם צריכים להיות ניתנים להרצה מספר פעמים מבלי לשבור דבר, ומומלץ לתעד את כל משתני הסביבה בקובץ כמו .env.example כך שכל אדם יוכל להתאים אישית את סביבתו מבלי לגעת בסקריפט הראשי.
שכבה נוספת ועוצמתית מאוד היא מכולות פיתוח קוד VS (.devcontainerהם מורכבים מתיאורים הצהרתיים של הסביבה (Dockerfile, תצורת VS Code, הרחבות, פורטים וכו') המאפשרים לכל פרויקט יש קונטיינר פיתוח משלובשילוב עם WSL2, הודות להרחבה מרחוק – WSLניתן לפתוח מאגר (repository) במכולה של לינוקס בתוך WSL ולוודא שלכולם יש את אותן גרסאות וכלים.
במקביל, לתחזק מאגר של קבצי דוט גרסאי (לדוגמה, ב-GitHub) מסייע בשיתוף וסנכרון של תצורות מעטפת, כינויים, ערכות נושא ותוכניות בין מחשבים מרובים או אפילו בין מכונות שונות השייכות לאותו מפתח. כלים כגון צ'זמוי או סקריפטים סמליים פשוטים משמשים לעתים קרובות לשם כך.
שילוב WSL2 ו-Zsh עם קוד Visual Studio
החוויה משתפרת משמעותית אם משלבים את כל הסביבה הזו עם עורך קל משקל אך בעל יכולות גבוהות כמו... קוד Visual Studio. הרעיון הוא זה קוד VS פועל ישירות מול מערכת הקבצים WSLהימנעות מבעיות ביצועים והרשאות.
ראשית, התקינו את VS Code על Windows מהאתר הרשמי שלה. לאחר מכן, מתוך העורך עצמו, פתחו את לשונית הרחבות (קיצור דרך) Ctrl+Shift+X) ולחפש ולהתקין את ההרחבה "מרחוק – 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, דרייברים של GPU ורכיבים חיוניים אחרים של סביבת מדעי נתונים או פיתוח אתרים.
הרעיון מאחורי מאגרים אלה ברור: פקודה אחת מבצעת סקריפט 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, טרמינל מוגדר היטב כמו Windows Terminal, מעטפת משופרת עם Oh My Zsh והתוספים שלו, כלים מודרניים כמו BAT, LSD או FZF, בקרת גרסאות עם NVM או Conda, אינטגרציה עם VS Code דרך Remote-WSL, וסקריפטים וקבצי dotfile המאפשרים לך לשכפל את כל זה בצורה אמינה. אם תקדיש זמן לכוונון עדין, תהיה לך מערכת אקולוגית שבה מעבר מאפס לתכנות נוח לוקח דקות במקום אחר צהריים שלמים של התקנה מחדש ידנית של דברים.
תוכן עניינים
- מה זה WSL2 ולמה כדאי להשתמש בו עם Zsh?
- התקנה והכנה של WSL2 ב-Windows 10 או 11
- הגדרת מסוף Windows לעבודה עם WSL2
- התקנה ואוטומציה של Zsh + Oh My Zsh ב-WSL2
- גופני Nerd ו-Powerline: אייקונים ואסתטיקה בטרמינל
- תוספים שימושיים עבור Zsh: פרודוקטיביות מיידית
- כלי שורת פקודה משופרים (BAT, LSD, FZF, HTTPie)
- Node.js, NVM, Python וכלים נוספים ב-WSL2
- אוטומציה של תצורה באמצעות סקריפטים, קבצי דוט ומכולות פיתוח
- שילוב WSL2 ו-Zsh עם קוד Visual Studio
- סקריפטים אוטומטיים ומאגרי תצורה מלאים של WSL2



