אם פתחתם טרמינל וראיתם סמן מהבהב, אתם במקום הנכון. פקודות לינוקס הן לא רשימת קסמים שצריך לשנן בעל פה, אלא שפה קטנה ומעשית לעבודה עם תיקיות, קבצים, טקסט ותהליכים. ברגע שמבינים את התבנית, גם פקודות חדשות נראות פחות מאיימות.
המדריך הזה מיועד למי שרוצה לעבוד בידיים: לפתוח תיקייה, למצוא קובץ, לקרוא לוג, לעצור תהליך תקוע ולהבין מה בדיוק קרה. לא נבנה כאן מערכת שלמה, ולא ניכנס לנושאי ארכיטקטורה. נתמקד במה שכל מפתח, סטודנט או סקרן טכני צריך כדי להרגיש בבית בשורת הפקודה.
אם זו הפעם הראשונה שלכם עם טרמינל, כדאי לעבור גם על צעדים ראשונים. מי שמגיע מעולם פייתון יגלה מהר מאוד שהיכרות עם לינוקס חוסכת זמן בהרצת סקריפטים, בדיקת קבצים, ניהול סביבות עבודה וטיפול בשגיאות.
מה צריך להכין מראש
כדי להריץ את הדוגמאות במאמר מספיק אחד מהבאים:
- מחשב לינוקס רגיל עם מעטפת
bash. - macOS עם Terminal. רוב הפקודות יעבדו, אבל פלטים קטנים עשויים להשתנות.
- Windows עם WSL, כלומר סביבת לינוקס בתוך Windows.
כל הדוגמאות כאן מיועדות ל־Linux/macOS עם bash. הן יוצרות קבצים זמניים בתיקייה זמנית, ולכן בטוחות להרצה כמו שהן. בכל זאת, כדאי לפתח הרגל חשוב: לפני שמריצים פקודה שמוחקת, מזיזה או משנה הרשאות, קוראים אותה עד הסוף.
איך לחשוב על שורת הפקודה
פקודה בסיסית מורכבת בדרך כלל משלושה חלקים:
- שם הפקודה: למשל
ls,cd,grep. - אפשרויות: לרוב מתחילות במקף, למשל
-lאו-a. - יעד: קובץ, תיקייה, תבנית חיפוש או מזהה תהליך.
למשל, הפקודה ls -la /tmp אומרת: הצג את תוכן התיקייה /tmp, כולל קבצים מוסתרים, בפורמט מפורט.
| פקודה | מה היא עושה | מתי משתמשים בה |
|---|---|---|
pwd |
מציגה את התיקייה הנוכחית | כשלא בטוחים איפה נמצאים |
ls |
מציגה קבצים ותיקיות | כדי לראות מה יש בתיקייה |
cd |
עוברת לתיקייה אחרת | כדי לנווט בפרויקט |
mkdir |
יוצרת תיקייה | לפני פתיחת פרויקט או דמו |
touch |
יוצרת קובץ ריק או מעדכנת זמן שינוי | כשצריך קובץ בדיקה |
פקודות לינוקס לניווט: לדעת איפה אתם נמצאים
הדבר הראשון שצריך לשלוט בו הוא ניווט. הרבה טעויות קורות לא בגלל פקודה מסובכת, אלא בגלל שהרצנו אותה בתיקייה הלא נכונה.
הפקודה pwd מציגה את הנתיב הנוכחי. הפקודה cd מחליפה תיקייה. נקודה אחת, ., מייצגת את התיקייה הנוכחית. שתי נקודות, .., מייצגות את תיקיית האב.
cd ..— עלייה רמה אחת למעלה.cd ~— מעבר לתיקיית הבית של המשתמש.cd -— חזרה לתיקייה הקודמת.ls -l— תצוגה מפורטת.ls -a— כולל קבצים מוסתרים, ששמם מתחיל בנקודה.
דוגמה מלאה: יצירת סביבת בדיקה וניווט
#!/usr/bin/env bash
set -e
# Create a temporary demo directory
demo_dir="$(mktemp -d)"
# Move into the demo directory
cd "$demo_dir"
# Create nested directories and a text file
mkdir -p projects/demo
printf "hello from linux\n" > projects/demo/readme.txt
# Print current location and list files
pwd
find . -maxdepth 3 -type f | sortהסקריפט יוצר תיקייה זמנית, נכנס אליה, יוצר מבנה תיקיות וקובץ טקסט קטן, ואז מציג את המיקום ואת הקבצים שנוצרו. הפלט ייראה בערך כך:
/tmp/tmp.XYZ123
./projects/demo/readme.txtשם התיקייה הזמנית ישתנה בכל הרצה, וזה תקין. הרעיון החשוב הוא שהעבודה נעשית בתוך מקום מבודד, ולא בתוך תיקיית פרויקט אמיתית.
עבודה עם קבצים ותיקיות
אחרי שיודעים לזוז בין תיקיות, צריך לדעת ליצור, להעתיק, להעביר ולמחוק. כאן חשוב להיות מדויקים, כי פקודות כמו rm לא מעבירות לסל מחזור ברירת מחדל.
cp source.txt copy.txt— העתקת קובץ.mv old.txt new.txt— שינוי שם או העברה.rm file.txt— מחיקת קובץ.rm -r folder— מחיקת תיקייה ותכולתה.cat file.txt— הדפסת כל תוכן הקובץ.less file.txt— קריאה נוחה של קובץ ארוך.head file.txt— הצגת תחילת הקובץ.tail file.txt— הצגת סוף הקובץ.
הרגל טוב: לפני מחיקה, הריצו ls על הנתיב. אם אתם עומדים למחוק תבנית כמו *.log, בדקו קודם מה היא תופסת בעזרת ls *.log.
הרשאות בקצרה: למה לפעמים אי אפשר להריץ קובץ
במערכות לינוקס לכל קובץ יש הרשאות קריאה, כתיבה והרצה. אם יצרתם סקריפט בשם backup.sh והוא לא רץ, ייתכן שחסרה לו הרשאת הרצה.
הפקודה chmod +x backup.sh מוסיפה הרשאת הרצה. כדי לראות הרשאות משתמשים ב־ls -l. האותיות בתחילת השורה, כמו -rwxr-xr-x, מתארות מי יכול לקרוא, לכתוב ולהריץ.
חיפוש קבצים וטקסט: find, grep ו־regex
בפרויקט אמיתי לא תמיד יודעים איפה נמצא הקובץ או באיזה לוג מופיעה השגיאה. כאן נכנסות לתמונה הפקודות find ו־grep. הראשונה מחפשת קבצים לפי שם, סוג, עומק ועוד. השנייה מחפשת טקסט בתוך קבצים.
כאשר מוסיפים ביטויים רגולריים, או regex, אפשר לחפש תבניות ולא רק מילים מדויקות. למשל, ERROR|WARN מתאים לשורות שמכילות ERROR או WARN.
דוגמה מלאה: חיפוש שגיאות בקובצי לוג
#!/usr/bin/env bash
set -e
# Create a temporary demo directory
demo_dir="$(mktemp -d)"
cd "$demo_dir"
# Create sample log files
mkdir logs
printf "INFO app started\nWARN disk almost full\nERROR failed to save file\n" > logs/app.log
printf "INFO worker started\nINFO job done\n" > logs/worker.log
# Find log files and search for warning or error lines
find logs -type f -name "*.log" | sort
grep -En "ERROR|WARN" logs/*.logהחלק הראשון יוצר שני קובצי לוג. לאחר מכן find מציג את קובצי ה־.log, ו־grep -En מחפש שורות עם שגיאה או אזהרה. האפשרות -E מפעילה ביטויים רגולריים מורחבים, ו־-n מוסיפה מספר שורה.
פלט צפוי:
logs/app.log
logs/worker.log
logs/app.log:2:WARN disk almost full
logs/app.log:3:ERROR failed to save fileשימו לב ש־worker.log נמצא בחיפוש הקבצים, אבל אין בו שורות שמכילות אזהרה או שגיאה.
חיפושים שימושיים ביומיום
find . -type f -name "*.py"— מציאת קובצי פייתון מתיקייה נוכחית ומטה.grep -R "TODO" .— חיפושTODOבכל הקבצים שמתחת לתיקייה הנוכחית.grep -Rni "timeout" .— חיפוש לא תלוי אותיות גדולות/קטנות, עם מספרי שורות.find . -type f -size +10M— מציאת קבצים גדולים יחסית.
מי שכותב סקריפטים ב־פייתון ייתקל הרבה בשילוב הזה: חיפוש קובץ עם find, בדיקת תוכן עם grep, ואז הרצת סקריפט שמטפל בקבצים שנמצאו.
תהליכים: לראות מה רץ ולעצור מה שנתקע
תהליך הוא תוכנית שרצה כרגע במערכת. זה יכול להיות עורך טקסט, שרת פיתוח, סקריפט או פקודת sleep פשוטה. כשמשהו נתקע, צריך לדעת לזהות את התהליך ולשלוח לו סיגנל עצירה.
ps— מציג תהליכים.ps aux— מציג רשימה רחבה יותר של תהליכים.top— תצוגה מתעדכנת של תהליכים ומשאבים.kill PID— שולח בקשת עצירה לתהליך לפי מזהה.jobs— מציג משימות שרצות ברקע מתוך ה־shell הנוכחי.
בדרך כלל מתחילים עם kill רגיל. רק אם תהליך לא מגיב, משתמשים בזהירות ב־kill -9, שמסיים בכוח ולא נותן לתוכנית לנקות משאבים.
דוגמה מלאה: להריץ תהליך ברקע ולעצור אותו
#!/usr/bin/env bash
set -e
# Start a harmless background process
sleep 60 &
pid="$!"
# Show the process id and command name
echo "Started PID: $pid"
ps -p "$pid" -o pid=,comm=
# Stop the process
kill "$pid"
wait "$pid" 2>/dev/null || echo "Process stopped"הדוגמה מפעילה את sleep ברקע, שומרת את מזהה התהליך במשתנה pid, מציגה אותו, ואז עוצרת אותו. פלט אפשרי:
Started PID: 12345
12345 sleep
Process stoppedהמספר ישתנה בכל הרצה. העיקרון חשוב: קודם מזהים, אחר כך עוצרים. לא מנחשים מזהי תהליכים ולא מריצים kill על משהו שלא מבינים.
שרשור פקודות: הצינור שהופך את לינוקס לחזקה
אחת היכולות הכי שימושיות בשורת הפקודה היא צינור, |. הוא מעביר את הפלט של פקודה אחת כקלט לפקודה אחרת. במקום לפתוח קובץ, להעתיק, לסנן ידנית ולספור, עושים את זה בשרשרת קטנה.
#!/usr/bin/env bash
set -e
# Create a temporary file with repeated names
demo_dir="$(mktemp -d)"
cd "$demo_dir"
printf "alice\nbob\nalice\ndana\nbob\nalice\n" > names.txt
# Count unique names
sort names.txt | uniq -c | sort -nrהפקודה sort מסדרת את השורות, uniq -c סופרת חזרות סמוכות, ו־sort -nr מסדרת מהכמות הגדולה לקטנה. הפלט הצפוי:
3 alice
2 bob
1 danaזו דוגמה קטנה, אבל אותו רעיון עובד גם על לוגים גדולים, רשימות קבצים ופלטים של כלים אחרים.
טעויות נפוצות והודעות שגיאה אמיתיות
No such file or directory
הודעה לדוגמה:
cd: projects/demo: No such file or directoryהמשמעות: הנתיב לא קיים מהמיקום הנוכחי. הריצו pwd כדי לבדוק איפה אתם, ואז ls כדי לראות אילו תיקיות קיימות. אם צריך ליצור את הנתיב, השתמשו ב־mkdir -p projects/demo.
Permission denied
הודעה לדוגמה:
./script.sh: Permission deniedבדרך כלל חסרה הרשאת הרצה. בדקו עם ls -l script.sh. אם זה סקריפט שאתם יצרתם ואתם מבינים מה הוא עושה, הריצו chmod +x script.sh ואז ./script.sh.
command not found
הודעה לדוגמה:
grpe: command not foundכאן לרוב מדובר בשגיאת הקלדה. במקרה הזה כתבתם grpe במקום grep. אם הפקודה באמת לא מותקנת, בדקו בתיעוד של ההפצה איך מתקינים חבילות, אבל אל תריצו פקודות התקנה ממקור לא ברור.
rm: cannot remove 'folder': Is a directory
הודעה לדוגמה:
rm: cannot remove 'folder': Is a directoryrm רגיל מוחק קבצים, לא תיקיות. למחיקת תיקייה משתמשים ב־rm -r folder. לפני כן כדאי להריץ find folder -maxdepth 2 -type f או ls folder כדי לוודא מה עומד להימחק.
הרגלי עבודה שמונעים נזק
- עבדו בתיקיית ניסוי: במיוחד כשמתאמנים על
rm,mvו־find. - העדיפו נתיבים יחסיים בהתחלה: קל יותר להבין מה קורה בתוך פרויקט קטן.
- השתמשו ב־
pwdהרבה: זו לא חולשה, זה הרגל מקצועי. - בדקו לפני מחיקה: קודם
lsאוfind, אחר כךrm. - שמרו פקודות מועילות: קובץ טקסט קטן עם פקודות שחוזרות על עצמן עדיף על זיכרון מעורפל.
תרגול מומלץ לסיום
כדי שהפקודות יישארו בראש, בצעו תרגול קצר:
- צרו תיקייה זמנית בשם
linux-practice. - בתוכה צרו תיקיות
logs,srcו־notes. - צרו כמה קבצי
.txtוכמה קבצי.log. - השתמשו ב־
findכדי למצוא רק קובצי לוג. - השתמשו ב־
grepכדי למצוא שורות שמכילותERROR. - הריצו
sleep 100ברקע, מצאו את התהליך ועצרו אותו.
מי שרוצה להמשיך בצורה מסודרת יכול לשלב את התרגול עם צעדים ראשונים, ואז לעבור להרצת סקריפטים, עבודה עם משתני סביבה, בסיסי Git וכלים כמו curl. לא צריך ללמוד את כל לינוקס ביום אחד. מספיק להכיר היטב את הפקודות שחוזרות בכל יום, ומשם לבנות ביטחון.
סיכום קצר
פקודות בסיסיות בלינוקס נותנות שליטה אמיתית בסביבת העבודה: ניווט עם pwd ו־cd, עבודה עם קבצים באמצעות cp, mv ו־rm, חיפוש עם find ו־grep, וניהול תהליכים עם ps ו־kill. ברגע שמתרגלים לעבוד לאט, לקרוא פלטים ולבדוק לפני פעולות מסוכנות, הטרמינל הופך מכלי מפחיד לכלי עבודה מדויק ונוח.


