19/05/2024

מדריך לינוקס למתחילים בעברית חלק 8 - ניהול חבילות עם apt

 


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

מה נלמד היום?
היום נלמד על מנהל החבילות apt, נלמד כיצד:
1) מה זה חבילה?
2) איך לעדכן את ה"קטלוג" של החבילות בלינוקס?
3) איך להתקין חבילה עם apt בלינוקס?
4) איך לבצע עדכון לחבילה ספציפית?
5) איך  לעדכן את כל החבילות שיש לי במחשב?
6) איך לבדוק אילו חבילות צריך לעדכן?
7) לחפש חבילות - איך למצוא חבילות?
8) איך לעדכן את כל החבילות שיש לי במערכת?
9) להסיר חבילות - איך מסירים חבילות בלינוקס?
10) איך בודקים ריפוסיטורי - מאיפה לעדכן את חבילות?


נתחיל עם השאלה הכי "חשובה" מה המשמעות של "APT" - בתכלס זה לא ממש מעניין אבל זה מהמיידעים האלה שלרוב אף אחד לא ממש יודע ואתם תהיו אלה שכן תדעו.. אז הפירוש הוא "Advanced Packaging Tool", וכמו שכבר הבנתם, מנהל החבילות apt מיועד לניהול החבילות בלינוקס, ניתן לבצע עדכון של תוכנות, להסיר תוכנות, לנקות שאריות, לבצע חיפוש, עדכונים, שדרוגים וכד', והכל בשורת פקודה בצורה די אוטומטית.


1. מה זה בעצם חבילה?
בשביל שתבינו על מה אני מדבר כשאני משתמש במושג "חבילה" - חבילה היא סוג של קופסא עם כל הרכיבים הדרושים ל"בניית" תוכנה, כשמתיקינים תוכנה עם APT, אתה בעצם מוריד חבילת DEB (הכוונה לדביאן), מהמאגר 
ולאחר מכן בונה את התוכנה עם ה"חלקים" שמגיעים עם החבילה הזאת.

2. איך לעדכן את ה"קטלוג" של החבילות בלינוקס?

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


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


שימו לב שפה זאת מכונה שנקראת ubuntu ככה שזאת מכונה אמיתית, ולא המכונה הוירטואלית שאני עובד עליה בהדרכות, לכן כאן הפלט שונה, וניתן לראות שהמערכת אומרת שיש לי 8 חבילות שאני יכול לשדרג, ואם אני רוצה לראות אותן, אני צריך להריץ את הפקודה apt list --upgradable, כמובן שבהמשך אפשר לשדרג אותן גם כן.

3. איך להתקין חבילה?
התקנת חבילה זה דבר מאוד מאוד פשוט, לצורך הדוגמא נתקין חבילה שנקראת vim (עורך טקסט, עליו יהיה מדריך בהמשך), לצורך התקנה נריץ את הפקודה sudo apt install [app_name]:



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

4.איך לעדכן חבילה ספציפית?

לצורך עדכון חבילה ספציפית, נריץ את הפקודה: sudo apt install --only-upgrade package_name


אם אני רוצה לעדכן כמה חבילות ספציפיות ביחד, אני אריץ את אותה הפקודה, רק בסוף אוסיף את שם החבילה,
בצורה הזאת:  sudo apt install --only-upgrade package_name1 package_name2




5. איך להתקין כמה חבילות ביחד?

התקנה של כמה חיבלות ביחד היא מאוד פשוטה, פשוט מוסיפים בסוף את השמות של התוכנות שאנחנו רוצים אחרת אחרי השניה: sudo apt install [app1 app2 app3]



6. איך לבדוק אילו חבילות צריך לעדכן?

בשביל לבדוק אילו חבילות צריך לעדכן, נריץ את הפקודה: sudo apt list --upgradable:




7.איך לחפש חבילה עם apt בלינוקס?

לצורך חיפוש חבילה נריץ את הפקודה apt search [app_name]



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



8. איך לשדרג את כל החבילות שיש לי במערכת?

לצורך עדכון כל החבילות נריץ את הפקודה sudo apt upgrade


כמו כן יש פקודה שנקראת sudo apt dist-upgrade, ההבדל הוא שהפקודה sudo apt upgrade לא יכולה להתקין חבילות חדשות במערכת ולא יכולה להסיר חבילות ישנות, הפקודה dist-upgrade יכולה לעדכן להתקין חבילות חדשות ולהסיר חבילות ישנות וגם לבצע עדכון למערכת ההפעלה.


9. איך להסיר תוכנה עם apt בלינוקס?

הסרת תוכנה מתבצעת בצורה זאת, sudo apt remove [app_name]


10 איך לעדכן ריפוסיטורי של apt?

ריפוסיטורי, זה בעצם המקום שממנו לינוקס מורידה תוכנות, אלו "אתרי אחסון" למיניהם שבהם ניתן למצוא קבצים, את הריפוסיטורי האלה אפשר לעדכן, הרשימה יושבת בנתיב הזה:/etc/apt/sources.list.d/ubuntu.sources ואנחנו נפתח אותה עם עורך הטקסט המובנה שיש לכם בלינוקס שנקרא nano בצורה הבאה :
 sudo nano /etc/apt/sources.list.d/ubuntu.sources


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

