מעטפת, באש ותסריטים: הכל על Scripting של מעטפת.

בהזדמנות חדשה זו (ערך מס '8) על "למד Scripting Shell" אנו נתמקד יותר בתיאוריה מאשר בפועל. כלומר, לא נתקין או נלמד קוד או נתקין תוכנה ספציפית (חבילה), אלא נתעמק במה הוא העולם של מעטפת Scripting כראוי, דרך התשובות לשאלות קטנות אך ישירות, המוצגות להלן, כדי להבהיר עד כה הרבה ממה שנלמד, שאינו מתייחס ישירות לקוד הפנימי שתוכנת:

מעטפת Scripting

מהי המעטפת במערכת הפעלה GNU / Linux?

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

1.- נהל את מערכת ההפעלה,
2.- הפעל יישומים וקיים אינטראקציה איתם, ו
3.- משמש כסביבת תכנות בסיסית.

רבים כאלה, גנו / לינוקס הם עדיין מנוהלים בצורה יעילה יותר על ידי עריכת קבצי התצורה שלהם, דרך טרמינל. ככלל, אלה נמצאים בנתיב היעד: «/וכו", ובתוך ספריות ספציפיות לכל יישום. למשל, התוכנית לילו (שמייצג Linux Loader) מוגדר על ידי עריכת קובץ הטקסט שנמצא ומכונה בשם "/Etc/lilo/lilo.conf". במקרה של תוכניות (יישומים), אלה מופעלות (מבוצעות / מופעלות) על ידי כתיבת שם ההפעלה, אם הוא נמצא בנתיב (נתיב ברירת המחדל) עבור כל ההפעלה, כרגיל "/ Usr / bin" , או על ידי הקלדת שם ההפעלה שקודם: ./, מהספרייה בה הם נמצאים.

כל זה ידוע לכל משתמש Shell. עם זאת, יכולותיה כסביבת תכנות אינן ידועות ומוערכות כל כך. אין צורך להרכיב סקריפטים (תוכניות) המיוצרים ב- Shell. המעטפת מפרשת אותם שורה אחר שורה. לכן אלה ידועים או נקראים בשם Shells Scripts ויכולים לנוע בין פקודות פשוטות לסדרות הוראות מורכבות להפעלת מערכת ההפעלה עצמה. באופן כללי, יש תחביר נקי למדי (ברור) (בנייה, הזמנה), מה שהופך אותם לנקודת התחלה טובה להתחיל בעבודה בעולם התכנות.

מה זה Shell Scripting?

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

מהם המאפיינים של תוכניות המבוססות על תכנות תחת Shell Scripting?

1.- קל יותר לכתוב (לתכנת), אך עם עלות עיבוד גבוהה יותר כאשר הם מבוצעים.

2.- הם משתמשים במתורגמנים במקום במהדרים להפעלה

3.- יש להם קשר תקשורתי עם רכיבים שנכתבו בשפות תכנות אחרות.

4.- הקבצים שמכילים אותם מאוחסנים כטקסט רגיל.

5.- התכנון הסופי (קוד) הוא בדרך כלל קטן יותר מהמקביל בשפת תכנות מורכבת.

מהם סוגי השפות הפופולאריים ביותר תחת Shell Scripting?

1.- שפת בקרת משימות ופגז:

א) cmd.exe (Windows NT, Windows CE, OS / 2),
ב) COMMAND.COM (DOS, Windows 9x),
ג) csh, Bash, AppleScript, sh,
ד) JScript באמצעות Windows Script Host,
ה) VBScript באמצעות Windows Script Host,
ו) REXX, בין רבים אחרים.

2.- סקריפטים של GUI (שפות מאקרו):

א) AutoHotkey,
ב) אוטומטי,
ג) צפה,
ד) אוטומטור, בין היתר.

3.- שפת סקריפטים של יישומים ספציפיים:

א) ActionScript ב- Flash,
ב) MATLAB,
ג) תסריט mIRC,
ד) QuakeC, בין היתר.

4.- תכנות אינטרנט (לדפים דינמיים):

א) בצד השרת:

- PHP,
- ASP (דפי שרת פעילים),
- דפי JavaServer,
- ColdFusion,
- IPTSCRAE,
- לאסו,
- תסריט MIVA,
- SMX,
- XSLT, בין היתר.

