Linux Essentials — יסודות העבודה בלינוקס: מהטרמינל הראשון ועד קבצים, הרשאות, חבילות, תהליכים, שירותים ורשת. הנושא מבוסס על המצגת המצורפת בת 28 השקופיות; הפקודות וההסברים הורחבו לתרגול עצמאי.
1. Unix, GNU, Linux והפצות
Unix הוא הבסיס ההיסטורי; פרויקט GNU מספק כלים ותוכנה חופשית; Linux היא הליבה שמנהלת מעבד, זיכרון, דיסקים, התקנים ורשת. הפצה מחברת ליבה, כלי מערכת, מנהל חבילות והגדרות למערכת מוכנה. Ubuntu מבוססת על Debian; Fedora ו־RHEL שייכות למשפחת Red Hat. דרייברים מאפשרים לליבה לעבוד עם החומרה.
- תוכנה מסחרית נמכרת בתשלום; היא יכולה להיות גם בקוד פתוח. Freeware חינמית לשימוש אך לא בהכרח פתוחה; Shareware מוגבלת או לניסיון.
- Open Source מאפשר גישה לקוד לפי תנאי רישיון. FSF מקדמת חירויות משתמש; OSI מגדירה עקרונות קוד פתוח. GPL מחייבת שמירה על תנאי הרישיון בעת הפצת יצירות נגזרות מכוסות.
2. הטרמינל, Shell וקבלת עזרה
הטרמינל הוא החלון; ה־Shell מפרש פקודות ומפעיל תוכניות. Bash נפוצה, ויש גם zsh ו־fish. /etc/shells מציג Shells שמוגדרים במערכת. בניגוד ל־CMD, נתיבי Linux משתמשים ב־/ ושמות קבצים מבחינים בין אותיות גדולות וקטנות. uname -r מציגה גרסת ליבה; /etc/os-release מציג את ההפצה.
3. נתיבים, קבצים ותיקיות
pwd מציגה את התיקייה הנוכחית; ls -la מציגה גם קבצים מוסתרים, בעלים והרשאות; cd מחליפה תיקייה. נתיב שמתחיל ב־/ הוא מוחלט; נתיב אחר יחסי לתיקייה הנוכחית. . היא התיקייה הנוכחית, .. ההורה, ~ הבית. שמות עם רווחים עוטפים במירכאות.
- mkdir -p יוצר גם תיקיות ביניים. touch יוצר קובץ ריק אם אינו קיים, אחרת מעדכן זמנים. cp מעתיקה; mv מעבירה או משנה שם.
- אם backup כבר קיימת, cp -r project backup/ יוצר backup/project. בהרצה חוזרת קבצים קיימים עלולים להידרס — בדקו את היעד קודם.
- /home — משתמשים; /etc — הגדרות; /var/log — יומנים; /tmp — זמניים; /root — הבית של root. קובץ ששמו מתחיל בנקודה מוסתר מהתצוגה הרגילה של ls.
4. עריכה, חיפוש והפניית פלט
nano notes.txt פותחת עורך אם הוא מותקן: Ctrl+O ואז Enter לשמירה, Ctrl+X ליציאה. cat מתאימה לקובץ קצר; less לקריאה לפי עמודים (q ליציאה). grep מחפשת טקסט בתוך קבצים; find מחפשת קבצים לפי מאפיינים. ב־grep הדגלים -i, -n, -r הם התעלמות מרישיות, מספרי שורות וחיפוש בתיקיות.
- > מחליף את התוכן הקיים; >> מוסיף בסוף. | מעביר פלט לפקודה הבאה. && מפעיל את הבאה רק כשהקודמת הצליחה.
- tail -f מחכה לשורות חדשות; עצרו עם Ctrl+C. בתרגיל grep צפויה שורה 2:ERROR: test. המירכאות סביב *.log מונעות מה־Shell להרחיב את התבנית לפני find.
5. משתמשים, הרשאות ו־sudo
ls -l מציגה סוג, הרשאות ובעלים. שלוש שלישיות ההרשאות הן בעלים, קבוצה ואחרים: r=4 קריאה, w=2 כתיבה, x=1 הפעלה. בתיקייה x מאפשרת מעבר לתוכה; מחיקת קובץ תלויה בהרשאות תיקיית ההורה. chmod משנה הרשאות; chown משנה בעלים וקבוצה.
6. חבילות ותהליכים
ב־Debian/Ubuntu, apt update מעדכנת מידע על חבילות — לא את התוכנות עצמן. apt install מתקינה; apt upgrade משדרגת מותקנות; apt remove מסירה. בדקו את רשימת השינויים לפני אישור. ps aux מציגה תהליכים ו־PID; top מציגה שימוש במשאבים (q ליציאה). kill PID שולחת SIGTERM, בקשת סיום רגיל; SIGKILL עם kill -9 היא מוצא אחרון.
7. שירותים, יומנים, רשת ו־SSH
שירות הוא תוכנה שפועלת ברקע. systemctl status בודקת מצב; start מפעילה עכשיו; enable מגדירה הפעלה באתחול ואינה בהכרח מפעילה מיד. journalctl מציגה יומני systemd. בדוגמאות SSH נדרש שרת מותקן: ב־Ubuntu/Debian החבילה היא openssh-server והשירות ssh; ב־Fedora/RHEL השירות בדרך כלל sshd.
ip a מציגה כתובות וממשקים; ip r מציגה נתיבים ושער ברירת מחדל. ping ל־IP בודקת תגובת ICMP — היעדרה אינה מוכיחה שהשרת כבוי. getent hosts בודקת פתרון שמות לפי הגדרות המערכת, כולל /etc/hosts ו־DNS. להתחברות לשרת מורשה החליפו user ו־server-ip בפקודה ssh user@server-ip; ודאו כתובת, שירות, פורט, סיסמה או מפתח וטביעת אצבע של השרת.
- No such file — בדקו pwd, נתיב ורישיות. command not found — בדקו כתיב, התקנה ו־PATH.
- Permission denied — בדקו id ו־ls -l; ב־SSH בדקו גם שם משתמש ושיטת הזדהות. Connection refused — בדקו שירות מאזין ופורט; חומת אש יכולה גם לדחות חיבור.
8. תרגול עצמאי — 15 דקות
במכונת התרגול, צרו תיקיית עבודה, יומן, עותק גיבוי וקובץ אישי. הריצו פעם אחת; אם כבר תרגלתם למעלה, בדקו קודם את הקבצים כדי לא לדרוס תוכן חשוב.
- grep מציגה 2:ERROR: test; find מציגה את היומן ואת עותק הגיבוי שלו.
- ls -l מציגה -rw------- לקובץ private.txt. הבעלים הוא המשתמש שלכם; גודל הקובץ הריק הוא 0.
- הסבירו: מה יקרה אם תחליפו >> ב־>? ולמה cp אינה mv? בדקו את התשובות על קובץ ניסיון בלבד.
9. סקריפט Bash ראשון
בתיקיית התרגול פתחו nano hello.sh, הכניסו את התוכן הבא ושמרו. השורה הראשונה בוחרת מפרש; printf מדפיסה טקסט ושורה חדשה.
לאחר שמירה הוסיפו הרשאת הפעלה לבעלים והריצו. ./ מציין קובץ בתיקייה הנוכחית; התוצאה הצפויה היא Hello, Linux!.