Все команды, которые пользователь может захотеть выполнить, находятся в PATH. Вот для чего это. Это включает в себя команды, которые вы запускаете напрямую, команды, которые запускают другие люди напрямую, и команды, которые вы или другие люди запускаете косвенно, потому что они вызываются другими командами. Это не ограничивается командами, запускаемыми из терминала: команды, запускаемые из графического интерфейса, также ищутся в пути поиска команд (опять же, для этого он и нужен).
Потребность набрать полный путь была бы ужасна: вам нужно выяснить, что такое полный путь! Вам нужно будет отслеживать, находится ли он /usr/bin
(который содержит большинство программ, поставляемых с операционной системой), или внутри /usr/local/bin
(который содержит программы, установленные вручную администратором, а также программы, которые не являются частью основной ОС на некоторых варианты unix), или в каком-то другом системном каталоге, или где-нибудь в домашнем каталоге пользователя.
Трудно ответить о «влиянии на производительность или ремонтопригодность», потому что вы не говорите, с чем сравниваете. Если вы сравниваете с необходимостью везде вводить полный путь, это кошмар для удобства сопровождения: если вы когда-либо перемещаете программу или хотите установить более новую версию, чем та, которая шла с ОС или была установлена системным администратором, Вы должны заменить этот полный путь везде. Влияние на производительность поиска имени в нескольких каталогах незначительно.
Если вы сравниваете с Windows, это еще хуже: некоторые программы добавляют в PATH не только исполняемый файл, но и все виды дерьма, и вы получаете PATH
переменную длиной в милю, которая все еще не включает все программы, потому что многие программы не добавляют себя в системный PATH при их установке.