סביבת העבודה: Terminal וקובץ קוד ראשון
- להבחין בין Terminal, Shell ו-Command
- לפרק פקודה לחלקיה — שם, ארגומנטים ודגלים
- להסביר למה כותבים קוד בקובץ, ומה אומרת הסיומת
.py - להכיר מבנה תיקיות מסודר לקורס ואת כללי השמות של קבצים ותיקיות
מה בשיעור
השיעור הזה בנוי משני פרקים קצרים, באותו סדר כמו במצגת. את הכלים עצמם (Python, VS Code, Git ו-Docker) כבר התקנו בנושא התקנות.
- פרק ראשון — Terminal, Shell ופקודות בסיסיות (PowerShell / Bash)
- פרק שני — תיקיית עבודה וקובץ Python ראשון
פרק ראשון: Terminal, Shell ופקודות בסיסיות (PowerShell / Bash)
מה נלמד?
- מה ההבדל בין Terminal ל-Shell.
- איך בנויה פקודה.
- פקודות הבסיס שכל מפתח משתמש בהן כל יום: ניווט, הצגה, יצירה, העתקה, העברה, מחיקה.
- PowerShell (Windows) מול Bash/Zsh (Mac/Linux).
למה צריך את זה?
- Git (נושא Python), התקנת חבילות עם
pip, והרצת שרת (נושא Backend ומסדי נתונים) נעשים מה-Terminal. - על שרתים אמיתיים בענן אין ממשק גרפי, יש רק Terminal.
- מהרגע שמתרגלים, Terminal מהיר יותר מעכבר: פקודה אחת יכולה ליצור 5 תיקיות בבת אחת.
הסבר מהבסיס
Terminal, Shell, Command
שלושה מושגים שמבלבלים בהתחלה:
| מושג | מה זה | דוגמה |
|---|---|---|
| Terminal | החלון: התוכנה שמציגה טקסט ומקבלת מקלדת. | Windows Terminal, ה-Terminal של VS Code, Terminal.app במק |
| Shell | המפרש: התוכנה שרצה בתוך החלון, קוראת את מה שהקלדתם ומבצעת. | PowerShell, Bash, Zsh, cmd |
| Command | הפקודה עצמה. | cd week-1 |
Terminal הוא הטלפון, Shell הוא האדם בצד השני שמבין את השפה ומבצע, Command הוא המשפט שאתם אומרים. אפשר להחזיק אותו טלפון (Terminal) ולדבר עם אנשים שונים שמבינים שפות שונות (PowerShell או Bash).
- PowerShell — ה-Shell המודרני של Windows.
- Bash — ה-Shell הנפוץ בלינוקס. Zsh — ברירת המחדל במק, וכמעט זהה ל-Bash בפקודות הבסיס.
- cmd — ה-Shell הישן של Windows. לא נשתמש בו.
ה-Prompt
ה-Prompt הוא הטקסט שה-Shell מציג כשהוא מחכה לפקודה:
PS C:\Users\dana\dev\kodkod6> ← PowerShell: "PS" + current directory
dana@laptop:~/dev/kodkod6$ ← Bash: user@computer:directory$~ (טילדה) בבאש = תיקיית הבית של המשתמש.
מבנה של פקודה
command argument(s) flag(s)/option(s)
cp notes.txt backup.txt
ls -la
mkdir week-2- Command — מה לעשות.
- Argument — על מה לעשות (קובץ, תיקייה).
- Flag / Option — איך לעשות. בבאש:
-aאו--all. ב-PowerShell:-Recurse,-Force. - רווח מפריד בין החלקים. לכן שמות עם רווחים צריכים מירכאות:
cd "My Folder". וזו עוד סיבה לא לשים רווחים בשמות.
תחביר
טבלת הפקודות המרכזית
| פעולה | PowerShell | Bash / Zsh |
|---|---|---|
| איפה אני? | pwd | pwd |
| מה יש כאן? | ls (או dir) | ls |
| כולל קבצים מוסתרים | ls -Force | ls -a |
| כניסה לתיקייה | cd week-1 | cd week-1 |
| תיקייה אחת למעלה | cd .. | cd .. |
| לתיקיית הבית | cd ~ | cd ~ (או רק cd) |
| יצירת תיקייה | mkdir week-2 | mkdir week-2 |
| יצירת קובץ ריק | New-Item notes.txt | touch notes.txt |
| הצגת תוכן קובץ | cat notes.txt | cat notes.txt |
| העתקה | cp a.txt b.txt | cp a.txt b.txt |
| העברה / שינוי שם | mv a.txt b.txt | mv a.txt b.txt |
| מחיקת קובץ | rm notes.txt | rm notes.txt |
| מחיקת תיקייה עם התוכן | rm -r folder | rm -r folder |
| ניקוי מסך | cls (או clear) | clear |
| עזרה על פקודה | Get-Help cp | man cp (יציאה: q) |
ב-PowerShell, ls, cat, cp, mv, rm הם כינויים (Aliases) לפקודות ארוכות יותר (Get-ChildItem, Get-Content, Copy-Item…). כך אותן פקודות בסיס עובדות בשתי הסביבות.
קיצורי מקלדת שחוסכים שעות
| מקש | מה עושה |
|---|---|
Tab | השלמה אוטומטית של שמות קבצים ותיקיות. מקלידים cd we + Tab ומתקבל cd week-1. |
↑ / ↓ | מעבר בין פקודות קודמות. |
Ctrl + C | עצירת הפקודה שרצה. |
Ctrl + L | ניקוי מסך. |
דוגמת קוד ראשונה
ניווט ובדיקה. בדרך נראה את ה-Prompt משתנה:
pwd
cd ~
pwd
cd dev\kodkod6
lsפלט לדוגמה:
Path
----
C:\Users\dana\dev\kodkod6\week-1
Path
----
C:\Users\dana
Directory: C:\Users\dana\dev\kodkod6
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 06/10/2026 09:12 sandbox
d---- 06/10/2026 08:40 week-1פירוק הקוד שורה אחר שורה
| פקודה | מה קרה |
|---|---|
pwd | print working directory: מדפיס איפה אנחנו. |
cd ~ | קפיצה לתיקיית הבית. |
pwd | מאמת שאכן עברנו. |
cd dev\kodkod6 | נתיב יחסי, מתיקיית הבית לתוך dev, ואז לתוך kodkod6. |
ls | מציג את התוכן. ב-PowerShell, d בעמודת Mode מסמן Directory (תיקייה). |
דוגמה נוספת
נבנה את מבנה התיקיות של נושא Python בפקודות בלבד, ניצור קבצים, נעתיק, נשנה שם ונמחק:
cd ~\dev\kodkod6
mkdir week-2
cd week-2
mkdir day-1, day-2, day-3
New-Item day-1\notes.txt
ls
cp day-1\notes.txt day-2\notes.txt
mv day-2\notes.txt day-2\summary.txt
ls day-2
rm day-1\notes.txt
cd ..בבאש/זד-שֶל (Mac / Linux), אותו דבר:
cd ~/dev/kodkod6
mkdir week-2
cd week-2
mkdir day-1 day-2 day-3
touch day-1/notes.txt
ls
cp day-1/notes.txt day-2/notes.txt
mv day-2/notes.txt day-2/summary.txt
ls day-2
rm day-1/notes.txt
cd ..פירוק:
mkdir day-1, day-2, day-3— ב-PowerShell אפשר ליצור כמה תיקיות בבת אחת עם פסיקים. בבאש — עם רווחים.New-Item/touch— יוצרים קובץ ריק.cp מקור יעד— העתקה: המקור נשאר, ונוצר עותק.mv מקור יעד— העברה. אם היעד באותה תיקייה עם שם אחר, זה בעצם שינוי שם.rm— מחיקה.cd ..— חזרה ל-kodkod6.
טעות נפוצה
הטעות: rm חושב שזה כמו “מחק” בסייר הקבצים.
קובץ שנמחק עם rm נמחק לצמיתות. אין Undo ואין Recycle Bin. ובמיוחד: לעולם אל תריצו rm -r על נתיב שאתם לא בטוחים בו, ואל תעתיקו מהאינטרנט פקודות שמכילות rm -rf / או sudo rm.
הרגל בטוח: לפני rm, הריצו ls על אותו נתיב בדיוק ובדקו מה תמחקו.
טעות שנייה — רווחים בשמות:
cd My ProjectsSet-Location: A positional parameter cannot be found that accepts argument 'Projects'.ה-Shell ראה שני ארגומנטים: My ו-Projects. התיקון: cd "My Projects". ועדיף מראש: my-projects.
טעות שלישית — להריץ קוד Python בתוך ה-Shell:
PS> print("hi")print היא פקודה של Python, לא של PowerShell. שם הפקודה מורץ בתוך Python: python -c "print('hi')", או בתוך קובץ .py. וההפך, cd לא עובד בתוך קובץ Python.
סיכום
- Terminal = החלון. Shell = המפרש (PowerShell / Bash / Zsh). Command = הפקודה.
- פקודה = שם + ארגומנטים + דגלים, מופרדים ברווחים.
- ניווט:
pwd,ls,cd,cd ..,cd ~. - קבצים:
mkdir,New-Item/touch,cp,mv,rm. ו-rmלא שולח לסל המחזור. Tabלהשלמה,↑לפקודה קודמת,Ctrl + Cלעצירה.
דוקומנטציה רשמית
- VS Code — Terminal Basics — ה-Terminal המובנה של VS Code
- PowerShell 101 — Getting started — היכרות עם PowerShell
- Set-Location (cd) — הפקודה cd ב-PowerShell
- GNU Bash Reference Manual — המדריך הרשמי של Bash
פרק שני: תיקיית עבודה וקובץ Python ראשון
מה נלמד?
- למה כותבים קוד בקובץ, ומה זה בעצם קובץ קוד.
- איך בונים תיקיית עבודה (Workspace Folder) מסודרת לכל הקורס.
- מה קורה כשמריצים קובץ: ה-Interpreter קורא אותו מלמעלה למטה.
- מה זה התיקייה הנוכחית (Current Directory), ולמה היא הסיבה לשגיאה הנפוצה ביותר של מתחילים.
למה צריך את זה?
- שורה אחת שמקלידים ב-Terminal נעלמת ברגע שסוגרים את החלון. תוכנית אמיתית היא עשרות ומאות שורות — צריך לשמור אותן.
- בקורס נכתוב עשרות קבצים: תרגילים, פרויקטים, שרתים. בלי סדר, אחרי שבוע כבר לא תמצאו כלום. מפתחים מקצועיים שומרים כל פרויקט בתיקייה משלו — וזו גם הדרך שבה Git ו-VS Code מצפים לעבוד: פרויקט = תיקייה.
- הרבה שגיאות של מתחילים (“הקובץ לא נמצא”) נובעות מכך שה-Terminal נמצא בתיקייה אחרת מזו של הקובץ.
הסבר מהבסיס
קובץ ותיקייה
- קובץ (File) — יחידת מידע ששמורה על הדיסק: מסמך, תמונה, או קובץ קוד.
- תיקייה (Folder / Directory) — “מגירה” שמכילה קבצים ותיקיות נוספות.
- נתיב (Path) — הכתובת המלאה של קובץ, מהשורש ועד אליו. למשל:
C:\dev\kodkod6\week-1\hello.py.
מה זה בעצם קובץ קוד
| Text | קובץ קוד הוא קובץ טקסט רגיל — אפשר לפתוח אותו בכל עורך טקסט. |
.py | הסיומת אומרת למערכת ההפעלה ול-VS Code: “זה קוד Python”. VS Code רואה אותה ומפעיל צביעת תחביר וכפתור הרצה. |
| Interpreter | תוכנת Python קוראת את הקובץ ומבצעת אותו. בלעדיה, הקובץ הוא סתם טקסט. |
| Top to Bottom | הביצוע מתחיל בשורה הראשונה וממשיך שורה אחרי שורה עד הסוף. |
“התיקייה הנוכחית” (Current Directory)
ה-Terminal תמיד “עומד” בתיקייה אחת — היא מופיעה משמאל לסמן (ה-Prompt):
PS C:\dev\kodkod6\week-1>כשכותבים python hello.py, Python מחפשת את hello.py בתיקייה הנוכחית בלבד. אם הקובץ בתיקייה אחרת — היא לא תמצא אותו.
ה-Terminal הוא כמו אדם שעומד בחדר מסוים בבית. אם תבקשו ממנו “תביא את הספר מהמדף” — הוא יחפש רק במדף שבחדר שבו הוא עומד. אם הספר בחדר אחר, צריך קודם להגיד לו לעבור חדר (פקודת cd), או לתת לו את הכתובת המלאה.
מבנה תיקיות מומלץ לקורס
C:\dev\kodkod6\ (Mac: ~/dev/kodkod6/)
├── week-1\
│ └── hello.py
├── week-2\
├── week-3\
└── week-4\- תיקייה אחת לכל הקורס (
kodkod6), ובתוכה תיקייה לכל שבוע. - כללים לשמות: אותיות אנגליות קטנות, בלי רווחים ובלי עברית. במקום רווח משתמשים במקף
-לתיקיות ובקו תחתון_לקבצי Python (my_file.py). רווחים ועברית בנתיב גורמים לתקלות בכלים רבים. - ב-VS Code פותחים את כל התיקייה
kodkod6(File → Open Folder), ולא קובץ בודד.
איך מריצים קובץ
נניח שבתיקייה week-1 יש קובץ hello.py, ובו שורה אחת שמדפיסה Hello, World!. המרצה ידגים את ההרצה על המסך:
cd week-1
python hello.pyפלט:
Hello, World!| פקודה | מה היא עושה |
|---|---|
cd week-1 | change directory — מעבירה את ה-Terminal לתיקייה שבה הקובץ נמצא. |
python hello.py | מפעילה את ה-Interpreter ומוסרת לו את הקובץ. הוא קורא אותו מלמעלה למטה ומבצע כל שורה. |
דרך הרצה שנייה: כפתור Run. ב-VS Code, כשקובץ .py פתוח, יש למעלה מימין משולש ▷ (Run Python File). לחיצה עליו פותחת Terminal ומריצה את הקובץ עם הנתיב המלא שלו — ולכן לא צריך cd.
טעות נפוצה
הטעות: להריץ מהתיקייה הלא נכונה.
PS C:\dev\kodkod6> python hello.py
can't open file '...hello.py':
[Errno 2] No such file or directory- ה-Terminal עומד ב-
kodkod6, והקובץ נמצא ב-kodkod6\week-1. - Python מחפשת את הקובץ רק בתיקייה הנוכחית.
- הפתרון: קודם
cd week-1, ורק אז להריץ. או להריץ עם הנתיב:python week-1\hello.py.
טעות שנייה: לא לשמור לפני הרצה. אם בלשונית של הקובץ יש עיגול ⚪ במקום ✕, הקובץ לא נשמר, ו-Python תריץ את הגרסה הישנה. מומלץ להפעיל File → Auto Save.
סיכום
- קובץ קוד הוא קובץ טקסט. הסיומת
.pyאומרת שזה קוד Python. - פרויקט = תיקייה. שמות באנגלית, בלי רווחים:
kodkod6/week-1/hello.py. - ה-Interpreter קורא את הקובץ ומבצע אותו מלמעלה למטה.
- התיקייה הנוכחית היא המקום שבו ה-Terminal עומד — ושם Python מחפשת את הקובץ.
- מריצים עם
cdלתיקייה ואזpython file.py, או עם כפתור ▷ ב-VS Code.
דוקומנטציה רשמית
- Python Tutorial — Using the Python Interpreter — איך מפעילים את Python מה-Terminal
- Command line and environment — python file.py — הרצת קובץ
- VS Code — Run Hello World — הרצת קובץ Python ראשון ב-VS Code
תרגול
שאלות הבנה על החומר של השיעור — בלי קוד.
תרגיל 1: Terminal, Shell או Command?
לכל משפט כתבו אם הוא מתאר Terminal, Shell או Command:
- החלון שבו מקלידים ורואים את הפלט.
mkdir week-2- PowerShell ב-Windows, או Bash ב-Mac וב-Linux.
- התוכנה שמבינה את מה שהקלדנו ומבצעת אותו.
cd ..
הצג פתרון
- Terminal — החלון.
- Command — הוראה אחת: יצירת תיקייה.
- Shell — אלה שמות של Shell-ים שונים.
- Shell — “המוח” שמפרש ומבצע את הפקודות.
- Command — הוראה אחת: מעבר תיקייה אחת למעלה.
הכלל: ה-Terminal הוא החלון, ה-Shell הוא התוכנה שרצה בתוכו, ו-Command הוא מה שמקלידים.
תרגיל 2: מה הנתיב המלא?
מבנה התיקיות של הקורס:
C:\dev\kodkod6\
├── week-1\
│ └── hello.py
└── week-2\- מה הנתיב המלא של הקובץ
hello.py? - ה-Terminal עומד ב-
C:\dev\kodkod6\week-2. איזו פקודה מחזירה אותו ל-kodkod6? - למה כדאי לשים את כל קבצי הקורס תחת תיקייה אחת, ולא על שולחן העבודה?
הצג פתרון
C:\dev\kodkod6\week-1\hello.pycd ..— שתי נקודות = תיקייה אחת למעלה.- כשהכול תחת
kodkod6קל למצוא כל קובץ גם בעוד חודש, הנתיבים קצרים ובלי רווחים, ואפשר לפתוח את כל הקורס ב-VS Code בבת אחת.
תרגיל 3: מבנה של פקודה
בכל אחת מהפקודות הבאות — מהו שם הפקודה, מה הארגומנט ומה הדגל (אם יש)?
git --version
cp notes.txt backup.txt
ls -la
mkdir week-2הצג פתרון
| פקודה | שם הפקודה | ארגומנטים | דגל |
|---|---|---|---|
git --version | git | — | --version |
cp notes.txt backup.txt | cp | notes.txt, backup.txt | — |
ls -la | ls | — | -la |
mkdir week-2 | mkdir | week-2 | — |
הכלל: פקודה = מה עושים, ארגומנט = על מה, דגל = איך (שינוי התנהגות, מתחיל במקף).
תרגיל 4: ניווט בתיקיות
ה-Terminal עומד ב-C:\dev\kodkod6. כתבו את רצף הפקודות שעושה את הדברים הבאים, לפי הסדר:
- יוצר תיקייה בשם
week-1. - נכנס אליה.
- מציג איפה ה-Terminal עומד עכשיו.
- חוזר תיקייה אחת למעלה.
הצג פתרון
mkdir week-1
cd week-1
pwd
cd ..mkdir— יצירת תיקייה.cd week-1— מעבר לתיקייה.pwd— מדפיס את הנתיב הנוכחי:C:\dev\kodkod6\week-1.cd ..— שתי נקודות = תיקייה אחת למעלה.
תרגיל 5: “No such file or directory”
הקובץ hello.py נמצא ב-C:\dev\kodkod6\week-1. סטודנט מריץ:
PS C:\dev\kodkod6> python hello.py
can't open file '...hello.py': [Errno 2] No such file or directory- למה Python לא מוצאת את הקובץ, אם הוא קיים?
- תנו שתי דרכים לתקן.
הצג פתרון
- Python מחפשת את הקובץ רק בתיקייה הנוכחית — התיקייה שבה ה-Terminal עומד (
kodkod6). הקובץ נמצא בתת-תיקייהweek-1, ולכן הוא לא נמצא. - שתי דרכים:
- לעבור קודם לתיקייה:
cd week-1, ואזpython hello.py. - להריץ עם הנתיב:
python week-1\hello.py.
- לעבור קודם לתיקייה:
(אפשרות שלישית: כפתור ▷ Run ב-VS Code, שמריץ עם הנתיב המלא של הקובץ.)