לכל שאלה המייל שלי levl@leidertech.co.il

כמו תמיד, מדריך מצולם:


14/05/2024

מדריך לינוקס למתחילים בעברית חלק 7 - מה זה sudo בלינוקס?


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

מה נלמד היום?
1) מה זה sudo ומה הפירוש של המושג הזה?
2) מתי משתמשים ב SUDO בלינוקס?
3) למה צריך את SUDO?
4) איך לבדוק האם משתמש ROOT מאופשר במערכת?
5) איך לקבוע סיסמא למשתמש ROOT?
6) איך לעבוד על משתמש ROOT? 
7) איך להריץ את הפקודה האחרונה שוב ולהוסיף את SUDO אוט'?
8) איך לבדוק האם המשתמש שלכם הוא חלק מקבוצת SUDO?
9) איך להריץ SUDO בלי להקיש סיסמא כל הזמן?
10) איך להגביל משתמש להרצת פקודות מסוימות בלבד?
11) מה קורה אם עושים טעות בקובץ sudoers?

1. מה זה SUDO בלינוקס?
SUDO - היא פקודה בלינוקס ומערכות יוניקס (גם במאק יש SUDO) שמאפשרת להריץ תוכנות עם הרשאות של משתמש אחר, לרוב זה יהיה משתמש אדמיניסטרטור (ROOT), המשמעות של הפקודה זה Super User DO, זאת אומרת "משתמש מנהל עשה"

2. מתי משתמשים ב SUDO בלינוקס?

יש פקודות שלא עובדות ללא הרשאות ניהול, כמה וכמה פקודות כאלה כבר ראינו במהלך המדריכים הקודמים, שרצינו לבצע שינוי ל NICE, כשרצינו לבצע התקנה ל HTOP, השתמשנו ב sudo, גם בווינדוס בלי הרשאות מנהל יש דברים שלא תצליחו לעשות, כמו גם להתקין תוכנות לדוגמא או לפעמים גם לשנות שמות של קבצים אין אפשרות בלי הרשאות מתאימות, ואז אנחנו מבצעים "Run As", ופה זה בדיוק אותו דבר, הרצה של פקודה בתור משתמש אחר, במקרה של לינוקס לרוב זה משתמש עם הרשאות מנהל, לצורך הרצת הפקודה, פשוט נוסיף את המילה sudo בהתחלה,
ונצרף את הפקודה שאנחנו רוצים להריץ לדוגמא: sudo apt update

בתור דוגמא הרצתי עדכון למנהל החבילות apt ללא הרשאות מנהל:


כפי שניתן לראות, קיבלנו הודעה על כך שאין הרשאה לבצע כמה פעולות, שהמערכת צריכה בשביל לבצע עדכון למנהל החבילות, עכשיו נריץ את זה עם הרשאות sudo apt update:




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

3. למה צריך את SUDO?
הכל עניין של ביטחון, בשביל שלא תצטרכו לעבוד על חשבון ROOT כל הזמן, אפשר להשתמש בפקודה SUDO, זה עד כדי כך פשוט שאם ימאס לכם להקיש את הסיסמא של SUDO, תוכלו לכתוב את הפקודה שאתם רוצים להריץ ואז בעצם להוסיף פרמטר שישאל אתכם פעם אחת סיסמא ובמהלך של התקנה לא יבקש ממכם סיסמא אף פעם יותר.
נריץ את הפקודה עם הפרמטר y- בצורה הזאת sudo apt update -y ואז במידה ויש צורך להקיש את הסיסמא במהלך הפעולה, המערכת לא תבקש מאיתנו סיסמא יותר מהפעם הראשונה.

4.איך לבדוק האם משתמש ROOT מאופשר במערכת?

אם אתם עובדים על לינוקס, החשבון ROOT מאופשר במערכת, במידה ואתם רוצים לעבוד דרכו (לא מומלץ כי מסוכן מאוד !) אפשר להקיש את הפקודה " - su" ואז נצטרך להקיש סיסמא, לאחר מכן נעבור לעבוד תחת חשבון ROOT:


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

5. איך לקבוע סיסמא למשתמש ROOT?
במידה ואתם לא מצליחים לעבור למשתמש ROOT כי אתם לא יודעים את הסיסמא שלו, ניתן לבצע שינוי בעזרת כמה צעדים פשוטים:
1) sudo passwd root
2) נקיש את הסיסמא שאנחנו רוצים (נקבל שגיאה שהסיסמא לא בסדר כי היא קצרה מדי, אפשר לא להתייחס אליה ולהקיש את הסיסמא שאתם רוצים..כמובן שאני עושה את זה בסביבה שהיא מעבדה, במקרה של פרודקשן, סיסמא זאת צריכה להיות מאוד קשה לפיצוח מהסיבה הפשוטה - ROOT = "אלוהי מערכת").
3) סיימנו.


6. כיצד לעבור למשתמש ROOT?
מעבר בין משתמשים בלינוקס מתבצע בעזרת הפקודה su ואז שם היוזר, במקרה הזה נקיש su root:



7. איך להריץ את הפקודה האחרונה שוב ולהוסיף את SUDO אוט'?

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


