JAVA_HOME: .bashrc или .profile

Мне нужно установить некоторые переменные, такие как JAVA_HOME и добавить их в PATH . Могу ли я как-то определить их в .profile и включить их в .bashrc ? Или, может быть, добавить их в 3-й файл и ссылаться на этот файл в .bashrc и .profile ?

1
задан 23 May 2013 в 17:59

3 ответа

От man bash:

Когда удар вызывается как интерактивная оболочка входа в систему, или как неинтерактивная оболочка с - опция входа в систему, он сначала читает и выполняет команды из файла/etc/profile, если тот файл существует. После чтения того файла это ищет ~/.bash_profile, ~/.bash_login и ~/.profile, в том порядке, и читает и выполняет команды от первой, которая существует и читаема. - noprofile опция может использоваться, когда оболочка запускается для запрещения этого поведения.

и

Bash пытается определить, когда он выполняется с его стандартным входом, подключенным к сетевому соединению, как тогда, когда выполняется удаленным демоном оболочки, обычно rshd, или безопасным демоном оболочки sshd. Если удар решает, что выполняется этим способом, он читает и выполняет команды от ~/.bashrc и ~/.bashrc, если эти файлы существуют и читаемы. Это не сделает этого, если вызвано как sh. - norc опция может использоваться для запрещения этого поведения, и - rcfile опция может использоваться, чтобы вынудить другой файл быть считанным, но rshd обычно не вызывает оболочку с теми опциями или позволяет им быть указанными.

Другими словами, ~/.profile и ~/.bashrc будет обычно оба читаться, когда Вы запустите bash, таким образом, можно поместить его в также.

Можно также использовать source luke в любом файле для загрузки файла luke где Вы определили бы все свои яванские переменные. Посмотрите help . или help source для деталей.

2
ответ дан 23 May 2013 в 17:59

Вы можете делать именно то, что вы упомянули. При удалении ssh в терминал bash будет получен источник .bash_profile , а при создании нового xterm будет получен источник .bashrc . Было бы лучше, если бы вы поместили информацию о вашей переменной среды в другой файл .profile и из обоих источников .bash_profile и .bashrc из источника .profile.

. ~ / .Profile

0
ответ дан 23 May 2013 в 17:59

Во-первых, вы никогда не добавите JAVA_HOME в свой PATH. Они служат различным целям в качестве переменных среды. Во-первых, устанавливает, где установлены ваши двоичные файлы Java, чтобы другие программы, основанные на Java, могли знать. Второй - это набор мест, где bash будет искать команды, которые вы вводите в терминале, например ls, cd и т. Д.

Во-вторых, оба файла будут работать, но вы должны быть осторожны при установке переменных внутри .bashrc, потому что вы можете перезаписать те, которые уже настроены в других файлах, как PATH. Наиболее безопасный способ сделать это - добавить «: $ PATH» в конце пути. Это будет что-то вроде этого (добавляет двоичные файлы Java в PATH, чтобы иметь возможность вызывать такие команды, как javac):

export PATH="/usr/java/jdk1.8.0_121/bin:$PATH"

Чтобы установить JAVA_PATH, наиболее безопасный (и автоматический ... rsrs) Это можно сделать, добавив следующий код в конец .bashrc:

export JAVA_HOME=$(update-alternatives --query javac | sed -n -e 's/Best: *\(.*\)\/bin\/javac/\1/p')

После того, как вы это сделаете, вам придется выполнить exec bash или закрыть и снова открыть окно терминала. Чтобы проверить, установлены ли ваши переменные, запустите на терминале:

echo $JAVA_HOME
echo $PATH

Вы должны увидеть значение внутри переменных.

ОБНОВЛЕНИЕ: Помните, что все эти файлы, такие как .bashrc, находятся в вашем домашнем каталоге. Что-то вроде /home/<your name> или просто набрав cd без каких-либо других аргументов. Помните также, что файлы, которые начинаются с «точки» ., не видны, просто набрав ls на терминале. если вы хотите увидеть эти файлы, вы должны ls -a

0
ответ дан 23 May 2013 в 17:59

Другие вопросы по тегам:

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