PracticU

התאמה אישית של Shell ו-Alias

בלי כתוביותעם כתוביות
PracticU › קורס לינוקס למתקדמים - הסמכה בינלאומית - Linux - Red Hat - RHCSA / RHCE › התאמה אישית של Shell ו-Alias
מילון מושגים:
מעטפת - תוכנה שמפרשת פקודות של המשתמש ומעבירה אותן למערכת ההפעלה, למשל Bash או PowerShell.
CentOS - הפצת Linux ארגונית חינמית שהתבססה על Red Hat Enterprise Linux ושימשה נפוצות בשרתים.
Bash - מעטפת שורת פקודה נפוצה במערכות Linux, המשמשת להרצת פקודות ולכתיבת סקריפטים.
root - משתמש העל במערכות Linux, בעל הרשאות מלאות לכל פעולה. גם הרמה העליונה בעץ של תיקיות או נתונים.
סקריפט - קובץ המכיל רצף פקודות שמבוצעות על ידי מפרש, לרוב כדי להפוך משימות לאוטומטיות.
נתיב - מחרוזת שמתארת את מיקומו של קובץ או תיקייה במערכת הקבצים, או כתובת של משאב בתוך אתר.
SSH - פרוטוקול לחיבור מרוחק ומוצפן למחשב, בעיקר לשרתי Linux, לצורך ניהול דרך שורת הפקודה.
חבילה - אוסף ארוז של קוד, ספריות או קבצים המופץ כיחידה אחת ומותקן בעזרת מנהל חבילות.

התאמה אישית של Shell ו-Alias
בתרגיל הכנה ל-RHCE צריך ליצור פקודה בשם mystat על שתי מערכות, שמריצה את ps עם תצוגה מותאמת: PID, שם המשתמש וגודל הזיכרון (RSZ). ההרצאה משווה כמה דרכים ליצור פקודה כזו ומראה איפה כל אחת נשמרת ומי יכול להשתמש בה.
השלבים העיקריים
1. הרצת הפקודה כמו שהיא: מריצים /bin/ps -aopid,user,rsz ורואים את רשימת התהליכים, המשתמש שמריץ אותם והזיכרון שהם תופסים.
2. קיצור עם alias: יוצרים alias mystat="/bin/ps -aopid,user,rsz". זה עובד, אבל ה-alias נעלם ביציאה מה-shell וכנראה גם באתחול, ולכן זה לא מספיק לתרגיל.
3. ניהול aliases: הפקודה alias מציגה את הקיימים. ב-CentOS יש כברירת מחדל alias שהופך cp, rm ו-mv ל-cp -i, rm -i ו-mv -i, ולכן rm שואל לפני מחיקה. unalias מבטל alias, ובכניסה חדשה הוא חוזר.
4. שמירה ברמת המשתמש: מוסיפים את ה-alias ל-~/.bashrc, שרץ בכל כניסה ל-bash. הוא יעבוד רק למשתמש הזה, כי לכל משתמש .bashrc משלו.
5. למה לא /etc/bashrc: הוא משותף לכולם, אבל הוא קובץ של חבילת setup (נבדק עם rpm -qf), ועדכון מערכת עלול לדרוס את השינוי. אותו דבר ב-/etc/profile.
6. התיקייה /etc/profile.d: יוצרים בה קובץ mystat.sh שמתחיל ב-#!/bin/sh ומכיל את ה-alias. הוא נטען לכל המשתמשים, כולל root, ולא מפריע לתוכנות אחרות. מחיקת הקובץ מבטלת את ההגדרה בצורה מסודרת.
7. סקריפט בתוך ה-PATH: echo $PATH מראה באילו תיקיות המערכת מחפשת פקודות. יוצרים /usr/bin/mystat עם #!/bin/sh והפקודה ps, ונותנים לו הרשאת הרצה ב-chmod +x. בלי +x מתקבל Permission denied.
8. העתקה למערכת 2: יוצרים את אותו קובץ ב-/usr/bin/mystat ב-System 2 דרך SSH ונותנים לו +x.
פקודות והגדרות
- alias mystat="/bin/ps -aopid,user,rsz"
- rpm -qf /etc/bashrc לבדיקה אם הקובץ שייך לחבילה
- chmod 700 /usr/bin/mystat מגביל לרוט בלבד, chmod 755 מחזיר ההרשאה לכולם
שימו לב
סקריפט ב-/usr/bin מאפשר שליטה בהרשאות: אפשר להגביל אותו לבעלים או לקבוצה. alias, לעומת זאת, נמצא בקובץ של כל משתמש ולכן כל אחד יכול להתאים אותו לעצמו, בעוד הסקריפטים משותפים לכל המערכת.
אחרי ההרצאה אפשר ליצור פקודה מותאמת ולבחור את המקום המתאים לשמירתה.
לחץ כאן להורדת הורדת קבצי 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.


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

