Проблемы с дублированием $ PATH

Если я делаю echo $PATH я получаю следующее:

/ USR / местные / бен: / USR / местные / SBIN: / USR / бен: / USR / SBIN: / USR / местные / доли / НМП / бен: / USR / местные / доли / питон: / OPT / X11 / бен : /Users/kh/.rvm/bin: / USR / бен: / бен: / USR / SBIN: / SBIN: / USR / местные / бен: / OPT / X11 / бен

Это в файле ~ / .zshrc:

export PATH = / usr / local / bin: / usr / local / sbin: / usr / bin: / usr / sbin: / usr / local / share / npm / bin: / usr / local / share / python: / opt / X11 / бен: $ HOME / .rvm / бен: $ PATH

Мне пришлось вручную добавить / usr / local / etc … в начале этого файла, потому что доморощенный жаловался.

Я искал все возможные файлы (я знаю), чтобы найти, откуда строится $ PATH. Но безрезультатно. Эти

 ~/.bash_profile ~/.bashrc ~/.profile 

Какие-либо предложения.

4 Solutions collect form web for “Проблемы с дублированием $ PATH”

Я не знаю, какой другой файл устанавливает вашу $PATH но дублированные записи

 /opt/X11/bin /usr/bin /usr/local/bin /usr/sbin 

Все они установлены в вашем ~/.zshrc поэтому все, что вам нужно сделать, не установлено там. В любом случае, все они должны быть в $PATH по умолчанию, и их не нужно добавлять. Большинство систем поставляются с $PATH по умолчанию, которые будут включать эти каталоги, дополнения, сделанные в файлах ~/.zshrc для пользователей, должны добавлять только нестандартные каталоги.

Измените свою декларацию $PATH на

export PATH = / usr / local / sbin: / usr / local / share / npm / bin: / usr / local / share / python: $ HOME / .rvm / bin: $ PATH

Пути по умолчанию определяются в /etc/paths на OSX. Поскольку подпроцесс наследует переменные окружения, и вы явно устанавливаете /usr/bin/ в вашей $PATH вас есть повторяющиеся записи.

Чтобы удалить дубликаты записей, вы можете использовать:

 typeset -U PATH 

Согласно странице руководства ZSH :

ФАЙЛЫ STARTUP / SHUTDOWN

Команды сначала считываются из / etc / zshenv; это нельзя переопределить. Последующее поведение изменяется с помощью параметров RCS и GLOBAL_RCS; первая затрагивает все файлы автозагрузки, а вторая касается только файлов запуска (те, которые показаны здесь, с пуском, начинающимся с /). Если одна из опций не установлена ​​в какой-либо точке, любой последующий файл (ы) запуска соответствующего типа не будет считан. Также возможно, чтобы файл в $ ZDOTDIR снова включил GLOBAL_RCS. По умолчанию установлены RCS и GLOBAL_RCS.

Затем команды считываются из $ ZDOTDIR / .zshenv. Если оболочка является оболочкой входа, команды считываются из / etc / zprofile, а затем $ ZDOTDIR / .zprofile. Затем, если оболочка является интерактивной, команды считываются из / etc / zshrc, а затем $ ZDOTDIR / .zshrc. Наконец, если оболочка является оболочкой входа, читаются / etc / zlogin и $ ZDOTDIR / .zlogin.

Таким образом, вы можете проверить:

 /etc/zshenv /etc/zshrc /etc/zlogin и /etc/zshenv /etc/zshrc /etc/zlogin и /etc/zshenv /etc/zshrc /etc/zlogin 

и любые файлы, с которыми они происходят, с источником. Поскольку вы OS X, вероятно, вы найдете что-то вроде:

 if [ -x /usr/libexec/path_helper ]; then eval `/usr/libexec/path_helper -s` fi 

который, согласно странице man path_helper , также будет выглядеть:

 /etc/paths /etc/paths.d/* и /etc/paths /etc/paths.d/* 

Вы можете установить дополнительные пути к PATH, используя следующий синтаксис:

 PATH=$PATH:/additonally_location 

Поэтому я думаю, что PATH не дублируется.

  • Есть ли преимущество в использовании ksh над zsh?
  • История команд в Zsh
  • Могу ли я условно отключить некоторые плагины oh-my-zsh?
  • Команда не найдена в zsh
  • Задайте переменные в ZSH precmd и ссылайтесь на них в подсказке
  • Как сортировать имена файлов в числовом порядке и измененный порядок времени?
  • cd в каталог символически связанного файла
  • Zsh: dirs в обратном порядке
  • Отменить параметр, используемый в команде aliased?
  • Выполнение zsh rehash после сборки
  • Как запрограммировать передачу сигнала разрыва (Magic SysRq) через последовательный терминал
  • Импорт априорной ОС zsh в Манджаро
  • Interesting Posts

    Как найти файлы с разрешениями больше, чем xxx, но игнорировать файлы с помощью SUID и SGID

    Почему гостевой сервер linux потребляет 100% центрального процессора под VirtualBox, когда гость простаивает?

    Странная проблема SSH, ssh работает с -t, но замораживает без нее

    Поддерживают ли оболочки рекурсию?

    Разница между «.» И «./» при установке переменных среды с использованием экспорта?

    ssh-agent не работает должным образом

    Xorg: несколько клавиатур, одна конфигурация

    Как подождать, когда USB-накопитель будет распознан / смонтирован во время загрузки, чтобы начать собственный сервис?

    Виртуальный бонус под Proxmox

    Апричность ОС не отображается в grub

    Извлечение содержимого между тегами

    less не показывает ожидаемый результат после поиска сценария в .cshrc

    xdotool – как получить идентификатор окна с учетом его X и Y?

    Кнопка «Назад» к средней кнопке мыши

    ssh не работает в сети, подключенной через TCP / IP

    Linux и Unix - лучшая ОС в мире.