PracticU

משתנים ב-Script - חלק 1

בלי כתוביותעם כתוביות
PracticU › קורס לינוקס למתקדמים - הסמכה בינלאומית - Linux - Red Hat - RHCSA / RHCE › משתנים ב-Script - חלק 1
מילון מושגים:
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
סקריפט - קובץ המכיל רצף פקודות שמבוצעות על ידי מפרש, לרוב כדי להפוך משימות לאוטומטיות.
Linux - מערכת הפעלה בקוד פתוח מבוססת ליבת Linux, נפוצה מאוד בשרתים וקיימת בהפצות רבות כמו Ubuntu.
כתובת IP - מספר שמזהה באופן ייחודי מכשיר ברשת מבוססת פרוטוקול IP, ומאפשר לשלוח אליו ולקבל ממנו מידע.

משתנים ב-Script - חלק 1
השיעור פותח את הנושא של משתנים בסקריפטים של Linux: מה הם, למה משתמשים בהם, ואיך יוצרים ומציגים אותם. כמעט כל סקריפט מתקדם ייעשה בעזרת משתנים.
מה זה משתנה
1. הגדרה: משתנה הוא אובייקט שמחזיק מידע לאורך הסקריפט. הוא יכול להחזיק מספר, מילה, שורה או אפילו כמה שורות.
2. למה להשתמש: משתנה חוסך חזרה על פקודות ארוכות, שומר תוצאה שאי אפשר לשחזר אחר כך, ומאפשר לשנות את הערך במהלך הריצה.
3. שימוש מאופק: מומלץ לא להשתמש במשתנים יותר מדי, כדי שהסקריפט יישאר ברור. כשיש הרבה משתנים בשמות של אות אחת, קשה להבין מה הסקריפט עושה.
יצירה והצגה
1. הגדרה: כותבים את שם המשתנה, סימן שווה והערך, בלי סימן דולר. לדוגמה a=1.
2. הצגה: מציגים את התוכן בעזרת echo ושם המשתנה עם סימן דולר לפניו, לדוגמה echo $a.
3. הגדרה לבדה: הגדרת משתנה לא מציגה דבר על המסך. צריך פקודת הצגה כדי לראות את התוכן.
4. פלט של פקודה: אפשר לשמור בתוך משתנה את הפלט של פקודה, למשל כתובת ה-IP של המחשב, או את תוכן של קובץ, ואז להשתמש בו בכמה מקומות בסקריפט.
משתני מערכת
1. רשימת המשתנים: הפקודות set ו-env מציגות את כל משתני המערכת הקיימים, כמו USER, PWD ו-HOME.
2. שימוש: בסקריפט אפשר להציג את שם המשתמש שמחובר בעזרת השורה echo "Hello $USER", כך שכל מי שמריץ את הסקריפט מקבל ברכה בשמו.
3. שינוי לפי משתמש: כשמשתמש אחר מתחבר, המשתנה מכיל את שמו, ולכן אותו סקריפט מתנהג אחרת לכל משתמש.
שימו לב
במשתנים יש הבדל בין אותיות גדולות לקטנות. $user ו-$USER הם שני משתנים שונים, בדיוק כמו שקבצים ב-Linux נבדלים לפי אותיות.
בחלק הבא מרחיבים את השימוש במשתנים ומשלבים אותם בפקודות.
השיעור הבא בקורס: משתנים ב-Script - חלק 2
לחץ כאן להורדת הורדת קבצי Script של לינוקס שהיו בסרטים
מילון מושגים:
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
מחיצה - חלוקה לוגית של דיסק פיזי לאזורים נפרדים, שכל אחד מתפקד כאילו הוא כונן עצמאי.
זיכרון - רכיב מהיר ונדיף שבו המחשב שומר נתונים ותוכניות בזמן ריצתם. תוכנו נמחק עם כיבוי המחשב.
דומיין - תחום ניהולי משותף של מחשבים ומשתמשים ברשת ארגונית, המנוהל מרכזית. גם שם ייחודי של אתר באינטרנט.
אימות - תהליך שמוודא שהמשתמש או המערכת הם מי שהם טוענים שהם, בדרך כלל באמצעות סיסמה, קוד או תעודה.
Active Directory - שירות מדריך של מיקרוסופט לניהול מרכזי של משתמשים, מחשבים והרשאות ברשת ארגונית מבוססת דומיין.
GPO - אובייקט מדיניות קבוצתית ב-Active Directory, שמכיל הגדרות ומדיניות המוחלות על משתמשים ומחשבים.