פרקי ההרצאה: התאמה אישית של Shell ו-Alias

  1. 00:00

    התאמה אישית של ה-Shell

  2. 01:19

    קיצור פקודה עם Alias

  3. 02:19

    אליאס שאינו נשמר לאחר סגירה

  4. 02:59

    אליאסים דיפולטיביים במערכת

  5. 04:00

    הסרת אליאס עם unalias

  6. 04:40

    שימור האליאס בקובץ bashrc

  7. 07:42

    קובץ הגדרות משותף לכל המשתמשים

תמלול ההרצאה: התאמה אישית של Shell ו-Alias

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

  1. 00:02

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

  2. 00:18

    הפקודה המיוחדת הזאת תריץ את פקודת PS כאשר התצוגה שלה מתואמת במיוחד לצורכי המשתמש. היא תציג את ה-PID, את מספר התהליך, שם המשתמש שמריץ אותו ואת ה-RSZ כלומר רזידנס סייז או במילים אחרות את כמות הזיכרון אשר אותה פקודה צורכת בואו נעבור למערכת היא עובדת עם SSH המערכת מורצת על

  3. 00:47

    גבי ההייפר V אז קודם כל אנחנו נתחיל מפשוט להריץ את הפקודה שהתבקשנו כדי לראות איך היא עובדת ולמה אפשר לצפות אנחנו מריצים /bin/ps-aopiduser/rsz ואנחנו רואים את רשימת התהליכים שרצים במערכת, את היוזר שמריץ ואת נפח הזיכרון אשר התוכנה הזאת תופסת.

  4. 01:21

    הדרך הכי פשוטה להפוך אותה בעצם לפקודה מקוסטמת היא בעזרת מנגנון ה-alias. כלומר אני יוצר קיצור דרך אשר ברגע שאני אקיש אותו בתוך הטרמינל הפקודה הזאת תתורץ ואני עושה את זה באופן הבא זה עליאס שם הפקודה mystat=b/bin/ps-aopid.user.rsz וסוגר מירכאות

  5. 02:01

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

  6. 02:33

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

  7. 02:48

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

  8. 03:15

    אגב, אותו דבר גם עם ARM ועם MV, כדי שאם נקיש בטעות ARM אז הוא ישאל אותנו האם באמת אנחנו רוצים למחוק את הקובץ. אוקיי, נגיד אני אצור כאן קובץ touch test, עכשיו אני מריץ rm test, ואני מקבל כאן את ההודעה האם אתה בטוח שאתה רוצה למחוק את הקובץ test.

  9. 03:43

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

  10. 03:53

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

  11. 04:09

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

  12. 04:30

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

  13. 04:47

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

  14. 05:04

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

  15. 05:34

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

  16. 05:58

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

  17. 06:37

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

  18. 06:59

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

  19. 07:30

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

  20. 08:00

    אז בואו נבחן את הקובץ etc-bashar-c לכאורה כל המשתמשים במערכת משתמשים בו ואם אני אשים את הפקודה שם אז בעצם כל פעם שלא משנה איזה משתמש ייכנס הפקודה הזאת תרוץ.

  21. 08:16

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

  22. 08:35

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

  23. 08:59

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

  24. 09:24

    פשוטה מאוד אני אשלח שאילתה למערכת ה-RPM האם הקובץ הזה הוא הגיע מהמערכת או לא אני אריץ RPM מינוס Q מלשון query i information ו-f file וכאן אני ארשום את שם הקובץ etc/c וכאן אני רואה שאכן הקובץ הזה הוא מגיע מתוך חבילת setup ולכן מן הסתם עדיף לי שלא לדרוס אותו.

  25. 09:56

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

  26. 10:19

    ואם אני אסתכל מה יש בפנים, אני גם אראה שיש בפנים נתונים שבאים מתוך

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

ההרצאה הקודמת: ניהול קבוצות בשרת לינוקס

ההרצאה הבאה: files ownership

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

  • התאמה אישית של הודעות שגיאה
  • התאמה אישית של עיצוב Material UI
  • SHELL MODULE
  • התאמה של Host Profile - ל-ESXi

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

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