Ответ 1
Эта команда:
set -U fish_user_paths /usr/local/bin $fish_user_paths
Это добавит /usr/local/bin
постоянно к вашему пути.
В настоящее время я играю с оболочкой для рыбы, и у меня возникают проблемы с тем, как установить переменную PATH
. Для чего это стоит, я также использую oh-my-fish.
Если я повторю свой текущий путь, я получаю:
➜ fish echo $PATH
/usr/local/bin /usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/X11/bin /usr/texbin /Users/myname/.opam/system/bin
Глядя на ~/.config/fish/config.fish
, я вижу следующую строку
set PATH /usr/local/bin $PATH /Users/myname/.opam/system/bin
Мой вопрос (и эта фразировка, вероятно, отразит мою нехватку знаний по этому вопросу): до обработки config.fish
, где находится переменная PATH
? т.е.: где все пути между /usr/local/bin
и /Users/myname/.opam/system/bin
исходят из?
Эта команда:
set -U fish_user_paths /usr/local/bin $fish_user_paths
Это добавит /usr/local/bin
постоянно к вашему пути.
Как и во всех оболочках, рыба наследует свой PATH из среды, в которой он запущен. Как это устанавливается для систем входа в систему, отличается от операционной системы - в Linux, например, /etc/login.defs
управляет исходным набором PATH для всех оболочек входа. Я не знаю, как это установить на OS X.
Далее, как bash
или csh
, файлы инициализации для оболочки могут изменить путь. Для рыбы в OS X есть код в share/fish/config.fish
для загрузки путей из стандартных файлов конфигурации пути OS X /etc/paths
и /etc/paths.d/*
. Существует альтернативный код для установки полезного пути в Solaris.
Существует также код для выбора путей из универсальной переменной $fish_user_paths
, которая является правильным способом добавить что-то в вашу PATH и отразить ее через все оболочки.