22Jul

מה ההבדל בין Bash, Zsh, ו- Linux אחרים Shells?

click fraud protection

רוב הפצות לינוקס כוללות את פגז bash כברירת מחדל, אבל אתה יכול גם לעבור לסביבה פגז אחר.Zsh הוא חלופה פופולרית במיוחד, ויש פגזים אחרים, כמו אפר, מקף, דגים, ו tcsh.אבל מה ההבדל, ומדוע יש כל כך הרבה?

מה לעשות פגזים?

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

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

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

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

מובילים לבאש: sh, csh, tsh, ksh

instagram viewer

הבולטים הבולטים ביותר של קונכיות מודרניות הוא פגז בורן - הידוע גם בשם "ש" - אשר נקרא על שם היוצר שלו סטיבן בורן שעבד ב- AT &מעבדות.פורסם בשנת 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.

חדש יותר פגזים: אפר, dash, dsh, zsh, ודגים

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

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

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

אחד הפגזים החדשים ביותר הוא Z פגז, או "zsh".נוצר על ידי פול Falstad בשנת 1990, zsh הוא פגז בסגנון Bourne המכיל את התכונות תמצא ב באש, ועוד יותר.לדוגמה, zsh יש בדיקת איות, היכולת לצפות כניסות / logouts, כמה תכונות תכנות מובנות כמו bytecode, תמיכה סימון מדעי בתחביר, מאפשר נקודה צף אריתמטית, ועוד תכונות.

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

מה עליך לבחור?(ולמה Zsh הוא פופולרי)

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

במערכות לינוקס משובצות או במערכות BSD, אתה בסופו של דבר עם פגז אפר.אבל אפר הוא פגז מבוסס Bourne והוא תואם במידה רבה עם bash.כל הידע שיש לך באמצעות באש יעבור באמצעות אפר או מקף פגז, אם כי כמה תכונות מתקדמות scripting אינם זמינים בקליפה קל זה.

כמעט כל פגז שתיתקל בו הוא בורן מבוסס ועובד באופן דומה - כולל zsh.

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

אם אתה מכיר את הבאש, אתה יכול לעבור zsh בלי ללמוד תחביר אחר, אתה רק להרוויח תכונות נוספות.אם אתה מכיר את zsh, אתה יכול לעבור bash בלי ללמוד תחביר אחר, אתה פשוט לא תהיה גישה לתכונות אלה.

"הו ZSH שלי" הוא כלי המסייע לך בקלות רבה יותר לאפשר zsh תוספות ולעבור בין נושאים premade, במהירות התאמה אישית של פגז zsh שלך מבלי לבזבז שעות tweaking דברים.

יש גם פגזים אחרים.לדוגמה, פגז tcsh עדיין סביב והוא עדיין אופציה.FreeBSD משתמש tsch כמו פגז שורש ברירת המחדל שלה אפר כמו פגז אינטראקטיבי ברירת המחדל שלה.אם אתה משתמש התכנות C באופן קבוע, tsch עשוי להיות מתאים יותר עבורך.עם זאת, זה בשום מקום קרוב נפוץ כמו bash או zsh.

כיצד לעבור בין פגזים

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

לדוגמה, נניח שאתה רוצה לנסות zsh על אובונטו.היית מפעיל את הפקודות הבאות להתקנה ולאחר מכן להפעיל אותו:

sudo apt להתקין zsh zsh

אז היית יושב ליד פגז zsh.סוג "יציאה" על פגז לעזוב אותו ולחזור פגז הנוכחי שלך.

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

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

אשר zsh

על אובונטו, זה אומר לנו את בינארי zsh מאוחסן ב /usr/bin/ zsh.

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

chsh

על פי הפקודה לעיל, היינו נכנסים /usr/bin/ zsh.את zsh פגז היה אז ברירת המחדל שלנו עד שאנחנו רץ הפקודה chsh ושינה אותו בחזרה.