Урок 002: терминал, файлы и пути¶
Что получится в конце¶
Вы научитесь отвечать на три практических вопроса: «Где сейчас находится терминал?», «Что лежит в этой папке?» и «Как перейти к нужному файлу?». Затем создадите небольшую структуру без команд удаления.
Одна главная мысль¶
Терминал всегда работает из какой-то текущей папки. Почти все команды в этом уроке либо показывают эту папку, либо показывают её содержимое, либо переводят терминал в другое место.
Представьте папки как комнаты:
- текущая папка — комната, в которой вы стоите;
- имя файла — предмет в этой комнате;
cd— переход в другую комнату;- путь — маршрут до нужной комнаты или предмета.
Сначала только смотрим¶
Первые команды ничего не создают и не удаляют.
Windows PowerShell¶
Название читается как «получить местоположение». Команда показывает полный адрес текущей папки, например:
Теперь выполните:
Название означает «получить вложенные элементы». Команда выводит файлы и папки внутри текущей папки. Короткая команда dir в PowerShell даёт похожий результат.
macOS или Linux¶
pwd сокращает выражение print working directory — «показать рабочую папку». Пример ответа:
Теперь выполните:
ls происходит от list — «показать список». Команда выводит файлы и папки внутри текущей папки.
После этих двух действий вы должны уметь сказать: «Терминал находится здесь, а внутри я вижу такие имена».
Английские расшифровки помогают понять смысл команды, но заучивать их не нужно. Важнее перед выполнением своими словами сказать, что команда должна показать или изменить.
Переходим в папку через cd¶
Создадим внутри academy-lab папку data. Пока используйте боковую панель VS Code: нажмите кнопку создания папки и назовите её data.
В терминале, открытом в academy-lab, выполните:
Разбор команды:
cdозначает change directory — «сменить папку»;- пробел отделяет команду от назначения;
data— имя папки, в которую нужно перейти;- Enter выполняет переход.
Команда обычно ничего не печатает при успехе. Сразу проверьте результат командой текущей папки: Get-Location в PowerShell или pwd в macOS/Linux. Адрес должен заканчиваться на data.
Чтобы вернуться на один уровень вверх, выполните:
Две точки .. означают родительскую папку — ту, внутри которой находится текущая. После команды снова проверьте местоположение.
Одна точка . означает саму текущую папку. Команда cd . поэтому оставит терминал на месте.
Создаём папки командой¶
Находясь в корне academy-lab, выполните:
Разбор:
mkdirсокращает make directory — «создать папку»;docs— имя новой папки.
Команда доступна в PowerShell, bash и zsh. После неё покажите содержимое текущей папки и убедитесь, что появилось имя docs.
Теперь создайте вложенные папки по одной:
Не вставляйте все строки вслепую. После каждой ответьте, где теперь находится терминал и что должно измениться.
Создаём и читаем файл¶
Для первого раза создайте файл notes.txt через боковую панель VS Code внутри папки docs. Запишите строку:
Затем прочитайте файл из терминала.
Windows PowerShell¶
Get-Contentозначает «получить содержимое»;docs\notes.txtуказывает: войти в папкуdocsи взятьnotes.txt.
macOS или Linux¶
catвыводит содержимое текстового файла;docs/notes.txtведёт в папкуdocsк файлуnotes.txt.
Ожидаемый вывод в обоих случаях:
Относительный путь — маршрут от текущего места¶
Пусть структура выглядит так:
academy-lab/ ← терминал здесь
├── data/
│ ├── input/
│ └── output/
├── docs/
│ └── notes.txt
└── hello.py
Из корня academy-lab путь docs/notes.txt читается как два шага:
- открыть вложенную папку
docs; - найти в ней
notes.txt.
Это относительный путь, потому что маршрут начинается от места, где сейчас стоит терминал.
Если перейти в docs, короткого имени достаточно:
Затем файл можно прочитать как notes.txt, потому что он находится в текущей папке.
Чтобы из docs обратиться к hello.py, сначала нужно подняться к родителю:
.. означает «на уровень вверх», затем указывается имя файла.
Абсолютный путь — полный адрес¶
Абсолютный путь начинается не от текущей папки, а от диска или корня файловой системы:
C:\Users\Vadim\Documents\academy-lab\hello.py # Windows
/Users/vadim/Documents/academy-lab/hello.py # macOS
/home/vadim/academy-lab/hello.py # Linux
Абсолютный путь длиннее, зато не меняет смысл после cd. Не копируйте пример буквально: имя пользователя и расположение папки на вашем компьютере будут другими. Своё значение получите через Get-Location или pwd.
Пробелы требуют кавычек¶
Если имя содержит пробел, оболочка без кавычек примет части за разные аргументы:
Для учебных файлов проще использовать имена без пробелов: academy-lab, raw-data, positions.txt.
Безопасная последовательность¶
Перед каждой операцией придерживайтесь одного ритма:
- покажите текущую папку;
- покажите её содержимое;
- произнесите, что должна сделать следующая команда;
- выполните одну команду;
- снова проверьте папку или содержимое.
Так ошибка обнаруживается сразу, а не после десяти действий. В этом модуле не используются команды удаления, административные права и массовые операции.
Упражнение¶
Соберите структуру:
Затем выполните и объясните:
- покажите текущую папку и её содержимое;
- перейдите из корня в
data/input; - вернитесь в корень, используя
cd ..два раза; - прочитайте
docs/notes.txtотносительным путём; - запустите
hello.py; - намеренно укажите
missing.pyи объясните ошибку без изменения файлов.
Самопроверка¶
- Как узнать, где находится терминал?
- Чем команда показа содержимого отличается от
cd? - Что означает
..? - Как прочитать путь
docs/notes.txtпо шагам? - Почему один относительный путь может работать до
cdи перестать работать после него?