fshshsh
Есть интерпретатор, есть библиотеки. Есть консоль.
Пути прописывать надо только для удобства работы в консоли?
Похоже, ты не знаешь, чем консоль отличается от командной оболочки. Консоль - это то место, где пользователь может подключаться к операционной системе. Командная оболочка - это то, что запускается в консоли и распознаёт язык команд для самой себя и для операционной системы.
fshshsh
Для чего вообще существуют системные переменные? Что значит “домашняя директория”? Какую роль они играют?
Переменные окружения - это пары, которые помнит командная оболочка между вызовами программ.
Вот, например, программа выводит три строки из файла
[guest@localhost ~]$ head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[guest@localhost ~]$
Здесь мы используем переменные командной оболочки (переменные среды)
[guest@localhost ~]$ s1=/etc/passwd
[guest@localhost ~]$ s2=3
[guest@localhost ~]$
[guest@localhost ~]$ head -$s2 $s1
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[guest@localhost ~]$
Здесь мы используем переменные командной оболочки для вывода текста
[guest@localhost ~]$ s1=string1
[guest@localhost ~]$ s2=string2
[guest@localhost ~]$
[guest@localhost ~]$ echo $s1 $s2
string1 string2
[guest@localhost ~]$
HOME и PATH - это точно такие же переменные, просто они записаны большими буквами. Вообще, если переменная записана большими буквами, значит она используется какими-то программами (служебная переменная). Ты можешь менять служебные переменные, они при следующей загрузке снова восстановятся.
А зачем нужны они - ну, ты пишешь программу, которая сохраняет файлы в какой-то каталог. Ты можешь использовать путь к этому каталогу, а можешь использовать переменную, в которой записан путь к этому каталогу. Когда программа написана, тебе может понадобиться переместить сам каталог куда-нибудь. И вот тут возникает загвоздка: если путь к каталогу зашит в программу, она перестанет работать, если ты его переместишь; а если у тебя путь к каталогу сделан в виде переменной, то ты просто эту переменную меняешь - и программа видит каталог по новому пути. (Это называется абстрагированием.)