Где определяется PATH в CentOS? - PullRequest
0 голосов
/ 04 мая 2020

Я начал искать такие файлы, как:

  • / etc / profile
  • ~ / .bash_profile
  • et c.

, чтобы определить местоположение переменных среды. К сожалению, я не смог найти переменную $ PATH. Я использую Bash.

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Вам не нужно беспокоиться (или даже спрашивать), где установлен PATH, поскольку вам не следует доверять случайному дистрибутиву, чтобы поместить правильные каталоги в правильную последовательность.

Вместо этого вы устанавливаете PATH вам нужно в профиле вашей оболочки. Вот и все.

В качестве отправной точки POSIX требует, чтобы getconf PATH возвращало системное значение по умолчанию PATH. Если у вас есть $HOME/bin, а есть /usr/local/bin, то вы добавляете их. Вот как это выглядит на моей машине:

PATH="$(/usr/bin/getconf PATH)"
PATH="$PATH:/usr/sbin"
PATH="$PATH:/usr/local/bin"
PATH="$PATH:$HOME/bin"

С помощью этой настройки легко адаптировать последовательность. Может тебе не нравится древний vim в /usr/bin/vi? Скомпилируйте его самостоятельно и переместите /usr/local/bin на передний план.

0 голосов
/ 04 мая 2020

Исходная переменная окружения PATH наследуется от ... независимо от того, какая оболочка была запущена. Например, такие команды, как sudo, sshd, независимо от того, что вы создаете, после входа в систему на рабочем столе.

Также представляется, что PATH встроен в двоичный файл bash для случаев, когда начальный PATH не наследуется. (Посмотрите на вывод strings /bin/bash.)

Тогда различные сценарии инициализации оболочки получают go при установке или обновлении PATH. Например, в Ubuntu переменная PATH обновляется с помощью /etc/profile.d/apps-bin-path.sh ..., которая выполняется /etc/profile.

...