כלי שורת הפקודה של Windows

בתור מפתחים שמקדישים את רוב זמננו בתכנות ב-OSX וב-Linux, היינו סקרנים כיצד תיראה שורת הפקודה מודרנית ב-Windows.

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

לאחר שדיברנו על סביבת הכלים של Windows CLI, הסתמכנו על ערכת כלים שלדעתנו תקנה לנו 95% מהדרך.

בסופו של דבר, קיבלנו שילוב של:

  • PowerShell
  • ConEmu
  • PSReadLine
  • PSGet
  • שוקולד
  • בבון (אופציונלי)

בהמשך מופיעים כמה הערות נוספות לגבי התכונות של מכונות שונות.

PowerShell (מעטפת)

  • האפליקציה קרובה באופן משמעותי ל 'מעטפת' אמיתית מאשר cmd.exe, ומציעה לנו סביבת סקריפטים חזקה לאוטומציה של משימות. הגיוני להשוות אותו ל-Bash או ל-zsh.
  • השלמה אוטומטית של שמות קבצים וספריות
  • השלמה אוטומטית של שמות אפליקציות
  • כולל כינויים ופקודות משולבות (שנקראים cmdlets – למשל Select-String דומה ל-grep, Invoke-Elevated דומה ל-sudo, Sort-Object דומה ל-sort, Get-Process מפרט את כל התהליכים הפעילים). אם עוברים ממעטפת אחרת ל-PS, Set-Alias מאפשר למפות כינויים שאתם רגילים אליהם לגרסאות שווי ערך של Windows. לדוגמה: Set-Alias server python -m http.server 8000 מפעיל שרת Python כאשר נעשה שימוש בכינוי server.
  • ניתן לשמור כינויים בפרופיל PowerShell
  • תמיכה ב-piping, כמו Unix. שלא כמו Unix, היא יוצרת צינורות של אובייקטים ולא זרמי טקסט. במצב כזה צריך להתרגל, אבל נמנעת משימוש כשברצונך לשחרר נכס.
  • תמיכה במודולים. PSGet הוא מנהל חבילות של PowerShell, שמאפשר לכם להרחיב אותו בקלות.
  • אפשר גם להשתמש ב-Posh-Git, סקריפט PowerShell ל-Git כדי להשלים את יצירת הכרטיסייה לפי הקשר.

אם אתם מתעניינים בפרטי טריוויה, הנה התשובה לשאלה מדוע MS יצרה את PowerShell מהארכיטקט המוביל.

PSReadLine (עוזרים בעריכה במסוף)

  • משפר משמעותית את חוויית העריכה במסוף
  • הדגשת תחביר בכל פעם שמתחילים להקליד פקודות. מציין בבירור שגיאות תחביר עם תו '>' אדום.
  • קישורי מפתחות עם אפשרות להתאמה אישית גבוהה
  • השלמה אוטומטית בסגנון Bash
  • חיפוש היסטוריה אינטראקטיבית ב-Bash/zsh (Ctrl + R). מעבר חזק להיסטוריית פקודות. להציג בקלות פקודות מרובות שורות באמצעות מקשי החצים במקום רק את השורה האחרונה של הפקודה.
  • תמיכה מתאימה בהעתקה/הדבקה/חיתוך (Ctrl+C/X/V אמור לפעול ללא בעיה)
  • תמיכה טובה בביטול/ביצוע מחדש
  • שמירת ההיסטוריה מתבצעת באופן אוטומטי

לחלופין, תוכל להשתמש ב-Clink, הכולל קבוצת תכונות דומה אבל לא נכתבה אך ורק עבור PowerShell.

ConEmu (מארח המסוף)

  • אמולטור מסוף מתקדם שבו תוכלו להריץ את המעטפת שבחרתם.
  • תומך בפתיחת מסופים מרובים בכרטיסיות שונות. הפעלת מסופים בתור משתמשים שונים היא פעולה טריוויאלית.
  • ניתן להתאים אישית במידה רבה מאוד - ניתן לשנות כל דבר, מקיצורי דרך ועד לבחירת טקסט ועד לצבעים של שורת הסטטוס.
  • תמיכה בתצוגת מסך מפוצל
  • ניתן להריץ אפליקציות פשוטות של GUI בכרטיסיות
  • תמיכה ב-Windows 7+ Jump List
  • תמיכה בשינוי חלק של גודל החלון
  • החלקת שינשון בגופנים ב-Windows
  • ניתן להתאים אישית באופן מלא כרטיסיות פתיחה כך שיתחילו בספרייה מסוימת
  • העתקה/הדבקה חכמה

יש אנשים שעדיין נהנים להשתמש ב-Console2 ול-Sקוט הנסלמן יש פוסט בבלוג שנכתב עליו.

Cmder

כדאי לשים לב ל-Cmder – חבילת אמולציה של מסוף שמשלבת את ConEmu, Clink ו-msysgit – ומספקת לכם מסייעי Git. כברירת מחדל, Cmder מספק חוויה יפה יותר ל-ConEmu באמצעות ערכת הצבעים של Monokai.

Cmder כולל גם כמה יתרונות קטנים אחרים, כמו שילוב עם אפליקציות GUI כמו Sublime Text.

שוקולד (מנהל חבילות)

  • בעיקרון ביתי תוכנה ל-Windows, שיאפשר לך לשלוף בנוחות את אפליקציות Windows המועדפות עליך. כרגע יש כ-3,000 חבילות זמינות שניתן לעדכן באמצעות Chocolatey ישירות.
  • שונה מ-Nuget. NuGet מיועדת לספריות פיתוח. Chocolatey היא מנהלת חבילות של מכונות בינאריות, ומבוססת על התשתית של NuGet.
  • מציע גרסאות build שקטות ויעילות

מומלץ גם לקרוא על OneGet, מנהל החבילות..של Microsoft, שאמור לעבוד עם Chocolatey ב-Windows 10.

Babun (הגדרה מראש של Cygwin)

  • Cygwin (סביבת עבודה דמוית Linux עבור Windows) מינוס חלק מהגרסאות הידועות בעבר. ההתקנה הכוללת הרבה יותר ישרה בזכות מנהל ההתקנה של Babun. אם יש לך ניסיון מיוחד בשימוש ב-Unix ומעדיף להימנע מללמידה על PowerShell, מומלץ לשקול את Ccygwin/Babun.
  • כולל מנהל חבילות בשם pact (קצת דומה ל-brew) כמו apt-get. זה נהדר כי כרגע צריך להריץ מחדש את מנהל ההתקנה של Cygwin כשמוסיפים חבילות ולא רק משתמשים ב-pact.
  • Vim מותקן מראש ומוגדר מראש
  • תמיכה משולבת ב-oh-my-zsh
  • עדכונים אוטומטיים

קריאה נוספת