8.איך לבדוק האם המשתמש שלכם הוא חלק מקבוצת SUDO?
מדובר על אחת הפקודות היותר פשוטות שיצא לי להשתמש, הפקודה groups [user_name]:


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

9.איך להריץ SUDO בלי להקיש סיסמא כל הזמן?

בלינוקס יש קובץ מעניין שאחראי על כל נושא ה SUDO שנקרא Sudoers, קובץ זה נמצא בנתיב /etc/sudoers/ וניתן לצפות בו אך ורק עם הרשאות של SUDO, הקובץ הזה אחראי על מי יריץ אילו פקודות בתור אילו משתמשים,ועל אלו שרתים\מחשבים. כמו כן ניתן לקבוע הרצה של SUDO ללא סיסמא - מאוד מאוד לא מומלץ ולא בטיחותי ! יחד עם זאת, זה מחשב שרת שלכם, עשו מה שאתם חושבים לנכון :).

בשביל להציג את התוכן של הקובץ הזה צריך לפתוח אותו עם SUDO בצורה הבאה: sudo cat /etc/sudoers:



מקרא של הקובץ: 
  • סימן % - אומר שמדובר בקבוצה ולא משתמש. 
  • ה"all" הראשון - מיצג את השרתים\מחשבים שעליהם מותר למשתמש בקבוצה הזאת להריץ פקודות עם SUDO.
  • (all:all) מצד ימין -  קבוצה - השם של הקבוצה שבתור שמה תוכלו להריץ SUDO.
    מצד שמאל - שם משתמש שבשמו תריצו את הפקודה SUDO (זאת אומרת המשתמש שתרשמו כשתעשו run as) לידע כללי: ברגע שאתם מריצים את הפקודה sudo המערכת משתמשת במשתמש הנקרא ROOT, בתור ברירת מחדל, אבל בפועל אתם יכולים לקבוע איזה משתמש יריץ את הפקודה.
  • (all) - כאשר יש רק ALL אחד בתוך הסוגריים, אותו דבר כמו הנ"ל.
  • ה"all" האחרון - הפקודות שאותן המתשמש מורשה להריץ, במקרה הזה "כולן".
9.א איך לערוץ קובץ sudoers?

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

נפתח את הקובץ בעזרת הפקודה sudo visudo, ונוסיף למשתמש user1 הרשאות של הכל מהכל, ברובריקה שמדברת על משתמשים "User privilege" ונרשום (חייב זהה למה שכתוב כאן, חובה לשים לב לאותיות גדולות או קטנות):
user1 ALL=(ALL:ALL)ALL



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

לצורך שמירה, נלחץ על ctrl+o (לא הסיפרה 0 אלה האות "o") למטה נוכל לראות שהתוכנה אומרת לנו שהיא תשמור את הקובץ: 


לאחר מכן נלחץ על ENTER, ועל ctrl+x בשביל לצאת וחזרנו לטרמינל, בשביל לבדוק את השינויים נריץ את cat בשביל לראות את תוכן בעזרת  sudo cat /etc/sudoers ונראה את השינוי:



במקרה שלי כבר היה לי משתמש בשם user1, לכן אני לא צריך ליצור אותו (אני לא אפרט כאן על ניהול משתמשים, כי אנחנו נדבר על כך במדריך על ניהול משתמשים אבל אתן פקודה ליצירת משתמש במידה ואין לכם משתמש לנסות עליו) לצורך יצירת משתמש נריץ את הפקודה: sudo adduser [user_name]:


שימו לב, לא חובה למלא את כל השאלות בדרך.


לאחר מכן, אני אעבור למשתמש שיצרתי (במקרה שלי משתמש שכבר היה קיים user1) בעזרת הפקודה sudo su - [user_name] ואז אבדוק אילו פקודות המשתמש הזה יכול להריץ בעזרת הפקודה sudo -l


ונראה שהמערכת אומרת לנו שהמשתמש user1 יכול להריץ את הפקודות הבאות על המכונה ubuntu-vm.

10. איך להגביל משתמש להרצת פקודות מסוימות בלבד?

נגיד ואנחנו רוצים לאפשר למשתמש user1 להריץ את כל מה שקשור ב apt ללא סיסמא, נכנס חזרה לקובץ בעזרת
 sudo visudo, ושם נוסיף את הסינטקס הבא: NOPASSWD: /usr/bin/apt.

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

אם נרצה להוסיף עוד פקודה, לדוגמה את הפקודה rm (מחיקה) נוסיף באותה הצורה בעזרת פסיק לאחר הפקודה הקודמת בצורה הזאת:


עכשיו לצורך בדיקה, נעבור למשתמש user1 וננסה לעשות איתו את sudo apt update כמו שעשינו עם המשתמש lev:


וכצפוי, הכל רץ ללא צורך להכניס סיסמא.

11 מה קורה אם עושים טעות בתוך הקובץ sudoers?

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



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


מקרא:
  • e - לבצע עריכה לקבוץ
  • x - לצאת בלי לשמור את השינויים
  • q - לצאת ולשמור את השינויים - כמובן שזה מסוכן מאחר וזה יכול לעשת תקלות, במיוחד אם זה קובץ גדול נגיד ויש הרבה משתמשים וקבוצות ואתם לא זוכרים מה בדיוק שיניתם, או מכל סיבה אחרת.

כמו תמיד לכל שאלה המייל שלי levl@leidertech.co.il

וכמובן סרטון מצולם:



08/05/2024

מדריך לינוקס למתחילים בעברית חלק 6 - ניהול תהליכים (Processes) בלינוקס




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

במדריך זה נלמד כיצד:
1) איך להציג תהליכים (פרוססים -  Processes) רצים בלינוקס?
2) איך למצוא תהליכים (פרוססים -  Processes) לפי מספר ID או שם?
3) איך לעצור תהליכים (פרוססים - Processes) בלינוקס?
4) איך לתת עדיפות (Priority) לתהליך (Process) מסוים?
5) איך להריץ פקודה מסוימת או תהליך מסוים "ברקע"?
6) איך לנהל תהליכים (פרוססים - Processes) בצורה יותר נוחה בלינוקס?



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

א.1 הפקודה ps והפרמטרים שלה.

¿? אנחנו לא נעבור על כל הפרמטרים של הפקודה הזאת כי יש לה 19 פרמטרים "AacefHhjkLlmrSTuvwx"¿?

כעקרון יש שלושה כלים שאיתם אפשר להציג\לנהל פרוססים, בעזרת הפקודה ps בשילוב של כמה וכמה פרמטרים, הפקודה top והתוכנה htop, אנחנו נתחיל מהכי קל, הפקודה ps (לדעתי הפקודה הזאת זה הדבר הכי לא נוח שיש אבל הכי מהיר בשביל לקבל מידע פשוט), ברגע שנקיש את הפקודה, פשוט נקבל רשימה של הפרוססים שרצים לנו כרגע בסשן בטרמינל שלנו, עם המידע הבסיסי ביותר:
  • PID - מזהה תהליך Process ID
  • TTY - הטרמינל שממנו הריצו את הפקודה\תוכנה.
  • Time - הכוונה כאן לא כמה זמן רץ התהליך אלה "זמן ניצולת מעבד" זאת אומרת כמה זמן ה"תוכנה" ניצלה את המעבד, לכן בתצלום מסך זה "0".
  • CMD - הפקודה\תוכנה שרצה כולל הפרמטרים שהריצו עם הפקודה (אם היו).


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

הפרמטר הראשון f- המשמעות שלו "Full format listing" זאת אומרת פורמט מלא, לכל הפרמטרים כאן יתווספו כמה וכמה פרטים כמו כמו זמן:
  • Stime - הכוונה "Start Time" מתי הריצו את הפקדוה
  • PPID - לכל תהליך יש "תהליך הורה" Parent process אז במקרה הזה נוכל לראות את ה Parent Process ID גם.
וישנה אופציה לקבל עוד יותר פרטים בעזרת הפרמטר F- (זאת לא טעות, זה אותה אות רק אות גדולה), נקבל עוד יותר פרטים, שימו לב להבדל: סינטקס ps -f ו ps -F


א.2 אם נרצה להציג את כל הפרוססים שרצים לנו במערכת נריץ את הפקודה ps x:


אני יודע שרואים לא טוב, אז אני מצרף כאן צילום מסך שתוכלו לראות בצורה יותר נורמאלית וברורה:


במקרה של הפקודה הזאת, חשוב להבין מה המשמעות של ה-"?", אז במקרה הזה במידה והפרוסס הותחל בידי המערכת והוא לא הופעל משום טרמינל על ידי המשתמש יופיע הסימן "?" ואם זה משתמש, יהיה כתוב pts, או pts/2 במידה וזה מטרמינל מספר 2, כמו כן יש עמודה נוספת שנקראת STAT בתוך העמודה הזאת יש כמה סימנים שחשוב להבין מה הם אומרים:

R - הפרוסס כרגע רץ .
S (אות "S" גדולה) - התהליך בהמתנה "ישן" פחות מ 20 שניות.
I - הפרוסס במצב Idile.
D - הפרוסס מחכה לקלט-פלט.
Z - פרוסס "זומבי" זאת אומרת הוא סיים את התהליך שלו אבל התהליך הראשי עוד לא קיבל את המידע ממנו.
T - פרוסס עצר.
W - תהליך משתמש בזכרון ה Swap.
< - תהליך עם עדיפות (Priority) גבוהה.
N - תהליך עם עדיפות (Priority) נמוכה.
s - (אות "s") בקטן - מדובר על "תהליך ראשי".

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

להציג פרוססים של משתמש מסוים: ps -U, נוכל להקיש לאחר ה"U" את המשתמש הרצוי ונקבל את כל מה שהוא מריץ, בתור ברירת מחדל אם נריץ את הפקודה ps -u (והאות "u" תהיה בקטן) נקבל אך ורק מידע עבור כמה עמודות כמו שם משתמש, אחוז ניצול מעבד, pid ו cmd.

דוגמא ל : ps -u:


כשמתמשים ב "U" (אות גדולה) חובה להוסיף את המשתמש הרצוי אחרת נקבל שגיאה: ps -U user_name:

¿? אם נריץ את הפקודה עם המשתמש root בסוף נקבל בעמודה tty רק "?" ¿? 

לדוגמא, אני מריץ את הדפדפן FireFox נוכל לראות אותו כאן אם נוסיף את השימוש בפקודה grep (עליה למדנו בחלק 5)
ואז הפקודה תהיה בנויה בצורה הזאת : ps -U lev|grep firefox



א.4 להציג את כל הפרוססים של המשתמש שלכם ps -ux:


א.5 להציג פרוססים ועמודות מסוימות ps -e -o pid,uname,pcpu,pmem:


א.6 נגיד ואנחנו רוצים לעשות את שם העמודות יותר קריא, אפשר לשנות את שם העמודות (זה לינוקס :) ):

ps -e -o pid=PID,uname=USERNAME,pcpu=CPU_USAGE,pmem=%MEM,comm=COMMAND

אני אשנה את זה למשהו יותר "קריא" בשביל הנסיון:

ps -e -o pid=Tahalich,uname=meshtames,pcpu=meabed,pmem=zikron,comm=pkuda




2. איך להציג פרוססים לפי מספר ID?

להציג תהליכים תהליכים מסויימים לפי מספר ps -p process_id_number , PID (ניתן לשלב כמה PID ביחד):


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

a - הצגת מידע אודות כל התהליכים וכל המשתמשים.
u - הצגת שם המשתמש שמריץ את הפרוסס.
x - מוסיף גם את הטרמינלים מהם רצים התוכנות.

ואז מקבלים פקודה שנראת כך ps -aux ומקבלים המון מידע שימושי:

¿? התצורה הזאת היא התצורה השימושית ביותר בפקודה ps ממה שאני ראיתי ברשת¿?


מי שרוצה לקרוא על כל האפשרויות של הפקודה הזאת, יכול להקיש בטרמינל "man ps" ולקבל את כל המידע אודות הפקודה הזאת.

3. איך לעצור פרוססים בלינוקס?

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

מאחורי הקלעים, כשאנחנו מפעילים את הפקודה "kill" אנחנו בעצם שולחים "סימן kill" לפרוסס שאנחנו רוצים לעצור, אותו סימן נקרא בלינוקס "סיגנל" בשביל לראות את כל הסיגנלים אנחנו נריץ את הפקודה Kill -l.

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

להלן הרשימה:


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

  • 1) מספר 15 "Sigterm" -  המשמעות היא Terminate "חסל" הסיגנל הזה, הוא גם זה שנשלח בתור ברירת מחדל כשאתם כותבים נטו את הפקודה Kill, ובעיקרון מתבצע Soft kill (קצת נוגד את השם הייתי אומר..).
  • 2) מספר 9 "SIGKill" - כבה תהליך בכוח.

ישנן כמה דרכים להשתמש בפקודה הזאת:
א. לרשום kill proces id  - לצורך דוגמא : kill 6400 , במקרה שלי אני אסגור את FireFox שהמספר ID שלו זה 7146:



ב. לרשום  kill -[signal_number] process id לצורך דוגמא: kill -9 9442, גם הפעם נסגור את FireFox:







ג. לרשום kill -s [signalname] process id לצורך דוגמא: kill -s SIGTERM 9442


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





4. איך לתת עדיפות (Priority) לתהליך (Process) מסוים?

מאוד מעניין לראות שככל שאתה נכנס יותר לעומק הדברים בלינוקס, אתה מגלה שבעצם כל אחד "המציא" משהו למערכת הזאת ותרם בצורה כזאת או אחרת, בנוסף רואים עד כמה המוח של אותם האנשים חשב בצורה אחרת, ממש כמו שסטיב ג'ובס הפך את המשפט "Think different" לסוג של "מותג", ניהול "עדיפות" של תהליכים בלינוקס נקרא "נחמדות" או באנגלית "Niceness" כן, כן, כמו ששמעתם, צריכים להיות נחמד למחשב ! 🤣 ובעצם ניהול העדיפות של הפרוסס מתבצע בעזרת שתי פקודות האחת היא nice והשניה היא renice.

4.א הפקודה renice - להכיל עדיפות על תהליך (Process) שכבר רץ.

ראשית, נבדוק אילו פרוססים רצים בסשן שלנו בעזרת תצוגה "ארוכה" ps -l במקרה שלי נקבל שלושה תהליכים שרצים :


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

F- הדגלים.
S או STAT - מצב התהליך.
PID - המספר המזהה של התהליך.
PPID - המספר המזהה של תהליך האב.
C או CP השימוש במעבד ומידע על התזמון.
PRI - העדיפות של התהליך.
NI -  ערך ה NICE.
ADDR - כתובות הזיכרון של התהליך.
SZ - השימוש בזיכרון וירטואלי.
WCHAN  - מזהה, למשל כתובת זיכרון, לאירוע שהתהליך ממתין לו, אם קים כזה.
TT או TTY - המסוף שקשור לתהליך.
TIME - משך הזמן בו התהליך השתמש במעבד.
CMD או COMMAND - שם התהליך, כולל הארגומנטים לפקודה, אם היו. לעיתים קרובות ברישום קטוע.

מה ההבדל בין Priority לבין Niceness בלינוקס?

חשוב להבין מה ההבדל בין PRI ("Priority" עדיפות תהליך) ו NI (Niceness "נחמדות תהליך"), בעיקרון ההבדל הוא כזה, PRI נקבע על ידי הליבה של לינוקס, אתם בטח מכירים את המושג "Kernel" (שזה הפירוש של המילה "ליבה" באנגלית), העדיפות במקרה הזה נקבעת לתהליכים שרצים בזמן אמת ומסומנת על ידי "RT", התווך של התהליכים האלה הוא מ-0 עד 139, העדיפות לתהליכים של הליבה (המערכת) הם מ-0 עד 99 והתווך לתהליכים של משתמש הם מ 100 עד 139.

במקרה של NICE - המשתמש הוא זה שיכול להחליט על עדיפות המשאבים שתקבל התוכנה, זאת אומרת שהמשתמש יכול להגיד ללינוקס "תשמע, תריץ את התוכנה הזאת לפני התהליכים האחרים ותן להם משאבים" כמו כן בתור משתמש עם הרשאות אדמין (ROOT) תוכלו לתת עדיפות גם לתהליכים של המערכת, התווך הוא מ 20- עד 20 כאשר הכי גבוהה זה 20-,
ברירת המחדל הוא "0" והעדיפות הכי נמוכה היא "20" גם כן.

בשביל לשנות תהליך, צריך להשתמש ב SUDO אבל רק אם אנחנו מעלים את העדיפות של התהליך, בהורדת עדיפות אין צורך בשימוש ב SUDO, אז במקרה הזה הרצתי את vi (עורך הטקסט שמגיע מובנה בלינוקס, בהמשך יהיה מדריך שלם רק על vim\vi זה בערך אותו דבר וגם על עוד עורך טקסט ידוע בשם nano, אז כרגע רק נריץ אותו לצורך הדגמה ברקע) פעמיים בשביל שאפשר יהיה לבצע איתו שינויים, לצורך כך נריץ את הפקודה vi, יפתח לנו ממשק של עריכת טקסט, ונלחץ במקלדת את ctrl+z זה ישים את התוכנה "ברקע", ואז נקיש את ps -l ונוכל לראות את vi נמצא ברשימת התהליכים של הסשן שלנו:


