מה ההבדל בין Bash, Zsh, ו- Linux אחרים Shells?
רוב הפצות לינוקס לכלול את פגז bash כברירת מחדל, אבל אתה יכול גם לעבור לסביבה פגז אחר. Zsh הוא חלופה פופולרית במיוחד, ויש פגזים אחרים, כמו אפר, מקף, דגים, ו tcsh. אבל מה ההבדל, ולמה יש כל כך הרבה?
מה לעשות פגזים?
כאשר אתה נכנס לשורת הפקודה או מפעיל חלון מסוף על לינוקס, המערכת משיקה את התוכנית פגז. פגזים מציעים דרך סטנדרטית של הרחבת סביבת שורת הפקודה. אתה יכול להחליף את פגז ברירת המחדל עבור אחד אחר, אם אתה רוצה.
סביבת פגז הראשון היה Thompson Shell, שפותח במעבדות בל ושוחרר בשנת 1971. סביבות Shell כבר הבניין על הרעיון מאז, הוספת מגוון תכונות חדשות, פונקציונליות, שיפורים מהירות.
לדוגמה, Bash מציע את השלמת הפקודה ואת שם הקובץ, תכונות מתקדמות של Scripting, היסטוריית פקודות, צבעים הניתנים להגדרה, כינויים של פקודות, וכן מגוון של תכונות אחרות שלא היו זמינות חזרה ב -1971, כאשר פגז ראשון שוחרר.
הקליפה משמשת גם ברקע על ידי שירותי מערכת שונים. הפצות לינוקס כוללות פונקציות רבות כתסריטים פגז. סקריפטים אלה הם פקודות פונקציות מתקדמות אחרות scripting פגז לרוץ דרך הסביבה פגז.
פגזים המובילים עד Bash: sh, csh, tsh, ו ksh
הבולטת הבולטת ביותר של קונכיות מודרניות היא פגז בורן - הידוע גם בשם "ש" - אשר נקרא על שם היוצר שלו סטיבן בורן שעבד במעבדות Bell & AT של T. פורסם בשנת 1979, הוא הפך את הפקודה פקודת ברירת המחדל של יוניקס בגלל התמיכה שלה תחליף הפקודה, צנרת, משתנים, בדיקות מצב, ו looping, יחד עם תכונות אחרות. היא לא הציעה הרבה התאמה אישית למשתמשים, ולא תמכה בגרסאות מודרניות כגון כינויים, השלמת פקודות ופונקציות פגז (אם כי זו האחרונה נוספה בסופו של דבר).
C פגז, או "csh", פותחה בסוף 1970 על ידי ביל Joy באוניברסיטת קליפורניה, ברקלי. זה הוסיף הרבה אלמנטים אינטראקטיביים שבהם משתמשים יכולים לשלוט במערכות שלהם, כמו כינויים (קיצורי דרך עבור פקודות ארוכות), יכולות ניהול עבודה, היסטוריה הפקודה, ועוד. זה היה המודל של שפת התכנות C, אשר מערכת ההפעלה יוניקס עצמו נכתב. זה גם אומר שמשתמשים של פגז Bourne היה ללמוד C כדי שיוכלו להיכנס פקודות בו. בנוסף, csh היו לא מעט באגים, כי היה צריך להיות hammered על ידי משתמשים ויוצרים כאחד על פני תקופה ארוכה של זמן. אנשים בסופו של דבר באמצעות פגז Bourne עבור סקריפטים כי זה מטפל פקודות לא אינטראקטיבי טוב יותר, אבל תקוע עם C פגז לשימוש רגיל.
במשך הזמן, הרבה אנשים תיקנו באגים והוסיפו תכונות לקליפה C, שהגיעה לשיאה בגרסה משופרת של csh המכונה "tcsh". אבל csh היה עדיין ברירת המחדל במחשבים מבוססי יוניקס, והוסיף כמה תכונות לא סטנדרטיות. דייוויד קורן מעובדי בל עבד על הקורנשל, או "ksh", אשר ניסה לשפר את המצב על ידי כך שהוא תואם לאחור עם השפה של פגז Bourne אבל הוספת תכונות רבות של פגז csh. הוא שוחרר בשנת 1983, אך תחת רישיון קנייני. זה לא היה תוכנה חופשית עד שנות ה -2000, כאשר הוא שוחרר תחת רישיונות קוד פתוח שונים.
לידת הבש
ממשק מערכת ההפעלה הניידת עבור יוניקס, או POSIX, היה תגובה נוספת ליישומי csh הקנייניים. היא יצרה בהצלחה סטנדרט לפרשנות פקודות (בין היתר) ולבסוף שיקפה הרבה מהתכונות בקורנשיל. במקביל, פרויקט גנו ניסה ליצור מערכת הפעלה חופשית תואמת Unix. פרוייקט גנו פיתח פגז תוכנה חופשית כדי להיות חלק ממערכת ההפעלה החופשית שלו בשם "Bourne שוב Shell", או "bash".
באש שופרה בעשורים מאז השחרור הראשון שלה בשנת 1989, אבל זה עדיין הפגז ברירת המחדל על רוב הפצות לינוקס היום. זה גם פגז ברירת המחדל על MACOS של אפל, והוא זמין להתקנה על Windows 10 של מיקרוסופט.
חדש יותר פגזים: אפר, מקף, zsh, ודגים
בעוד הקהילה לינוקס התיישבו על בש בשנים האחרונות, היזמים לא להפסיק ליצור פגזים חדשים כאשר בש הוצא לראשונה 28 שנה.
קנת אלמקיסט יצר שיבוט של קליפת בורן המכונה פגז אלמקיש, מעטפת, "אפר", או לפעמים רק "ש". זה היה גם POSIX תואם והפך פגז ברירת המחדל BSD, ענף אחר של יוניקס. פגז האפר הוא קל יותר מאשר באש, מה שהופך אותו פופולרי במערכות לינוקס מוטבע. אם יש לך טלפון Android נטען עם BusyBox מותקן - או כל מכשיר אחר עם חבילת התוכנות BusyBox - הוא משתמש בקוד מאפר.
דביאן פיתחה סביבת פגז על בסיס אפר וקראה לה "מקף". זה נועד להיות POSIX תואם וקל משקל, אז זה מהר יותר מאשר בש, אבל לא יהיו כל התכונות שלו. אובונטו משתמשת בקליפת המקף כקליפת ברירת המחדל שלה למשימות לא אינטראקטיביות, מאיצה תסריטים של מעטפת ומשימות אחרות ברקע. Ubuntu עדיין משתמשת באש עבור פגזים אינטראקטיביים, עם זאת, כך שמשתמשים עדיין יש את כל התכונות אינטראקטיביות הסביבה.
אחד הפגזים החדשים ביותר הוא Z פגז, או "zsh". נוצר על ידי פול Falstad ב -1990, zsh הוא פגז בסגנון Bourne המכיל את התכונות תמצא ב באש, ועוד יותר. לדוגמה, zsh יש בדיקת איות, היכולת לצפות כניסות / logouts, כמה תכונות תכנות מובנות כמו bytecode, תמיכה סימון מדעי בתחביר, מאפשר חשבון נקודה נקודה, ועוד תכונות.
עוד פגז חדש הוא ידידותית אינטראקטיבית Shell, או "דגים", שוחרר בשנת 2005. יש לו תחביר ייחודי שורת הפקודה זה נועד להיות קצת יותר קל ללמוד, אבל לא נגזר גם את פגז Bourne או פגז C. זה רעיון מעניין, אבל מה שאתה לומד באמצעות דגים לא בהכרח לעזור לך להשתמש באש ועוד Bourne הנגזרות פגזים.
מה עליך לבחור? (ולמה Zsh הוא פופולרי)
אתה לא צריך לבחור פגז. מערכת ההפעלה שלך בוחר את מעטפת ברירת המחדל שלך בשבילך, כי הבחירה היא כמעט תמיד bash. שבי בחזית ההפצה לינוקס - או אפילו Mac - ואתה כמעט תמיד יש סביבה פגז bash. לשח יש לא מעט תכונות מתקדמות, אבל אתה כנראה לא ישתמש בהם אלא אם כן תוכנית פגז סקריפטים.
במערכות לינוקס משובצות או במערכות BSD, אתה בסופו של דבר עם פגז אפר. אבל אפר הוא פגז מבוסס Bourne והוא תואם במידה רבה עם bash. כל הידע שיש לך באמצעות באש יעביר באמצעות אפר או מקף פגז, אם כי כמה תכונות מתקדמות scripting אינם זמינים פגז קל זה.
כמעט כל פגז שתיתקל בו הוא מבוסס על בורן ועובד באופן דומה - כולל zsh.
בגלל זה zsh הוא פופולרי. פגז חדש זה תואם ל- bash, אך כולל תכונות נוספות. פגז zsh מציע תיקון איות מובנה, השלמת שורת פקודה השלמת, מודולים loadable לשמש תוספים עבור הקליפה שלך, כינויים גלובליים המאפשרים לך כינוי שמות קבצים או כל דבר אחר בשורת הפקודה במקום פקודות פשוט, ו תמיכה יותר theming. זה כמו bash, אבל עם הרבה ניצבים, תכונות נוספות, אפשרויות להגדרה אתה עשוי להעריך אם אתה מבלה הרבה זמן בשורת הפקודה.
אם אתה מכיר את bash, אתה יכול לעבור zsh בלי ללמוד תחביר אחר, אתה רק להרוויח תכונות נוספות. אם אתה מכיר את zsh, אתה יכול לעבור bash בלי ללמוד תחביר אחר, אתה פשוט לא תהיה גישה לתכונות אלה.
"הו ZSH שלי" הוא כלי המסייע לך בקלות רבה יותר לאפשר zsh תוספות ולעבור בין נושאים premade, במהירות התאמה אישית של פגז zsh שלך מבלי לבזבז שעות tweaking דברים.
יש גם פגזים אחרים. לדוגמה, פגז tcsh עדיין סביב והוא עדיין אופציה. FreeBSD משתמשת tsch כמו פגז שורש ברירת המחדל שלה אפר כמו פגז אינטראקטיבי ברירת המחדל שלה. אם אתה משתמש התכנות C באופן קבוע, tsch עשוי להיות מתאים יותר עבורך. עם זאת, זה בשום מקום קרוב נפוץ כמו bash או zsh.
איך לעבור בין פגזים /
קל לעבור לקליפה חדשה כדי לנסות אותה. כל שעליך לעשות הוא להתקין את הקליפה מהמנהל של חבילת ההפצה של Linux ולהקליד את הפקודה להפעלת הקליפה.
לדוגמה, נניח שאתה רוצה לנסות zsh על אובונטו. הפעלת את הפקודות הבאות להתקנה ולאחר מכן הפעל אותו:
להתקין את
אז היית יושב ליד פגז zsh. IT 12 יציאה
"על הקליפה לעזוב אותו ולחזור הקליפה הנוכחית שלך.
זה רק זמני. בכל פעם שאתה פותח חלון מסוף חדש או נכנס למערכת שלך בשורת הפקודה, תראה את מעטפת ברירת המחדל שלך. כדי לשנות את הקונכייה שאתה רואה כאשר אתה נכנס בשם פגז הכניסה שלך - אתה יכול בדרך כלל להשתמש chsh
, או "שינוי מעטפת", הפקודה.
כדי להשתמש בפקודה זו, תחילה עליך למצוא את הנתיב המלא לקליפה שלך באמצעות הפקודה. לדוגמה, נניח שרצינו לשנות את הקונכייה. הפעל את הפקודה הבאה:
אשר zsh
על אובונטו, זה אומר לנו את בינרי zsh מאוחסן ב / usr / bin / zsh.
הפעל את הפקודה הבאה, הזן את הסיסמה שלך, תתבקש לבחור פגז כניסה חדש:
chsh
על פי הפקודה הנ"ל, היינו נכנסים / usr / bin / zsh
. את zsh פגז אז היה ברירת המחדל שלנו עד שאנחנו רצים chsh
הפקודה והחזירה אותו בחזרה.