Изменение PATH с рыбной раковиной

В настоящее время я играю с оболочкой для рыбы, и у меня возникают проблемы с тем, как установить переменную 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 исходят из?

Ответы

Ответ 1

Эта команда:

set -U fish_user_paths /usr/local/bin $fish_user_paths

Это добавит /usr/local/bin постоянно к вашему пути.

Ответ 2

Как и во всех оболочках, рыба наследует свой 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 и отразить ее через все оболочки.