גלה את העוצמה של Bash ב- Windows

מיקרוסופט חלונות עשויה להיות השחקן הדומיננטי בשולחן העבודה, אך שוק תוכנת הקוד הפתוח הגדל במהירות - במיוחד עבור כלי אדמיניסטרציה וכלי התפתחות - מעדיף בבירור את לינוקס. שלא לדבר על שוק המובייל, בו אנדרואיד משתמשת בגרסאות לינוקס. אם אתה מפתח ב- Windows, תוף התיפוף ליכולות הינוקס לינוקס ממשיך להתחזק.

במהלך השנים, מיקרוסופט הציגה דרכים לעקיפת הבעיה שונות לשימוש ביכולות לינוקס ב- Windows, כמו PowerShell עם SSH ו- Cygwin ו- MSYS. הפעלת לינוקס בתוך מכונה וירטואלית היא אפשרות נוספת. אך מחשבי VM צורכים כמות משמעותית של משאבים ואינם מספקים חווית לינוקס ממדרגה ראשונה, מכיוון שלא ניתן לערוך קבצים מקומיים או לקבל גישה מלאה לכוננים מקומיים, למשל.

מכיוון שעולם ה- IT פונה לעבר לינוקס עבור פרויקטים רבים, מיקרוסופט הגישה הצעה חדשה שתשתמש בשוק ההולך וגדל. Bash ב- Windows היא התשובה. כאן אנו מדריכים אותך בהתקנת Bash ב- Windows ונותנים לך טעימה ממה שאתה יכול לעשות - ולמה אתה עושה זאת - בשורת הפקודה של לינוקס.

סקירה כללית של Bash ב- Windows

Bash ב- Windows היא תכונה חדשה שנוספה ל- Windows 10. מיקרוסופט התחברה עם Canonical, המכונה גם היוצרת של אובונטו לינוקס, כדי לבנות תשתית חדשה זו בתוך Windows הנקראת מערכת המשנה של Windows עבור Linux (WSL). זה מאפשר למפתחים לגשת לסט שלם של אובונטו CLI וכלים. עם חווית לינוקס מקומית, מפתחים יכולים להריץ פקודות לינוקס ב- Windows, כולל גישה לקבצים וכוננים מקומיים. מכיוון ש- Linux משולבת באופן מקורי ב- Windows, מפתחים מקבלים את הגמישות לעבוד על אותו הקובץ ב- Linux ו- Windows. במילים פשוטות, Bash ב- Windows מביא את משתמש המשתמש של אובונטו לחלונות פחות ליבת לינוקס.

באש מול פאוורשל

למיקרוסופט כבר יש מעטפת פקודה ב- PowerShell. אז במה Bash ב- Windows שונה? PowerShell היא מסגרת ניהול התצורה של מיקרוסופט למיכון משימות. הוא משמש לניהול Windows בעזרת ארכיטקטורת ה- API המכוונת שלו. לעומת זאת, Bash מסתמך בעיקר על קבצי טקסט לצורך אוטומציה ופיתוח. השניים נבדלים הן במיקוד והן בעיצוב. לדוגמה, כאשר אתה מפרט קבצים בספריה באמצעות lsהפקודה, PowerShell מציג את הפלט כאובייקטים של קבצים, ואילו Bash ב- Windows מציג את הפלט כקבוצה של מחרוזות. למרבה המזל, עבור מנהלי חלונות, אתה יכול לעבוד עם שני הפתרונות זה לצד זה ולקבל את המיטב משני העולמות.

מילה אחת של אזהרה: ל- PowerShell יש כינויים שמאפשרים לך לחשוב שאתה מפעיל פקודות Bash מסורתיות כאשר למעשה אתה מריץ cmdlets של PowerShell. זה עשוי להכשיל אנשים מסוימים. למשל, lsהוא כינוי Get-ChildItemלפקודה. באופן דומה, pwdהוא כינוי Get-Locationוהוא cdכינוי עבור Set-Location. לרשימת כל הכינויים ב- PowerShell, השתמש ב- Get-Aliascmdlet.

