Рабочая среда: терминал и первый файл с кодом
- Различать терминал, оболочку (shell) и команду
- Разбирать команду на части — имя, аргументы и флаги
- Объяснить, зачем писать код в файле и что означает расширение
.py - Знать аккуратную структуру папок курса и правила именования файлов и папок
В этом уроке
Урок состоит из двух коротких глав — в том же порядке, что и в презентации. Сами инструменты (Python, VS Code, Git и Docker) уже установлены в теме Установка программ.
- Глава 1 — терминал, оболочка и базовые команды (PowerShell / Bash)
- Глава 2 — рабочая папка и первый файл на Python
Глава 1: Терминал, оболочка и базовые команды (PowerShell / Bash)
Что мы изучим?
- Разницу между терминалом и оболочкой (shell).
- Как устроена команда.
- Базовые команды, которыми каждый разработчик пользуется каждый день: перемещение, просмотр, создание, копирование, перемещение файлов, удаление.
- PowerShell (Windows) и Bash/Zsh (Mac/Linux).
Зачем это нужно?
- Git, установка пакетов через
pipи запуск сервера (темы бэкенда и баз данных) — всё это делается из терминала. - У настоящих серверов в облаке нет графического интерфейса — только терминал.
- Когда привыкнешь, терминал работает быстрее мыши: одна команда может создать сразу 5 папок.
Объяснение с основ
Терминал, оболочка, команда
Три понятия, которые поначалу путают:
| Понятие | Что это | Пример |
|---|---|---|
| Терминал | Окно: программа, которая показывает текст и принимает ввод с клавиатуры. | Windows Terminal, терминал VS Code, Terminal.app на Mac |
| Оболочка (shell) | Интерпретатор: программа, работающая внутри окна, которая читает то, что вы набрали, и выполняет это. | PowerShell, Bash, Zsh, cmd |
| Команда | Сама инструкция. | cd week-1 |
Терминал — это телефон, оболочка — человек на другом конце провода, который понимает язык и делает то, о чём вы просите, а команда — фраза, которую вы говорите. Можно держать тот же телефон (терминал) и разговаривать с разными людьми, которые понимают разные языки (PowerShell или Bash).
- PowerShell — современная оболочка Windows.
- Bash — распространённая оболочка в Linux. Zsh — оболочка по умолчанию на Mac, для базовых команд почти не отличается от Bash.
- cmd — старая оболочка Windows. Мы не будем ею пользоваться.
Приглашение (prompt)
Приглашение (prompt) — текст, который оболочка показывает, пока ждёт команду:
PS C:\Users\dana\dev\kodkod6> ← PowerShell: "PS" + current directory
dana@laptop:~/dev/kodkod6$ ← Bash: user@computer:directory$~ (тильда) в Bash = домашняя папка пользователя.
Как устроена команда
command argument(s) flag(s)/option(s)
cp notes.txt backup.txt
ls -la
mkdir week-2- Команда — что сделать.
- Аргумент — с чем это сделать (файл, папка).
- Флаг / опция — как это сделать. В Bash:
-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 | Очистить экран. |
Первый пример кода
Перемещаемся и проверяем. По ходу увидим, как меняется приглашение:
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 обозначает каталог (папку). |
Ещё один пример
Строим структуру папок темы по 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 ..В Bash/Zsh (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 можно создать несколько папок сразу через запятую. В Bash — через пробел.New-Item/touch— создают пустой файл.cp источник назначение— копирование: источник остаётся, создаётся копия.mv источник назначение— перемещение. Если назначение в той же папке, но с другим именем, это на самом деле переименование.rm— удаление.cd ..— обратно вkodkod6.
Типичная ошибка
Ошибка: думать, что rm — это как «удалить» в проводнике.
Файл, удалённый через rm, удаляется навсегда. Нет ни отмены, ни корзины. В частности: никогда не запускайте rm -r для пути, в котором вы не уверены, и никогда не копируйте из интернета команды, содержащие rm -rf / или sudo rm.
Безопасная привычка: перед rm выполните ls для точно такого же пути и проверьте, что собираетесь удалить.
Вторая ошибка — пробелы в именах:
cd My ProjectsSet-Location: A positional parameter cannot be found that accepts argument 'Projects'.Оболочка увидела два аргумента: My и Projects. Исправление: cd "My Projects". А ещё лучше с самого начала: my-projects.
Третья ошибка — запуск кода на Python прямо в оболочке:
PS> print("hi")print — команда Python, а не PowerShell. Она выполняется внутри Python: python -c "print('hi')" или внутри файла .py. И наоборот: cd не работает внутри файла Python.
Итоги
- Терминал = окно. Оболочка = интерпретатор (PowerShell / Bash / Zsh). Команда = инструкция.
- Команда = имя + аргументы + флаги, разделённые пробелами.
- Перемещение:
pwd,ls,cd,cd ..,cd ~. - Файлы:
mkdir,New-Item/touch,cp,mv,rm. Иrmне отправляет в корзину. Tabдля автодополнения,↑для предыдущей команды,Ctrl + Cдля остановки.
Официальная документация
Глава 2: Рабочая папка и первый файл на Python
Что мы изучим?
- Зачем писать код в файле и что такое файл с кодом на самом деле.
- Как построить аккуратную рабочую папку (workspace) для всего курса.
- Что происходит при запуске файла: интерпретатор читает его сверху вниз.
- Что такое текущая папка и почему из-за неё возникает самая частая ошибка новичков.
Зачем это нужно?
- Строка, набранная в терминале, исчезает, как только вы закрываете окно. Настоящая программа — это десятки и сотни строк, их нужно сохранять.
- На курсе мы напишем десятки файлов: упражнения, проекты, серверы. Без порядка через неделю ничего не найдёте. Профессиональные разработчики держат каждый проект в своей папке — именно так ожидают работать и Git, и VS Code: проект = папка.
- Многие ошибки новичков («файл не найден») возникают потому, что терминал находится в другой папке, чем файл.
Объяснение с основ
Файл и папка
- Файл — единица информации, сохранённая на диске: документ, изображение или файл с кодом.
- Папка / каталог — «ящик», в котором лежат файлы и другие папки.
- Путь — полный адрес файла от корня до него. Например:
C:\dev\kodkod6\week-1\hello.py.
Что такое файл с кодом на самом деле
| Текст | Файл с кодом — обычный текстовый файл, его можно открыть в любом текстовом редакторе. |
.py | Расширение говорит операционной системе и VS Code: «это код на Python». VS Code видит его и включает подсветку синтаксиса и кнопку запуска. |
| Интерпретатор | Программа Python читает файл и выполняет его. Без неё файл — просто текст. |
| Сверху вниз | Выполнение начинается с первой строки и идёт строка за строкой до конца. |
Текущая папка
Терминал всегда «стоит» в одной папке — она видна слева от курсора (в приглашении):
PS C:\dev\kodkod6\week-1>Когда вы набираете python hello.py, Python ищет hello.py только в текущей папке. Если файл в другой папке — он его не найдёт.
Терминал похож на человека, который стоит в определённой комнате дома. Если попросить его «принести книгу с полки», он будет искать только на полке в той комнате, где стоит. Если книга в другой комнате, сначала нужно сказать ему перейти в другую комнату (команда 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 — переводит терминал в папку, где лежит файл. |
python hello.py | Запускает интерпретатор и передаёт ему файл. Он читает его сверху вниз и выполняет каждую строку. |
Второй способ запуска: кнопка Run. В VS Code, когда открыт файл .py, вверху справа есть треугольник ▷ (Run Python File). Нажатие открывает терминал и запускает файл по полному пути — поэтому cd не нужен.
Типичная ошибка
Ошибка: запуск не из той папки.
PS C:\dev\kodkod6> python hello.py
can't open file '...hello.py':
[Errno 2] No such file or directory- Терминал стоит в
kodkod6, а файл лежит вkodkod6\week-1. - Python ищет файл только в текущей папке.
- Исправление: сначала
cd week-1, и только потом запуск. Или запуск с путём:python week-1\hello.py.
Вторая ошибка: не сохранить перед запуском. Если на вкладке файла вместо ✕ виден кружок ⚪, файл не сохранён, и Python запустит старую версию. Полезно включить File → Auto Save.
Итоги
- Файл с кодом — это текстовый файл. Расширение
.pyговорит, что это код на Python. - Проект = папка. Английские имена, без пробелов:
kodkod6/week-1/hello.py. - Интерпретатор читает файл и выполняет его сверху вниз.
- Текущая папка — там, где стоит терминал, и именно там Python ищет файл.
- Запуск:
cdв папку, затемpython file.py, или кнопка ▷ в VS Code.
Официальная документация
Практика
Вопросы на понимание материала урока — без кода.
Упражнение 1: Терминал, оболочка или команда?
Для каждого предложения напишите, что оно описывает: терминал, оболочку или команду:
- Окно, в котором печатают и видят вывод.
mkdir week-2- PowerShell в Windows или Bash в Mac и Linux.
- Программа, которая понимает, что мы набрали, и выполняет это.
cd ..
Показать решение
- Терминал — окно.
- Команда — одна инструкция: создать папку.
- Оболочка — это названия разных оболочек.
- Оболочка — «мозг», который разбирает и выполняет команды.
- Команда — одна инструкция: перейти на одну папку вверх.
Правило: терминал — это окно, оболочка — программа, работающая внутри него, а команда — то, что вы печатаете.
Упражнение 2: Какой полный путь?
Структура папок курса:
C:\dev\kodkod6\
├── week-1\
│ └── hello.py
└── week-2\- Какой полный путь у файла
hello.py? - Терминал стоит в
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: Перемещение по папкам
Терминал стоит в C:\dev\kodkod6. Напишите последовательность команд, которая делает следующее, по порядку:
- Создаёт папку
week-1. - Входит в неё.
- Показывает, где сейчас стоит терминал.
- Возвращается на одну папку вверх.
Показать решение
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 ищет файл только в текущей папке — там, где стоит терминал (
kodkod6). Файл лежит во вложенной папкеweek-1, поэтому он не найден. - Два способа:
- Сначала перейти в папку:
cd week-1, а затемpython hello.py. - Запустить с путём:
python week-1\hello.py.
- Сначала перейти в папку:
(Третий вариант: кнопка ▷ Run в VS Code, которая запускает файл по полному пути.)