מבנה ושמות דיסקים ומחיצות בלינוקס:


(Sda (disk0): זה הדיסק הפיזי הראשון (SATA DISK)

(Sda1,Sda2 (Partitions in disk): אלו הן המחיצות בתוך הדיסק הפיזי הראשון.

(Sdb (disk1): זה הדיסק הפיזי השני כמו בוינדוס Disk1

(Sdb1,Sdb2 (Partitions in disk): אלו הן המחיצות בתוך הדיסק הפיזי השני.

מחיצת השורש הראשונה:

וינדוס: C

לינוקס: /

מחיצות נוספות:

וינדוס: D: / E:

לינוקס: /data /example כמו תיקיות.

הערה: בתהליך ההתקנה יוצרים מחיצה נוספת לזיכרון הווירטואלי שנקראת SWAP

מטרת צירוף לינוקס לדומיין הינה לאימות משתמשים מתוך Active Directory בלבד ואין GPO  ללינוקס דרך AD.


הוכן ע"י התלמיד המצטיין: אברהים אבו שיכה

פרקי ההרצאה: משתנים ב-Script - חלק 1

  1. 00:00

    מה זה משתנה (Variable) בסקריפט

  2. 01:33

    למה צריך משתנים בסקריפט

  3. 05:11

    הכנסת מידע למשתנה והצגתו

  4. 06:41

    משתני מערכת (set ו-env)

  5. 07:52

    משתנים הם Case Sensitive

  6. 08:27

    סקריפט חדש עם משתנים

  7. 10:47

    יצירת משתנים והצגתם עם echo

  8. 14:17

    הכנסת דולר נכון: יצירה לעומת הצגה

תמלול ההרצאה: משתנים ב-Script - חלק 1

הטקסט המלא של הדקות הראשונות בהרצאה «משתנים ב-Script - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:20

    זהו חלק ה' של כתיבת סקריפטים ללינוקס ושרתי יוניקס. בחלק ה' אני רוצה לעשות לכם היכרות ראשונית ובסיסית עם שימוש במושג או עם שימוש באובייקט מסוג משתנה או כמו שהוא נקרא באנגלית variable.

  2. 00:39

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

  3. 00:56

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

  4. 01:15

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

  5. 01:31

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

  6. 01:39

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

  7. 01:50

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

  8. 02:12

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

  9. 02:27

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

  10. 02:47

    שזה יהיה 9, ואז 8 ואז 7, וכל פעם להשתמש במספר השונה הזה מתוך אותו משתנה. סיבות אחרות יכולות להיות: לפעמים אנחנו צריכים להחזיק מידע שהסקריפט מוצא, והוא צריך להשתמש בו בהמשך של הסקריפט, להשתמש בו במהלך הריצה של הסקריפט.

  11. 03:10

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

  12. 03:22

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

  13. 03:32

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

  14. 03:48

    תעשה פשוט copy-paste לשורות. כן, אבל השורה היא שורה ארוכה מאוד. למה שיהיו לי שורות ארוכות אם אני יכול את השורה הזו להכניס את כל-כולה לתוך משתנה אחד? משתנה אחד, A, B, C. צד שני, המשתנים, אם תשתמשו בהם יותר מדי, אז כל הסקריפט שלכם ייראה כולו A, B, I, C, Y, ואתם, יהיה לכם לפעמים יותר קשה להבין מה עשיתם

  15. 04:13

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

  16. 04:20

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

  17. 04:33

    כמובן שלפעמים אין ברירה, חייבים פשוט להשתמש במשתנה. הנה עוד טעות פה, ברשותכם.

  18. 04:43

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

  19. 05:15

    איך אנחנו מכניסים מידע למשתנה? מאוד מאוד פשוט. המשתנה שלנו כמובן זה איזשהו, אתם יודעים, איזשהו אות בדרך כלל, למשל ABC, אני יכול גם לתת שם, Hello, How are you, Whatever, אני יכול לקרוא לזה במה שאני רוצה, User, אני יכול לקרוא לזה Computer,

  20. 05:32

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

  21. 05:51

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

  22. 06:27

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

  23. 06:44

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

  24. 06:54

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

  25. 07:01

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

  26. 07:40

    מאוד ישנם פקודות שרצות שהשרת עולה שמייצרות את אותם משתנים בהתאם למידע שהם מושכות מהמערכת אנחנו נראה את זה אז תזכרו שיש משתנים שאנחנו יוצרים בעצמנו יכולים להציג את התוכן של המשתנה ושגם להשתמש במשתנה כמובן ויש משתנים של מערכת ההפעלה זה לא לשכוח שמשתנים הם case sensitive.

  27. 08:07

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

  28. 08:20

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

  29. 08:27

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

  30. 08:39

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

  31. 08:52

    למשל, יש לנו משתנה שהוא ssh-tty. מה ssh-tty שכרגע נכנסתי לשרת? יש לי משתנה שנקרא אותיות גדולות user, שהוא בעצם הuser שעשה לוגין בשרת. יש לי את ה-pwd שזה המיקום שלי בשרת כשאני נכנס אליו ואם תעשו env יש לכם עוד עוד המון המון למשל התיק יד בית שלי אוקיי איזה של אני עובד איתו כלומר כשהמחשב שלכם עולה ואתם עושים

  32. 09:33

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

  33. 10:03

    הטמפלט. עכשיו, הפלא ופלא, ניכנס לסקריפט 5, והסקריפט 5 שלנו כבר יש בו, מוכן, כמו לקוסמטיקה שדיברתי עליה עוד בסשן השני והשלישי.

  34. 10:19

    נחמד מאוד שאתם מייצרים סקריפט עם variables שיהיה לכם בהתחלה של הסקריפט יש רשימת כל ה-variables שאתם הולכים להשתמש בהם. כדי שתדעו איזה variables יש לכם בסקריפט.

  35. 10:31

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

  36. 11:05

    איך אני יוצר variable? כמו שאמרתי לכם, a שווה 1, b שווה 5, computer name שווה, בוא ניתן איזה, computer name, נקרא לזה my computer name שווה, לינוקס 1,2,3 ומיי קומפיוטר ניים שווה בואו נכניס לו בעצם עשיתי פה בתוך הסקריפט שלי עכשיו אני בונה משתנים a למשל שווה 1 b שווה 5 מיי קומפיוטר ניים שווה

  37. 12:05

    לינוקס 1,2,3 ומיי קומפיוטר ניים 2 שווה את האוטפוט של הפקודה עכשיו בואו נריץ את הסקריפט הזה נראה מה יקרה כמובן שלא לשכוח לשים את ההרשאות הסקריפט שלנו, ועכשיו בואו נריץ את הסקריפט.

  38. 12:25

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

  39. 12:42

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

  40. 12:56

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

  41. 13:32

    ואיך אני עכשיו מציג את אותם משתנים? מאוד פשוט: ECHO, DOLLAR, DOLLAR A, ECHO, DOLLAR B, ECHO, DOLLAR. ברשותכם, בואו נעתיק את זה עכשיו. כשאתם רוצים להציג את התוכן של המשתנה שלכם, חבר'ה, תהיו סבלניים, כי עוד רגע תראו דברים הרבה יותר יפים.

  42. 14:03

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

  43. 14:20

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

  44. 14:40

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

לקורס המלא: קורס לינוקס מתקדם אונליין

ההרצאה הקודמת: לינוקס Script - חלק 4

ההרצאה הבאה: משתנים ב-Script - חלק 2

הרצאות קשורות מקורסים אחרים

  • משתנים
  • משתנים - חלק 1
  • משתנים ב-JAVA
  • סוגי משתנים

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס קוברנטיקס - Kubernetes
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell