מודול 01 לינוקס והמעטפת
Operating Systems
Learning Hours: 3

לינוקס והמעטפת - יסודות והתמצאות

המודול הפותח של הסדרה. נכיר את לינוקס ליבה (Kernel) בקוד פתוח שנכתבה ב-1991 ותואמת לעקרונות UNIX ונבין מהי הפצה ולמה נעבוד ב-Ubuntu. נראה את שלוש שכבות המערכת (Kernel, Shell ותוכניות) ונעקוב אחרי מה שקורה מהרגע שמקלידים פקודה ועד שהיא מתבצעת.

מכאן עוברים לעבודה מעשית בטרמינל: קריאת ה-prompt וההבדל בין $ ל-#, מבנה של כל פקודה (פקודה, אפשרויות, ארגומנטים), והפקודה הראשונה, ls. המודול מקנה גם שלוש מיומנויות שילוו את הלומד לאורך כל הסדרה: השלמה אוטומטית ב-Tab, עבודה עם היסטוריית הפקודות, ומציאת תיעוד לבד עם man ו-apropos.

מודול 02 מערכת הקבצים
Operating Systems
Learning Hours: 3

מערכת הקבצים: ניווט, ניהול וקישורים

סיור מודרך בעץ מערכת הקבצים של לינוקס: מה נמצא ב-/home, ‏/etc, ‏/var, ‏/tmp ו-/usr, ואיך מתמצאים בו בעזרת נתיבים מוחלטים ויחסיים והקיצורים ., .., ~ ו--. נלמד לנווט (pwd, cd), ליצור ספריות וקבצים, להעתיק, להעביר ולמחוק — ונבין למה בלינוקס אין סל מיחזור ולמה rm -rf דורשת זהירות מיוחדת.

החלק השני של המודול חושף את מה שקורה מתחת לשם הקובץ: inode, וההבדל בין קישור קשיח (ln) לקישור סימבולי (ln -s), כולל זיהוי קישור שבור ובחירה נכונה ביניהם. המודול נחתם בבדיקת שטח דיסק עם df ו-du.

מודול 03 טקסט עריכה וחיפוש
Operating Systems
Learning Hours: 3

טקסט: צפייה, עריכה וחיפוש

בלינוקס כמעט הכול הוא טקסט: קבצי הגדרות, לוגים, סקריפטים. המודול מלמד לקרוא טקסט בכלי המתאים (cat, less, head, tail ומעקב חי עם tail -f), לספור ולהשוות (wc, diff) ולמיין ולספור כפילויות (sort, uniq -c). משם עוברים לעריכה בטרמינל: nano לעבודה יומיומית, ו-vim ברמה שמאפשרת לערוך, לשמור ובעיקר לצאת בלי להיתקע.

החלק השני עוסק בחיפוש: grep לחיפוש בתוך קבצים, עם האפשרויות החשובות וביטויים רגולריים בסיסיים, ו-find לאיתור קבצים לפי שם, סוג, גודל וזמן שינוי כולל ביצוע פעולה עם -exec. המודול נחתם בהשוואה בין find, ‏locate ו-which ומתי לבחור בכל אחד

מודול 04 הרכבת פקודות
Operating Systems
Learning Hours: 3

הרכבת פקודות: הפניה, צינורות ושרשור

הכוח האמיתי של לינוקס הוא בחיבור בין כלים קטנים. המודול מציג את שלושת הזרמים  stdin, ‏stdout ו-stderr  ומלמד להפנות כל אחד מהם: פלט לקובץ (> ו->>), קלט מקובץ (<), ושגיאות בנפרד (2> ו-2>&1, כולל החשיבות של סדר ההפניות), וגם להשליך פלט מיותר ל-/dev/null.

משם בונים שרשראות עיבוד עם צינורות (|), שומרים ורואים בו-זמנית עם tee, ומעבירים רשימות לפקודות עם xargs  בבטחה, גם כשיש רווחים בשמות. המודול נחתם בקוד היציאה $? ובשרשור מותנה עם &&, ‏|| ו-;, שמאפשר לבנות פקודות שממשיכות רק כשהשלב הקודם הצליח.

"מודול 05 הרשאות ו"סודו
Operating Systems
Learning Hours: 3

משתמשים, הרשאות ו-sudo

