Рабочая среда: терминал и первый файл с кодом

Цели урока
  • Различать терминал, оболочку (shell) и команду
  • Разбирать команду на части — имя, аргументы и флаги
  • Объяснить, зачем писать код в файле и что означает расширение .py
  • Знать аккуратную структуру папок курса и правила именования файлов и папок

В этом уроке

Урок состоит из двух коротких глав — в том же порядке, что и в презентации. Сами инструменты (Python, VS Code, Git и Docker) уже установлены в теме Установка программ.

  1. Глава 1 — терминал, оболочка и базовые команды (PowerShell / Bash)
  2. Глава 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". И это ещё одна причина не ставить пробелы в именах.

Синтаксис

Главная таблица команд

ДействиеPowerShellBash / Zsh
Где я?pwdpwd
Что здесь есть?ls (или dir)ls
Включая скрытые файлыls -Forcels -a
Войти в папкуcd week-1cd week-1
На одну папку вверхcd ..cd ..
В домашнюю папкуcd ~cd ~ (или просто cd)
Создать папкуmkdir week-2mkdir week-2
Создать пустой файлNew-Item notes.txttouch notes.txt
Показать содержимое файлаcat notes.txtcat notes.txt
Скопироватьcp a.txt b.txtcp a.txt b.txt
Переместить / переименоватьmv a.txt b.txtmv a.txt b.txt
Удалить файлrm notes.txtrm notes.txt
Удалить папку вместе с содержимымrm -r folderrm -r folder
Очистить экранcls (или clear)clear
Справка по командеGet-Help cpman 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

Разбор кода построчно

КомандаЧто произошло
pwdprint 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, удаляется навсегда. Нет ни отмены, ни корзины. В частности: никогда не запускайте rm -r для пути, в котором вы не уверены, и никогда не копируйте из интернета команды, содержащие rm -rf / или sudo rm.

Безопасная привычка: перед rm выполните ls для точно такого же пути и проверьте, что собираетесь удалить.

Вторая ошибка — пробелы в именах:

cd My Projects
Set-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-1change 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: Терминал, оболочка или команда?

Для каждого предложения напишите, что оно описывает: терминал, оболочку или команду:

  1. Окно, в котором печатают и видят вывод.
  2. mkdir week-2
  3. PowerShell в Windows или Bash в Mac и Linux.
  4. Программа, которая понимает, что мы набрали, и выполняет это.
  5. cd ..
Показать решение
  1. Терминал — окно.
  2. Команда — одна инструкция: создать папку.
  3. Оболочка — это названия разных оболочек.
  4. Оболочка — «мозг», который разбирает и выполняет команды.
  5. Команда — одна инструкция: перейти на одну папку вверх.

Правило: терминал — это окно, оболочка — программа, работающая внутри него, а команда — то, что вы печатаете.

Упражнение 2: Какой полный путь?

Структура папок курса:

C:\dev\kodkod6\
├── week-1\
│   └── hello.py
└── week-2\
  1. Какой полный путь у файла hello.py?
  2. Терминал стоит в C:\dev\kodkod6\week-2. Какая команда вернёт его в kodkod6?
  3. Почему полезно держать все файлы курса в одной папке, а не на рабочем столе?
Показать решение
  1. C:\dev\kodkod6\week-1\hello.py
  2. cd .. — две точки = на одну папку вверх.
  3. Когда всё лежит в kodkod6, любой файл легко найти даже через месяц, пути короткие и без пробелов, а весь курс можно сразу открыть в VS Code.

Упражнение 3: Как устроена команда

В каждой из следующих команд — что является именем команды, что аргументом, а что флагом (если есть)?

git --version
cp notes.txt backup.txt
ls -la
mkdir week-2
Показать решение
КомандаИмя командыАргументыФлаг
git --versiongit—--version
cp notes.txt backup.txtcpnotes.txt, backup.txt—
ls -lals—-la
mkdir week-2mkdirweek-2—

Правило: команда = что сделать, аргумент = с чем это сделать, флаг = как (изменение поведения, начинается с дефиса).

Упражнение 4: Перемещение по папкам

Терминал стоит в C:\dev\kodkod6. Напишите последовательность команд, которая делает следующее, по порядку:

  1. Создаёт папку week-1.
  2. Входит в неё.
  3. Показывает, где сейчас стоит терминал.
  4. Возвращается на одну папку вверх.
Показать решение
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
  1. Почему Python не находит файл, если он существует?
  2. Назовите два способа это исправить.
Показать решение
  1. Python ищет файл только в текущей папке — там, где стоит терминал (kodkod6). Файл лежит во вложенной папке week-1, поэтому он не найден.
  2. Два способа:
    • Сначала перейти в папку: cd week-1, а затем python hello.py.
    • Запустить с путём: python week-1\hello.py.

(Третий вариант: кнопка ▷ Run в VS Code, которая запускает файл по полному пути.)