Bash ב- Windows מספק יתרונות מרובים למפתחי קוד פתוח. בכך שהוא מביא יכולות לינוקס מקומיות ל- Windows, Bash ב- Windows מבטל את הצורך בהפעלת אתחול כפול עם אובונטו לצורך גישה ליכולות לינוקס. אתה לא צריך ללכת על Mac OS X, להפעיל מכונה וירטואלית או ליצור דרכים לעקיפת הבעיה באמצעות Cygwin. זה נותן את ערכת הכלים הנדרשת לכתוב ולבנות קוד עבור התרחישים והפלטפורמות שלך. על ידי גישה למערכת הקבצים של Windows מ- Bash, אתה יכול לעבוד על אותם קבצים באמצעות Windows או ה- CLI של לינוקס.

איך מיקרוסופט העבירה את Bash ל- Windows?

בכנס Build באפריל 2016 הכריזה מיקרוסופט על מערכת המשנה של Windows עבור Linux (WSL) להפתעת רבים. נולד משותפות עם Canonical, Bash ב- Windows נשלח לראשונה עם עדכון יום השנה של Windows 10. זה מגיע בשני חלקים: תת מערכת הליבה וחבילה. תת-מערכת הליבה היא כבר חלק מ- Windows 10 Insider Builds ומציעה את ממשק ה- API של לינוקס ב- Windows, מה שאומר שתוכלו לטעון באופן טבעי ספריות והפעלות לינוקס. Canonical מספקת את חבילת התוכנה כאופציה. חבילת תוכנה זו מציעה כלי Bash ו- CLI הנדרשים לסביבת לינוקס.

מתקין את Bash

כדי להריץ את Bash ב- Windows, המערכת שלך חייבת להריץ את עדכון יום השנה x64 של Windows 10 Build 14393 ואילך. אתה מגלה את המבנה על ידי הקלדה winverבתיבת הפקודה.

אם גרסת ה- build נמוכה מ- 14393, לא תוכל להתקין את Bash.

כדי להפעיל את Bash במבנה נתמך, תחילה עליך להפעיל את מצב מפתח. לשם כך, עבור אל הגדרות, לחץ על למפתחים ובחר בלחצן הבחירה מצב מפתח. לאחר שתסיים זאת, תתבקש לאשר.

לאחר שנעשה זאת, יש להפעיל את תכונת המשנה של Windows עבור Linux. הדרך הקלה ביותר לעשות זאת היא באמצעות cmdlet PowerShell:

אפשר-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

כדי לפתוח את Bash ב- Windows, פתח את שורת הפקודה, הקלד bashוקבל את הסכם הרישיון. כאשר Bash מתקין, הוא מבצע כמה שינויים במערכת שלך:

  • מורדת תמונת מצב משתמש של אובונטו.
  • נוצרת תיקיה מוסתרת שנמצאת ב %localappdata%\lxss\ .
  • קיצור דרך ממוקם על שולחן העבודה.

כדי להפעיל את Bash, כעת תוכל לעבור לשורת הפקודה או להשתמש בסמל קיצור הדרך בשולחן העבודה.

לאחר ההתקנה המוצלחת של Bash, המערכת תבקש ממך ליצור שם משתמש וסיסמה של Unix. שם משתמש וסיסמה זה מיועד ל- Bash ואינם קשורים בשום צורה לסביבת Windows שלך.

תחילת העבודה עם פקודות

ברגע שב- Bash יש לך כמה פקודות זמינות לניהול WSL ותמונת אובונטו.

  • lxrun: לניהול מופע WSL
  • lxrun/install: כדי להתחיל בהליך ההורדה וההתקנה
  • lxrun/uninstall: כדי להסיר את התמונה של אובונטו
  • lxrun/update: לעדכון אינדקס החבילות WSL
  • lxrun/setdefaultuser: להגדרת ברירת המחדל של Bash למשתמש אובונטו

Bash ב- Windows גם מאפשר כמובן להפעיל פקודות Bash "מסורתיות" רבות. לדוגמה:

  • grep: כדי למצוא קווים התואמים לתבנית
  • sed: להחליף מחרוזת
  • echo: להפקת הערך למסך
  • var=2: כדי ליצור משתנה עבור $var
  • =!=: להשוות קטעי טקסט קטנים

פקודות ניווט