לינוקס היא מערכת רב-משתמשית, וההרשאות הן מה שמונע ממשתמש אחד לפגוע בעבודה של אחר או במערכת עצמה. המודול מתחיל בזהות: מי אני (whoami, id, groups), ואיפה מוגדרים המשתמשים והקבוצות (/etc/passwd, ‏/etc/group, ‏/etc/shadow). משם נפענח את שורת ls -l תו אחר תו, ונבין את המשמעות של r, w ו-x  שונה בקובץ ושונה בספרייה.

החלק המעשי מלמד לשנות הרשאות (chmod בצורה סימבולית ובצורה אוקטלית, עם הערכים הנפוצים 644, ‏755 ו-600), לשנות בעלות (chown, ‏chgrp) ולהבין את umask. המודול נחתם במשתמש root: למה לא עובדים כמוהו, מה sudo עושה בפועל, ההבדל בין sudo, ‏su ו-sudo -i, וכללי שימוש בטוח.

מודול 06 תהליכים שירותים ולוגים
Operating Systems
Learning Hours: 3

תהליכים, שירותים ולוגים

המודול עונה על שלוש שאלות האבחון של כל מנהל מערכת: מה רץ עכשיו, מה רץ תמיד, ומה קרה קודם. בחלק הראשון נכיר תהליכים PID, ‏PPID ועץ התהליכים ונלמד לצפות בהם עם ps ועם top/htop, כולל קריאת load average. נעביר תהליכים בין חזית לרקע (&, ‏Ctrl+Z, ‏bg, ‏fg, ‏jobs), נריץ תהליך שישרוד ניתוק (nohup), ונסיים תהליכים נכון עם סיגנלים ולמה kill -9 הוא לעולם לא הצעד הראשון.

החלק השני עוסק בשירותים ובלוגים: מהו systemd, ניהול שירותים עם systemctl (status, ‏start, ‏stop, ‏enable וההבדל בין start ל-enable), וקריאת יומן המערכת עם journalctl ומסנניו. המודול נחתם בקבצי הלוג המסורתיים ב-/var/log ובשאלה מתי להשתמש בכל אחד.

מודול 07 ארכוב תוכנה וגישה מרחוק
Operating Systems
Learning Hours: 3

ארכוב, ניהול תוכנה וגישה מרחוק

שלושה נושאים מעשיים שכל עבודה עם שרת דורשת. הראשון הוא ארכוב ודחיסה: ההבדל בין השניים, gzip ומשפחתו, ו-tar יצירה, צפייה בתוכן לפני חילוץ, וחילוץ למקום מוגדר לצד zip לתאימות עם Windows. השני הוא ניהול תוכנה ב-Ubuntu עם apt: ההבדל בין update ל-upgrade, התקנה, הסרה וחיפוש, מאגרים וחתימות דיגיטליות, PPA ו-snap.

הנושא השלישי הוא גישה מרחוק: התחברות לשרת ב-ssh, הבנת אזהרת מפתח המארח, יצירת זוג מפתחות והתחברות ללא סיסמה, קובץ ~/.ssh/config, והעברת קבצים בין מכונות עם scp ו-rsync כולל משמעות הלוכסן הסופי והרצת ניסיון לפני סנכרון שמוחק.

מודול 08 משתנים וסקריפטים
Operating Systems
Learning Hours: 3

משתני סביבה וכתיבת סקריפטים ב-Bash

המודול המסכם של הסדרה לוקח את כל מה שנלמד ושם אותו בקובץ. בחלק הראשון נכיר משתנים: משתנה מעטפת והתחביר שמפיל מתחילים, ההבדל בין משתנה מעטפת למשתנה סביבה (export), המשתנים המרכזיים ו-PATH ומה באמת אומרת ההודעה "command not found". נלמד לשמור הגדרות לתמיד ב-.bashrc וב-.profile, לטעון אותן עם source, וליצור קיצורי דרך עם alias.

החלק השני הוא כתיבת סקריפטים: shebang, ‏chmod +x והרצה, שלוש דרכי הרצה והבדלים ביניהן, ארגומנטים ($0, ‏$1, ‏$@, ‏$#), קלט עם read, תנאים עם if ולולאות for ו-while. המודול נחתם בכללי כתיבה בטוחה (set -euo pipefail, מרכאות סביב משתנים, מצב dry-run) ובסקריפט מסכם שמשתמש בכלים מכל הסדרה.