דילוג לתוכן הראשי
ID Academia
Linux
מתחילים45 דקותעודכן לאחרונה: נושא 1 מתוך 2

Linux Essentials — יסודות העבודה בלינוקס

מכירים את Linux ו־Bash, מנהלים קבצים והרשאות, בודקים שירותים ורשת וכותבים סקריפט ראשון.

לא הושלם

מה תלמדו כאן

  • ניווט, חיפוש ועריכת קבצים ב־Bash
  • הרשאות, sudo וחבילות apt
  • בדיקת שירותים ורשת וכתיבת סקריפט ראשון

Linux Essentials — יסודות העבודה בלינוקס: מהטרמינל הראשון ועד קבצים, הרשאות, חבילות, תהליכים, שירותים ורשת. הנושא מבוסס על המצגת המצורפת בת 28 השקופיות; הפקודות וההסברים הורחבו לתרגול עצמאי.

1. Unix, GNU, Linux והפצות

Unix הוא הבסיס ההיסטורי; פרויקט GNU מספק כלים ותוכנה חופשית; Linux היא הליבה שמנהלת מעבד, זיכרון, דיסקים, התקנים ורשת. הפצה מחברת ליבה, כלי מערכת, מנהל חבילות והגדרות למערכת מוכנה. Ubuntu מבוססת על Debian; Fedora ו־RHEL שייכות למשפחת Red Hat. דרייברים מאפשרים לליבה לעבוד עם החומרה.

  • תוכנה מסחרית נמכרת בתשלום; היא יכולה להיות גם בקוד פתוח. Freeware חינמית לשימוש אך לא בהכרח פתוחה; Shareware מוגבלת או לניסיון.
  • Open Source מאפשר גישה לקוד לפי תנאי רישיון. FSF מקדמת חירויות משתמש; OSI מגדירה עקרונות קוד פתוח. GPL מחייבת שמירה על תנאי הרישיון בעת הפצת יצירות נגזרות מכוסות.
User → Terminal → Shell (Bash) → Programs → Linux kernel → Hardware
Linux distribution
├── Kernel + drivers
├── GNU and other system tools
├── Package manager (apt / dnf)
└── Configuration and applications
text

2. הטרמינל, Shell וקבלת עזרה

הטרמינל הוא החלון; ה־Shell מפרש פקודות ומפעיל תוכניות. Bash נפוצה, ויש גם zsh ו־fish. /etc/shells מציג Shells שמוגדרים במערכת. בניגוד ל־CMD, נתיבי Linux משתמשים ב־/ ושמות קבצים מבחינים בין אותיות גדולות וקטנות. uname -r מציגה גרסת ליבה; /etc/os-release מציג את ההפצה.

uname -r
cat /etc/os-release
cat /etc/shells
whoami
id
ls --help
man ls
bash

3. נתיבים, קבצים ותיקיות

pwd מציגה את התיקייה הנוכחית; ls -la מציגה גם קבצים מוסתרים, בעלים והרשאות; cd מחליפה תיקייה. נתיב שמתחיל ב־/ הוא מוחלט; נתיב אחר יחסי לתיקייה הנוכחית. . היא התיקייה הנוכחית, .. ההורה, ~ הבית. שמות עם רווחים עוטפים במירכאות.

mkdir -p ~/linux-practice/project/logs ~/linux-practice/backup
cd ~/linux-practice
pwd
ls -la
mkdir "My notes"
touch project/notes.txt
cp project/notes.txt project/notes-copy.txt
mv project/notes-copy.txt project/renamed.txt
cp -r project backup/
ls backup/project
rm -i project/renamed.txt
bash
  • 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 הם התעלמות מרישיות, מספרי שורות וחיפוש בתיקיות.

cd ~/linux-practice
printf "INFO: started\nERROR: test\n" > project/logs/app.log
printf "INFO: finished\n" >> project/logs/app.log
cat project/logs/app.log
grep -in "error" project/logs/app.log
grep -rin "error" project/logs/
find . -type f -name "*.log"
head -n 5 project/logs/app.log
tail -n 5 project/logs/app.log
cat project/logs/app.log | grep "ERROR"
tail -f project/logs/app.log
bash
  • > מחליף את התוכן הקיים; >> מוסיף בסוף. | מעביר פלט לפקודה הבאה. && מפעיל את הבאה רק כשהקודמת הצליחה.
  • tail -f מחכה לשורות חדשות; עצרו עם Ctrl+C. בתרגיל grep צפויה שורה 2:ERROR: test. המירכאות סביב *.log מונעות מה־Shell להרחיב את התבנית לפני find.