לניווט, אתה יכול גם להשתמש בפקודת Windows DOS cdכדי לנווט במבנה התיקיה.

  • cd temp: משנה את ספריית העבודה לתיקיה בשם temp
  • cd\: לוקח אותך לספריית הבסיס. מכיוון שלאובונטו אין אותיות כונן כמו Windows, ספריית השורש תהיה הספרייה ברמה העליונה.
  • cd..: לוקח את ההנחיה ברמה אחת כלפי מעלה (כלומר לספריית האב)
  • cd~: לוקח אותך לספריית הבית

עם זאת, cdב- PowerShell שונה במקצת ב- Bash באובונטו. בסביבת WSL, כונני Windows שלך מאוחסנים /mntבתיקיה, ושם הכונן משמש כתיקיית המשנה. כאשר אתה משתמש cdבפקודה, עליך לשנות את הנתיב בהתאם.

הצג פקודות

כדי לבדוק את הנתיב והתוכן של ספריה, להלן מספר דוגמאות:

  • pwd: מדפיס את הנתיב או את הספריה שאתה נמצא למסך
  • ls: מציג את הקבצים בספריה

פקודות עזרה

אם ברצונך להבין את הפונקציונליות של הפרמטרים הקשורים לכל פקודה, manניתן להשתמש בפקודה.

הקלד man וזה יציג את התקציר של מה הפקודה נועדה ואת הפרמטרים המשויכים. זה דומה helpלפקודת PowerShell .

עריכת פקודות

אחד היתרונות של Bash הוא שאתה עובד עם טקסט רגיל. זה אומר שאתה לא צריך להתעסק עם הגדרות הרישום או התוכנית. בין אם ברצונך לשנות את רצף האתחול או את תצורת שרת האינטרנט, פשוט ערוך את קובץ הטקסט המתאים. כדי לבצע ביעילות משימות עריכה, אתה זקוק לעורך טקסט טוב. Bash מציעים עורכים רבי עוצמה כדי להקל על עבודתך. כמה דוגמאות טובות לעורכי טקסט הזמינים בתוך Bash הן nanoו vi.

ניהול חבילות בבש

מכיוון שאתה בעצם מריץ את לינוקס, כעת יש לך פקודות לניהול חבילות בצורה של apt-get. כמה דוגמאות:

  • sudo apt-get update: מרענן את רשימת המאגרים שאפשר להפיק מהם
  • sudo apt-get upgrade: משדרג את כל התוכנות לגרסה האחרונה
  • apt-cache search app_name: מחפש במאגר אפליקציה מסוימת
  • sudo apt-get install apt-name: מוריד ומתקין את האפליקציה המסוימת

sudoמוגדר מראש לכל הפקודות כדי לאפשר לך להפעיל פקודה תחת משתמש אחר, המשתמש העל (או מנהל המערכת) כברירת מחדל. זה דומה לטכניקת "הפעל כמנהל" ב- Windows.

פקודות רשת

כדי להוריד קבצים באמצעות HTTP משרת או מכתובת אתר, כעת תוכל להשתמש curlבפקודה. פקודה זו דומה ל- Invoke-WebRequestcmdlet של PowerShell .

באופן דומה, תוכלו להתחבר למחשב לינוקס מרוחק אחר ולהריץ עליו פקודות. מכיוון שאנחנו עכשיו בלינוקס, סוף סוף יש לנו לקוח SSH אמיתי לעבוד איתו. במקום להשתמש ב- Cygwin או בטא הנוכחית של יישום OpenSSH עבור Windows, כעת אנו יכולים להפעיל SSH באופן מקורי באמצעות sshהפקודה:

שם משתמש ssh @ abc.com

בזמן שאנחנו בנושא OpenSSH, יש לנו כעת את היכולת המקורית להעתיק קבצים בצורה מאובטחת באמצעות SCP באמצעות scpהפקודה המובנית גם כן:

scp localfile [email protected]: remotedirectory / remotefile

עם Bash ב- Windows, עכשיו יש לך הרבה תכונות אחרות בהישג ידך:

  • כלים כמו Git, Python ו- Ruby ישירות ב- Windows
  • עורכי שורת פקודה כגון emacs ו- vi
  • גישה למערכת הקבצים של Windows מסביבת Bash
  • תמיכת משתמשים בלינוקס
  • תמיכה ב- Symlink
  • הרכבה באחסון באמצעות /mnt

