Мне нужно установить некоторые переменные, такие как JAVA_HOME и добавить их в PATH . Могу ли я как-то определить их в .profile и включить их в .bashrc ? Или, может быть, добавить их в 3-й файл и ссылаться на этот файл в .bashrc и .profile ?
От 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
для деталей.
Вы можете делать именно то, что вы упомянули. При удалении ssh в терминал bash будет получен источник .bash_profile , а при создании нового xterm будет получен источник .bashrc . Было бы лучше, если бы вы поместили информацию о вашей переменной среды в другой файл .profile и из обоих источников .bash_profile и .bashrc из источника .profile.
. ~ / .Profile
Во-первых, вы никогда не добавите 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