Как узнать, где установлен $ MANPATH?

Как узнать, в каком файле конфигурации установлена ​​переменная среды $MANPATH? Есть ли способ отследить значения?

Мне известно, что я могу просматривать всю файловую систему, используя find или grep. Я использую zsh большую часть времени вместо bash. Я использую Ubuntu Precise.

4
задан 17.02.2020, 21:20

3 ответа

Как уже писали другие, Ubuntu по умолчанию не устанавливает MANPATH. Вы можете отредактировать .profile и добавить MANPATH, как вам нравится. Но где Ubuntu получает информацию о вашем manpath?

Эта информация установлена ​​в /etc/manpath.config. Пакет man-db использует эту информацию для настройки путей для man. Переменная окружения MANPATH имеет приоритет над файлом manpath.config. Файл содержит следующие (и, вероятно, больше) записи:

MANDATORY_MANPATH /usr/share/man
MANPATH_MAP /usr/bin /usr/man
DEFINE troff groff -mandoc

Первая строка сообщает программе, которая автоматически генерирует MANPATH, какие каталоги она должна содержать. Обычно здесь устанавливаются /usr/man, /usr/share/man и другие.

Далее идет отображение от пользователей PATH на правильное MANPATH. Если у пользователя есть /usr/bin в его PATH, MANPATH должен содержать /usr/man в моем приведенном выше примере.

Значение DEFINE имеет некоторый набор аргументов и программ по умолчанию для утилит пейджинга.

5
ответ дан 17.02.2020, 21:21
  • 1
    Там какой-либо путь к , добавляют/добавляют к пути поиска по умолчанию? Или export MANPATH=$(man -w):/new/path лучший способ? – Evan Teran 17.02.2020, 21:22

Ubuntu по умолчанию не устанавливает $MANPATH, поэтому ваш поиск может быть ограничен вашим ~/.{ba,z}shrc и файлами, которые они включают

Путь поиска, скомпилированный в команду man, можно увидеть с помощью [112 ]. В моей системе (12.10) это возвращает /usr/local/man:/usr/local/share/man:/usr/share/man

4
ответ дан 17.02.2020, 21:22

Попробуйте запустить

zsh -x -ls -c "exit" 2> shell-startup-output

После выполнения этой команды файл shell-startup-output должен отображать каждый исходный файл при запуске оболочки. Затем вы можете просмотреть каждый из этих файлов, чтобы увидеть, какой из них установлен $MANPATH$.

Если это не работает для вас, единственный другой способ, которым я знаю, это использовать grep или find.

1
ответ дан 17.02.2020, 21:22
  • 1
    Это производит пути, но не названия конфигурационных файлов - или я неправильно понимаю Вас? – Chad 17.02.2020, 21:23
  • 2
    Это должно работать в bash, а также zsh. – Warren Stevens 17.02.2020, 21:23

Теги

Похожие вопросы