מהם מקרי שימוש נפוצים עבור Bash ב- Windows?

נכון לעכשיו, מפתחים רבים משתמשים בכלי Windows ו- Linux, מה שאומר שהם צריכים לבצע אתחול כפול או להריץ לינוקס בתוך מכונה וירטואלית כדי לקבל את יכולות ה- CLI. כאשר הם יכולים להפעיל כלים אלה ב- Windows, אז Windows הופך לשולחן העבודה הראשי שלהם. במקרה זה, הם לא צריכים להעביר אפליקציות ושירותים של לינוקס למערכות Windows. בעוד שאנשים מסוימים הצליחו להריץ אפליקציות לינוקס GUI בתוך Windows, אנשים רבים מקבלים CLI לינוקס שימושי לביצוע משימות פשוטות מבלי לרכוש מכונת לינוקס ייעודית מתכלת או לעבור למכשיר מק למטרות פשוטות. מכיוון שסקריפטים קל ב- Bash, באפשרותך לבצע אוטומציה של משימות פיתוח כגון גיבוי אתרים ב- Apache.

לדוגמה, מפתחים רבים משתמשים ב- GitHub למשימות בקרת גרסאות. כדי לגשת ל- GitHub ב- Windows, עליך להתקין את GitHub עבור Windows, ואז להשתמש בפקודות דחיפה ודחיפה כדי לבצע שינויים. לחלופין, עליכם להוריד את כלי השירות Git, שהוא תהליך מייגע. עם Bash ב- Windows העבודה שלך הופכת לפשוטה:

apt-get להתקין git

git commit

דחיפת גיט

כמו כן, תחת Bash, אינך זקוק לכלים של צד שלישי כדי לעבוד עם סוגי קבצים לינוקס מסורתיים כמו GZIPed tarballs (קבצי tar.gz).

מה החסרונות בשימוש ב- Bash ב- Windows?

Bash ב- Windows עדיין בגרסת בטא ומכיל כמה קצוות מחוספסים. מיקרוסופט אומרת ש- Bash ב- Windows לא יכול לבצע באופן מושלם את כל התסריטים שלך בשלב זה. עם זאת, מיקרוסופט עוקבת בקפדנות אחר הביצועים והמשוב, והיא מבצעת באופן יזום שינויים בפתרון זה.

שנית, Bash on Windows נוצר עבור קהילת הפיתוח. הוא לא תוכנן לניהול סביבות Windows. למרות שאתה יכול לעשות דברים כמו להפעיל שדים שרתים ב- WSL, זה לא מציע את היכולות המלאות של מכונה וירטואלית מלאה של לינוקס. אם בכוונתך להריץ תהליכי שרתים בעומסי ייצור באובונטו, עליך לבדוק חלופות אחרות להפעלת מערכת הפעלה לינוקס מלאה.

לבסוף, Bash ב- Windows מביא את יכולות הלינוקס ל- Windows. עם זאת, כלי לינוקס לא יוכלו לתקשר עם הכלים והיישומים של Windows. פירוש הדבר שאין יכולות חוצות פלטפורמות בשל הבדלי האדריכלות הטבועים בהם.

Bash ב- Windows עדיין בשלב המתהווה שלה. אף על פי שקיימות מגבלות מסוימות לפתרון זה, מיקרוסופט עובדת בקפידה על הוספת יכולות נוספות כדי למחוק את ההבדלים ולהפוך את Windows לפלטפורמה מספר 1 לכל סוג של פרויקט פיתוח. עקוב אחר פרויקט זה ממיקרוסופט. עם עמדתה החדשה של מיקרוסופט בעולם הקוד הפתוח, היא בטח תהפוך את Bash לאזרח ממדרגה ראשונה ב- Windows ככל שמתקדם הזמן.

מאמרים קשורים

  • המדריך החיוני ל- PowerShell עבור Windows, Windows Server ו- Exchange
  • 10 סקריפטים חיוניים של PowerShell למנהלי חלונות
  • הכל על ספקי ומודולים של PowerShell
  • Go pro: המדריך למשתמש החשמלי ל- PowerShell