ב) בצד הלקוח:

- JavaScript,
- JScript,
- VBScript,
- Tcl, בין היתר.

5.- שפות לעיבוד תמלילים:

- AWK,
פרל,
צמא,
- XSLT,
- בש, בין היתר.

6.- שפות דינמיות למטרות כלליות:

- APL,
- בו,
- דילן,
פריטה,
גרובי,
- IO,
- ליספ,
- לואה,
- MUMPS (M),
- NewLISP,
- נובה,
פרל,
- PHP,
- פייתון,
רובי,
- תוכנית,
- שיחת חולין,
- SuperCard,
- Tcl,
- מהפכה, בין היתר.

מה זה Bash ב- GNU / Linux?

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

מהו סקריפט של מעטפת ב- GNU / Linux?

סקריפטים של מעטפת הם שימושיים ביותר. מומלץ לכתוב את הצרכים שיש לנו ואז לערוך סקריפטים שעושים את העבודה הזו בשבילנו. עד עכשיו הגיע הזמן לשאול את עצמך מהו בדיוק תסריט. זהו קובץ טקסט המכיל סדרה של פקודות מעטפת, שהמערכת מבצעת בצורה מסודרת, מלמעלה למטה. כדי לערוך אותם, אתה זקוק לעורך טקסט בלבד, כגון Emacs, Vi, Nano, בין רבים הקיימים. הם נשמרים באמצעות סיומת ".sh" (או בלעדיה, במקרים מסוימים) ומופעלים מה- Shell באמצעות הפקודה: sh script name.sh. סקריפטים מתנהגים באותה צורה כמו פקודות פגז.

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

כיצד הוא פועל ועובד במעטפת GNU / Linux?

השלב הראשון בעבודה עם מעטפת הוא הפעלת מעטפת. למה שנראה כמו אמת אמת יש את הסיבה שלו להיות. בחלק מהפצות GNU / Linux של המשתמשים הסופיים מאוד, הקליפה מוסתרת למדי. בדרך כלל זה נקרא: Konsole, Terminal, X Terminal, או משהו דומה. אפשרות נוספת היא להשתמש בקונסולה וירטואלית. שימוש: Ctrl + Alt + f1, או f2, או f3 ל- f7 או f8, תלוי בהפצת GNU / Linux בה אתה משתמש. המעטפת הנפוצה ביותר ב- GNU / Linux היא Bash, אם כי ישנן אחרות, כגון ksh או C Shell. במקרה שלי, במיוחד עבור הפרסומים שלי, אני משתמש ב- Bash Shell.

ניתן סקריפט המיוצר בבש מעטפת בשם שלום_עולם.ש ניתן להסביר את הדברים הבאים:

תוכן:

#! / bin / bash
הד שלום עולם

התקלקל:

שורה ראשונה בתסריט
#! / bin / bash

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

שורה שניה של התסריט
הד שלום עולם

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

ביצוע: אנו יכולים להריץ את התסריט בשתי דרכים

קריאת המתורגמן להפעלת התסריט:
# באש שלום_עולם.ש

ניתן להריץ אותו גם כ:
# ש שלום_עולם.ש

אך מכיוון שה- Shell הנכון שלך אינו מופעל, הוא עשוי לעבוד בחצי. באופן אידיאלי, המעטפת שהופעלה בשורה הראשונה היא זו המשמשת לביצועה.

ניתן גם להריץ את הסקריפט ישירות באופן הבא:
# ./ שלום_עולם.ש

הערה: ./ מציין הפעלה מהספריה הנוכחית.

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

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