עכשיו לצורך שינוי העדיפות אנחנו נריץ את הפקודה ובה נוסיף את המספר מ 20- עד 20 ואת מספר המזהה של התהליך בצורה הבאה: [sudo renice [nice_value] -p [process_id ואז נתבקש להכניס סיסמא של המשתמש שלנו ובעצם נוכל לראות את השינוי שנעשה במקרה שלי זה יראה ככה: sudo renice -10 -p 12457 ובעצם מה שקורה במקרה הזה, נעלה את העדיפות של התהליך הזה למקום כמעט הכי גבוהה שהוא "20-", נריץ שוב פעם את ps -l:


לצורך הדגמה, אני אוריד את רמת העדיפות ולא אשתמש ב  renice -[nice_value] -p [process_name] :sudo, ובגלל שאני מוריד את רמת העדיפות (מתקרב לכיוון ה-"0") אני לא צריך להשתמש ב sudo.
במקרה שלי זה יראה כך: renice +10 -p 12457 


4.ב הפקודה Nice - להפעיל תהליך עם הגדרת עדיפות מראש - שכשירוץ הוא יהיה מתועדף.

לצורך הפעלת תוכנה עם תיעדוף מראש נשתמש בפקודה nice בצורה מאוד פשוטה nice -n 10 vim ואז התוכנה פשוט תרוץ עם תיעדוף,סינטקס של הפקודה:  nice -n[nice_vlue] [process_name] 


לאחר מכן נפעיל את vi שוב פעם ובשביל להציג את ההבדל בתיעדוף נריץ את ps -l:


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

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

5.א.מה ההבדל בין פקודה שאנחנו רואים לבין לבין תוכנה מאחורי הקלעים?
לצורך הסבר נגיד ואנחנו פותחים חלון ומבצעים פקודת ls , או כל פקודה פקודה אחרת, אנחנו נקבל פלט, הפלט שאנחנו רואים והפקודה שהרצנו, היא פקודה שהיא "מקדימה" ולא מאחורי הקלעים, זאת אומרת היא לא רצה "ברקע" בתור "TASK" (משימה), היא אומנם מאוד קצרה, אבל היא מול העיניים, באנגלית זה נקרא "Foreground task" פעולות שרצות ברקע נקראות "Background task".

5.ב.איך להריץ פקודה ולשים אותה מאחורי הקלעים?
לצורך הדגמה ניקח את הפקודה פינג, שהיא רצה בהמשכיות, וניתן פינג בלי הפסקה לגוגל נגיד, בצורה הזאת ping 8.8.8.8
ניתן לפקודה להתחיל לרוץ ולאחר מכן, נלחץ על ctrl+z, מה שיקרה , אנחנו נשוב לחלון הטרמינל שלנו אבל הפקודה תהפוך להיות משימה ברקע, או בשפת לינוקס "job":


5.ג איך להעביר תהליך מה"רקע" לקדמת ה"במה" - הפקודה fg?
בשביל להגיע חזרה לפקודה הזאת, אני יכול לעשות כמה דברים, ראשית להקיש "fg" (קיצור של Foreground) אז התהליך שרץ מאחורי הקלעים יעבור להיות "מקדימה" ונוכל לראות אותה עובדת :


ובעצם ברגע זה אני יכול להפסיק את הפקודה כאילו הרצתי אותה לפני רגע, בעזרת ctrl+c כמו תמיד, והפקודה תעצור:


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


אם נקיש את הפקודה fg נכנס חזרה לתוכנה, בשביל "להרוג" את vi אפשר להקיש [kill -9 [process_id ואז נקבל תגובה שהתוכנה נסגרה:




נגיד ויש לי 15 ג'ובים ואני רוצה להרוג את כולם ביחד, נקיש `kill -9 `jobs -ps - הסימן ששמתי לפני ה - JOBS הוא סימן של "גרש" ,זה נמצא מעל לכפתור ה-TAB במקלדת:


נבדוק תחילה שיש ג'ובים שרצים על ידי הפקודה jobs, לאחר מכן נקיש את פקודת ה"חיסול":




לאחר מכן נריץ את פקודת ה"חיסול" לא נקבל שום אינדקציה על כך שקרה משהו לכן רק כשנבדוק (נריץ Jobs), נראה שכל הג'ובים הפכו להיות killed:


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

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


זאת אומרת נקיש fg 1 ואז נראה את הפינג רץ ואז נוכל לעצור אותו:



תסכימו איתי שזה הרבה יותר נוח מאשר לפתוח 4 חלונות של פינג לדוגמא?

6.איך לנהל פרוססים בצורה יותר נוחה בלינוקס?
כמו שראינו ניתן לנהל פרוססים עם פקודות אבל זה לא ממש נוח, כמו רוב הדברים בלינוקס, כפי שראינו גם כן, ניתן לנהל פרוססים עם כמה וכמה תוכנות, האחת שמגיע מובנת בתוך מערכת ההפעלה בשם top והשניה שלא מגיע מובנת בתוך מערכת ההפעלה שנקראת htop אותה גם נתקין ונעבור עליה, אני אעבור על שתיהן ועל הפונקציות העיקריות.
אני בטוח שבסוף המדריך תגידו לי "אז למה לא סיפרת לנו על זה ישר?!" זה כי צריך ללמוד עוד דברים חוץ מ"קל" 😇.

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

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


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

פירוש מלא של החלק העליון של top:
  • ליד השורה הראשונה  top -  נוכל לראות שעה נוכחית, כמה זמן המערכת דלוקה, כמה משתמשים מחוברים, וממוצע עומס על המעבד.
  • בשורה השניה Tasks - נוכל לראות את כמות הפרוססים שיש לנו במערכת, כמה מהם רצים, כמה מהם עצרו וכמה מהם זומבי (מה זה זומבי מתואר למעלה)
  • השורה שלישית CPU - אחוז ניצלת מעבד, העמודה us היא "תחום משתמש" User Space, דברים שרצים ב"תחום" המשתמש, אם התקנתם ליברה אופיס, אז הוא ירוץ ב"תחום משתמש", בעצם כל מה שלא מופעל בגדול על ידי מערכת ההפעלה, רץ ב"תחום משתמש", העמודה לידו sy היא "תחום מערכת" זאת אומרת "System Space" לידו, מה שלמדנו יותר מוקדם ni שזה niceness, העמודה הבאה id היא idle, כמה זמן המעבד היה ב idle, זאת אומרת כמה שהמספר יותר גבוהה, ככה זמן ה idle (הזמן שהמעבד לא עושה כלום) יותר ארוך, העמודה wa היא עמודה שאומרת "waiting" זאת אומרת כמה זמן משימה כלשהיא מחכה לקבלת קלט או פלט, ככל שהאחוז יותר גבוהה, ככה זה יותר גרוע, כי זה אומר שהשרת שלנו מחכה למשהו, וזה לא אמור להיות ככה, הוא לא אמור לחכות לשום דבר, העמודה hi , מדברת על כמה זמן המעבד מבזבז על איבוד מידע מחומרה, והעמודה si מציינת כמה זמן המעבד מבזבז זמן על איבוד של תוכנה, בימינו כמעט ולא תתרכזו בזה, החלק האחרון st מראה כמה זמן המעבד הוירטואלי מחכה למעבד הפיזי, גם בזה כמעט ולא תגעו בימינו לכן זה לא כל כך משנה.
  • השורה הרביעית Mib Mem - כמה זכרון RAM יש לנו בכללי, כמה זכרון פנוי, כמה בשימוש, כמה זכרון יש ב"קאש".
  • השורה החמישית Mib Swap - כמה זכרון וירטואלי יש לנו בכללי, כמה פנוי, כמה בשימוש, וכמה ניתן להשתמש.

פירוש מלא של העמודות בחלק התחתון:

PID - מספר תהליך Process ID.
USER - איזה משתמש מריץ את התהליך.
PR - תיעדוף PRIORITY של תהליך.
NI - כמה NICENESS יש לתהליך.
VIRT - כמה ניצולת של זכרון וירטואלי.
RES - אחוז ניצול RVM.
SHR - אחוז ניצולת זכרון שיתופי.
CPU - אחוז ניצול מעבד.
MEM - אחוז ניצול מעבד.
TIME - כמה זמן ניצל המעבד עבור איבוד התהליך.

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



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


אם נגיד אנו רוצים לראות מה התהליך שמנצל הכי הרבה זכרון, נלחץ על shitf+m 


אם אני רוצה לשנות את מהירות ה"עדכון" של התוכנה, נלחץ על האות "D" ואז נוכל להכניס את זמן הרענון החדש
במקום המיועד לו:


שימו לב, ככל שהמספר יהיה גבוהה יותר, ככה קצב ה"עדכון" יהיה נמוך יותר

נגיד שאנחנו רוצים "לכבות" תהליך מסוים שמנצל יותר מדי זכרון או מעבד, נלחץ במקלדת על k ונתבקש להכניס את מזהה התהליך (Process ID) של תהליך שאנחנו רוצים להרוג, לאחר שהקשנו את מספר התהלי, המערכת תשאל אותנו איזה סיגנל אנחנו רוצים לשלוח לתהליך, כמו שלמדנו יותר מוקדם, סיגנל מספר 15 הוא זה שמבצע "כיבוי", לכן נקיש 15 או 9 (הסבר על שתיהם יש למעלה). 


נגיד ואנחנו רוצים לקבוע niceness בתוך top, נלחץ על r ושם נכניס את הערך nice שאנחנו רוצים לקבוע (יותר מוקדם למדנו על הערכים והתווך של ה nice)


כלל מקשי הקיצור ב top:
  • חץ למעלה \ חץ למטה - ניווט
  • q - לצאת
  • shift-p - סידור עמודה לפי ניצול מירבי של מעבד
  • shift-m - סידור עמודה לפי ניצור מירבי של זכרון
  • shift-t - סידור עמודה לפי זמן ריצה של תהליך
  • shift-n - סידור עמודה לפי מספר תהליך (Process ID)
  • t - משנה את התצוגה של המעבד בחלק העליון
  • m - משנה את התצוגה של הזכרון בחלק העליון
  • shift-r - משנה את הסדר של תצוגת התהליכים הפוך מאשר ברירת מחדל
  • с - לחיצה על האות C מראה נתיב מלא של תהליך.
  • shift-v - מראה את ההיררכיה של תהליך "ילד" תהליך "הורה"
  • k - להפסיק תהליך על ידי שליחת סיגנל ברירת מחדל "SIGTERM"

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

6.ג איך להתקין htop בלינוקס?
אם תנסו להריץ את הפקודה המפעילה htop, לינוקס תגיד לכם "תשמע אין לי דבר כזה, אבל אתה יכול להתקין אותה עם הפקודות הבאות.."



כרגע אני לא אתן יותר מדי הסבר אודות הפקודה apt (בהמשך יגיע מדריך שלם על apt) ככה שכרגע לצורך התקנה נבצע את הפעולה הבאה: sudo apt install htop ונלחץ ENTER, לאחר מכן נצטרך להכניס את הסיסמא שלנו ונלחץ ENTER עוד פעם ובעצם בתוך שניות, המערכת הורידה והתקינה את התוכנה שאנחנו צריכים:


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


6.ד עבודה עם htop.

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

ניתן לבצע את אותו הדבר על ידי לחיצה על shift-p, סינון לפי ניצולת זכרון נלחץ על shift-m.



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

6.ה ניווט ב htop.
ניתן לנווט בעזרת מקשי החצים במקלדת בשביל להעלות למעלה או למטה.

6.ו חיפוש של פרוסס ב Htop.

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


כמו כן ניתן לסנן את הרשימה לפי משתמש, על ידי לחיצה על כפתור ה u ומצד שמאל תופיע רשימה כל המשתמשים (כולל משתמשים שהם משתמשי מערכת), דפדוף בהם יביא לפרוססים שמריץ אותו משתמש:



6.ז איך לסגור פרוסס ב Htop.

במידה ונרצה לסגור תוכנה (להרוג פרוסס), נלחץ פעמיים מהירות על F9 במקלדת, ומצד שמאל נקבל רשימה של הסיגנלים שאנחנו יכולים לשלוח לפרוסס (דיברנו עליהם היום כבר כמה פעמים), במקרה הזה אני בוחר vi ואלחץ על סיגנל 15, ולאחר מכן אלחץ
ENTER:


6.ח קבלת עזרה אודות htop

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




6.ט מקרא htop

כמו ב top, כאן התצוגה זהה מבחינת עמודות, פרט לחלק העליון שאני מאמין שהכל ברור, המספרים מצד שמאל אלו ליבות המעבד, אחוזי הניצול, מתחת לזה mem, זה הזכרון הפיזי, כאן ניתן לראות אותו ב GB מצד ימין, ומתחת לזה, זכרון וירטואלי, מה שנקרא בלינוקס swap, בחלק העליון מצד ימין, אלו תהליכים, ממוצע עומס על המעבד, וכמה זמן המחשב דלוק:



זה הכל להפעם, במדריך זה למדנו על ניהול פרוססים.

כמו תמיד לכל שאלה המייל שלי levl@leidertech.co.il

וכמובן סרטון מצולם: