Терминал, shell и PATH
Одно из самых важных объяснений этой главы: что на самом деле происходит, когда вы вводите команду и нажимаете Enter.
Терминал и shell
Терминал — окно программы, где вы вводите текстовые команды и видите
текстовый ответ компьютера. Shell (командная оболочка) — программа, которая
внутри терминала на самом деле читает вашу команду и решает, что с ней делать. На Windows это
обычно PowerShell или классическая cmd, на macOS и Linux — чаще всего zsh
или bash.
Команда обычно состоит из имени программы и, при необходимости, аргументов —
дополнительных слов после неё: в python --version само
python — команда, а --version — аргумент.
Путь, файловая система и текущая папка
Shell всегда «стоит» в какой-то одной папке — она называется текущей рабочей папкой (current directory). Путь (path) — это адрес файла или папки в файловой системе. Путь бывает:
- абсолютным — начинается от корня диска, например
C:\Users\anna\projectили/home/anna/project, и работает откуда угодно; - относительным — отсчитывается от текущей папки, например
./projectили простоproject.
Переменная окружения PATH
Когда вы вводите короткую команду вроде python, компьютер не
ищет файл по всему диску — это заняло бы слишком много времени. Вместо этого shell смотрит в
специальный список папок — переменную окружения PATH — и проверяет их по
очереди в заданном порядке, пока не найдёт исполняемый файл с таким именем.
/usr/local/bin
/usr/bin
/bin
~/.local/bin
Если вы наберёте python, shell проверит
/usr/local/bin/python, затем /usr/bin/python
и так далее — и запустит первый найденный файл. Если ни в одной из папок PATH такого файла
нет — вы увидите ошибку вроде command not found (macOS/Linux) или
'python' is not recognized... (Windows).
python может запускать совсем не ту версию, которую вы только что установили. Раздел 2.6 научит это проверять.