עד הפוסט הבא!


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   d4ny דיג'ו

    לילו .. Loader Linux .. השאר מידע טוב מאוד .. תודה .. salu2 d4ny.-

  2.   אינג 'חוסה אלברט דיג'ו

    ברכה לכל מי שעוקב אחר הקורס המקוון של "למד Scripting Shell" בקרוב נמשיך עם סקריפטים בסיסיים אחרים כדי להמשיך לנכס את הידע ולהמשיך לחבר אותו לכל אחד.

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

    זכור שעם Shell Scripting אתה יכול לעשות הרבה דברים מורכבים שהם חוצה פלטפורמות (Different Distros) באמצעות קבצים קטנים מאוד. אשאיר לך את התסריט הקטן הזה של משהו שילמד אותך בקרוב, למי שימשיך לצפות בקורס, וזה עם 50Kb בלבד מבטיח הרבה! וזה רק חצי ממה שאתה יכול לעשות עם Scripting Shell.

    LPI-SB8 ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    ראה Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

    1.    אלברטו קרדונה דיג'ו

      שלום, התרומה שלך מדהימה, באמת תודה רבה !!
      יש לי ספק קטן, האם אוכל לתכנת מהדר עם bash?
      או לפחות מנתח לקסיקלי?
      יש בכוח הזה?

  3.   אינג 'חוסה אלברט דיג'ו

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

    זכור שעם Shell Scripting אתה יכול לעשות הרבה דברים מורכבים שהם חוצה פלטפורמות (Different Distros) באמצעות קבצים קטנים מאוד. אשאיר לך את התסריט הקטן הזה של משהו שילמד אותך בקרוב, למי שימשיך לצפות בקורס, וזה עם 50Kb בלבד מבטיח הרבה! וזה רק חצי ממה שאתה יכול לעשות עם Scripting Shell.

    LPI-SB8 ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    ראה Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

  4.   אלברטו דיג'ו

    שלום חוסה,
    ראשית תודה ששיתפת את הידע שלך. המאמרים שלך מעניינים מאוד.

    שני דברים, לדעתי חשוב מאוד להשתמש במרכאות הכפולות "שלום עולם" ולהפיק פלט נקי מהתסריט שלנו עם יציאה 0

  5.   אינג 'חוסה אלברט דיג'ו

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

  6.   וילארמנד דיג'ו

    ברכות.
    מעניין מאוד, אתה גורם לזה להראות פשוט; עכשיו גיליתי שאני לא יכול לתכנת בלינוקס עם cron או at, הכיבוי / השעיה / שינה, עם ההתחלה האוטומטית המתקבלת באמצעות פקודת ה- wake rtc, אני לא יודע אם סקריפט עם פקודה זו יעזור, או שהם היו עוקבים אחר cron ו- t בלי לעשות דבר, או שפשוט אי אפשר לעשות זאת, או שזה נעשה אחרת, או שאני מאוד שאפתן, אבל ב- Windows זה יחסית פשוט לעשות את זה. אני רוצה לעבור ללינוקס, אך חשוב לי לתזמן כיבוי / השעיה / שינה והמחשב יופעל מעצמו. בברכה.

  7.   אינג 'חוסה אלברט דיג'ו

    אולי זה ייתן לך כמה רעיונות חדשניים: http://cirelramos.blogspot.com/2016/01/reiniciar-apagar-o-ejecutar-otra-tarea.html

  8.   וילארמנד דיג'ו

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

  9.   אדוארדו קובומו דיג'ו

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

    https://github.com/reduardo7/bashx

    ברכות!

    1.    לְטָאָה דיג'ו

      אדוארדו היקר, אני חושב שזה פרויקט נהדר, אולי תוכל לשתף אותו עם כל הקהילה של desdelinux, זכרו שאתם יכולים לפרסם מאמר על הפרויקט שלכם באתר שלנו, אם אתם לא יודעים איך לעשות זאת אני ממליץ לקרוא https://blog.desdelinux.net/guia-redactores-editores/ היכן שיטות העבודה המומלצות ליצירת מאמרים desdelinux וההליך שיש לבצע. אולי עבור הקהילה זה די טוב לדעת קודם כל על היתרונות של הפרויקט שלך ושנית ללמוד איך לעשות דברים מסוג זה. אנו מזמינים אתכם ואנחנו מזמינים אחרים לשתף אותנו ואת הקהילה הגדולה שמקיפה אותנו בפרויקטים שלהם.

  10.   מיגל אורוזה רואיז דיג'ו

    שלום יום טוב.
    אני חדש בעולם ניהול מכונות לינוקס ורציתי לדעת מה אתה ממליץ עליו: ksh, bash, perl, php, python ....
    תודה רבה וברכות.
    מיגל.