5. משתמשים, הרשאות ו־sudo

ls -l מציגה סוג, הרשאות ובעלים. שלוש שלישיות ההרשאות הן בעלים, קבוצה ואחרים: r=4 קריאה, w=2 כתיבה, x=1 הפעלה. בתיקייה x מאפשרת מעבר לתוכה; מחיקת קובץ תלויה בהרשאות תיקיית ההורה. chmod משנה הרשאות; chown משנה בעלים וקבוצה.

-rw-r-----  →  640
-   regular file (d = directory)
rw- owner: 4 + 2 = 6
r-- group: 4     = 4
--- others:     = 0

600 → private file
644 → owner reads/writes; others read
700 → private directory
755 → owner has full access; others read/execute
text
cd ~/linux-practice
touch project/private.txt
chmod 600 project/private.txt
ls -l project/private.txt
whoami
id
bash

6. חבילות ותהליכים

ב־Debian/Ubuntu, apt update מעדכנת מידע על חבילות — לא את התוכנות עצמן. apt install מתקינה; apt upgrade משדרגת מותקנות; apt remove מסירה. בדקו את רשימת השינויים לפני אישור. ps aux מציגה תהליכים ו־PID; top מציגה שימוש במשאבים (q ליציאה). kill PID שולחת SIGTERM, בקשת סיום רגיל; SIGKILL עם kill -9 היא מוצא אחרון.

sudo apt update
sudo apt install tree
tree ~/linux-practice
ps aux
top
bash

7. שירותים, יומנים, רשת ו־SSH

שירות הוא תוכנה שפועלת ברקע. systemctl status בודקת מצב; start מפעילה עכשיו; enable מגדירה הפעלה באתחול ואינה בהכרח מפעילה מיד. journalctl מציגה יומני systemd. בדוגמאות SSH נדרש שרת מותקן: ב־Ubuntu/Debian החבילה היא openssh-server והשירות ssh; ב־Fedora/RHEL השירות בדרך כלל sshd.

systemctl status ssh
journalctl -u ssh -n 20 --no-pager
ip a
ip r
ping -c 4 8.8.8.8
getent hosts example.com
bash

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 דקות

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

mkdir -p ~/linux-practice
cd ~/linux-practice
mkdir -p project/logs backup
printf "INFO: started\nERROR: test\n" > project/logs/app.log
grep -in "error" project/logs/app.log
cp -r project backup/
find . -type f -name "*.log"
touch project/private.txt
chmod 600 project/private.txt
ls -l project/private.txt
bash
  • grep מציגה 2:ERROR: test; find מציגה את היומן ואת עותק הגיבוי שלו.
  • ls -l מציגה -rw------- לקובץ private.txt. הבעלים הוא המשתמש שלכם; גודל הקובץ הריק הוא 0.
  • הסבירו: מה יקרה אם תחליפו >> ב־>? ולמה cp אינה mv? בדקו את התשובות על קובץ ניסיון בלבד.

9. סקריפט Bash ראשון

בתיקיית התרגול פתחו nano hello.sh, הכניסו את התוכן הבא ושמרו. השורה הראשונה בוחרת מפרש; printf מדפיסה טקסט ושורה חדשה.

#!/bin/bash
printf "Hello, Linux!\n"
bash

לאחר שמירה הוסיפו הרשאת הפעלה לבעלים והריצו. ./ מציין קובץ בתיקייה הנוכחית; התוצאה הצפויה היא Hello, Linux!.

chmod u+x hello.sh
./hello.sh
bash

בדוק את עצמך

מה עושה apt update?

מה פירוש הרשאות 640?

איזה סימן מוסיף פלט בלי להחליף תוכן?

מה ההבדל בין systemctl start ל־enable?

העמוד הזה עזר לך?