מהו Shell Scripting ולמה כדאי להשתמש בו

מהו Shell Scripting ולמה כדאי להשתמש בו

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





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





1. היסטוריה של המעטפת

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





אחריו הגיע בורן קליפה בשנת 1977 ונשאר בשימוש כיום כמעטפת ברירת המחדל של שורש חֶשְׁבּוֹן. מעטפת זו הוסיפה יכולות סקריפט שהוכחו כשימושיות ביותר בפועל לאורך השנים.

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



אחת הקליפות הפופולריות ביותר כיום היא ה- Bash Shell . בש מייצג בורן-שוב-מעטפת והוא גרסה משופרת ביותר של מעטפת הבורן המקורית.

כיצד לבדוק אם קישור בטוח

במאמר זה, אנו מתארים scripting shell עבור מעטפת הבש .





2. ביצוע סקריפט Shell

כיצד מבצעים סקריפט של מעטפת? פָּשׁוּט. פשוט העבר את נתיב התסריט כארגומנט למעטפת:

סקריפט לדוגמא של מעטפת:





echo 'hello world'

הפעל אותו באופן הבא:

$ bash hello.sh
# prints
hello world

הערה: הקליפה דורשת שורות יסתיימו על ידי תווי LF (Line-Feed). אם תכתוב את סקריפט המעטפת שלך ב- Windows ותנסה לבצע אותו ישירות במערכת לינוקס, אתה עלול להיתקל בשגיאות. Windows משתמשת בשילוב CR-LF (Carriage-Return-Line-Feed) לסיום הקו. צריך להמיר את זה ל- LF בלבד. בדוק את עורך Windows שלך לאמצעים לעשות זאת.

יש דרך נוספת לבצע סקריפט מעטפת ישירות כפקודה. הכנס את השורה הבאה ( חאשבנג הצהרה) כשורה הראשונה של סקריפט המעטפת שלך.

איך מזווגים שלט של אפל tv
#!/bin/bash

עם שינוי זה, סקריפט הפגז הפשוט שלנו הוא כעת:

#!/bin/bash
echo 'hello world'

כעת, עליך להפוך את קובץ הסקריפט להפעלה כדלקמן:

$ chmod +x hello.sh

בשלב זה תוכל לבצע את קובץ הסקריפט ישירות מבלי שתצטרך להתייחס למעטפת במפורש.

$ hello.sh
# prints
hello world

הבה נבחן כעת כמה יתרונות בשימוש בסקריפטים של מעטפת.

3. אוטומציה של משימות

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

  • העבר לארכיון והעלה קובץ או תיקיה מדי יום אל מתקן אחסון בענן כגון S3.
  • דחיסת קבצי יומן שנוטים לצמוח מיום ליום.
  • השאירו מחירי מניות, נתחו את הנתונים שנאספו והפעילו מייל או SMS כאשר מתקיימים תנאים מסוימים (מחירים גבוהים או נמוכים מדי).

4. שילוב של פקודות מרובות

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

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

להלן סקריפט מעטפת לדוגמה, /etc/profile , אשר מבוצע בכל פעם שמשתמש מתחבר. תארו לעצמכם להקליד פקודות אלה ביד!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. קל יותר לפתח

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

תוכניות C/C ++ טובות יותר לרמת פעולה נמוכה בהרבה, כגון קריאת שיחות מערכת, מניפולציה של מבני נתונים וכו '.

6. שקיפות

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

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

7. נייד

ל סקריפט מעטפת ניתן להעביר למערכות הפעלה אחרות הדומות ל- Unix ול- Unix ולבצע אותן (אם הקליפה עצמה קיימת). גם בעת העברת סקריפט מעטפת מארכיטקטורות שונות כגון x86, MIPS, Sparc וכו ', סקריפטים של מעטפת הם הרבה יותר ניידים מתוכניות C/C ++.

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

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

כמה להחליף סוללת macbook pro
לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל 5 טיפים להטעין את מכונות הלינוקס של VirtualBox

נמאס לכם מהביצועים הגרועים שמציעות מכונות וירטואליות? הנה מה שאתה צריך לעשות כדי לשפר את ביצועי VirtualBox שלך.

קרא הבא
נושאים קשורים
  • תִכנוּת
  • Linux Bash Shell
על הסופר ג'יי סרידהאר(פורסמו 17 מאמרים) עוד מג'יי סרידהאר

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה