Как я могу перезагрузить
.bash_profile
из командной строки ?
Я могу заставить оболочку распознавать изменения .bash_profile
, выйдя и войдя обратно, но я бы хотел сделать это по требованию.
Как я могу перезагрузить
.bash_profile
из командной строки ?
Я могу заставить оболочку распознавать изменения .bash_profile
, выйдя и войдя обратно, но я бы хотел сделать это по требованию.
Ответы:
Просто наберите source ~/.bash_profile
Кроме того, если вам нравится сохранять нажатия клавиш, вы можете набрать . ~/.bash_profile
alias reload='source ~/.bash_profile && echo "File .bash_profile reloaded correctly" || echo "Syntax error, could not import the file"';
. ~/.bash_profile
Просто убедитесь, что у вас нет никаких зависимостей от текущего состояния.
.
команда в этом случае?
.
это просто псевдоним source
команды.
.
старше source
IS.
source
является специфической реализацией bash.
.
и source
буквально то же самое в bash. По ссылке: « source
это синоним точки / периода» .
в bash, но не в POSIX sh, поэтому для максимальной совместимости используйте точку ».
Просто введите:
. ~/.bash_profile
Однако, если вы хотите, чтобы исходный код запускался автоматически при запуске терминала, а не каждый раз, когда вы открываете терминал, вы можете добавить его . ~/.bash_profile
в ~/.bashrc
файл.
Замечания:
Когда вы открываете терминал, терминал запускает bash в интерактивном режиме (не входящем в систему), что означает, что он будет источником ~/.bashrc
.
~/.bash_profile
Получается только от bash при запуске в режиме интерактивного входа . Обычно это происходит только при входе в консоль ( Ctrl+ Alt+ F1.. F6) или при подключении через ssh
.
Вы также можете использовать эту команду для перезагрузки ~ / .bash_profile для этого пользователя. Обязательно используйте тире.
su - username
Мне нравится тот факт, что после того, как вы только что отредактировали файл, все, что вам нужно сделать, это набрать:
. !$
Это источник файла, который вы только что отредактировали в истории. Посмотрите, что такое взрыв доллара в bash .
cd
. .bash_profile
cd
. Нет необходимости ~
.
cd
- вы можете просто перезагрузить его из каталога, в котором вы сейчас находитесь:. ~/.bash_profile
Если вы не против потерять историю вашего текущего терминала оболочки, вы также можете сделать
bash -l
Это раскроет вашу оболочку и откроет еще один дочерний процесс bash. -l
Параметр говорит Баш для работы в качестве оболочки, это необходимо потому , что .bash_profile не будет работать , как нерегистрированная оболочка, для получения дополнительной информации об этом читайте здесь
Если вы хотите полностью заменить текущую оболочку, вы также можете сделать:
exec bash -l
Вышеприведенное не будет разветвлять вашу текущую оболочку, но полностью ее заменит, поэтому при вводе exit
она полностью прекратит работу, а не перенесет вас в предыдущую оболочку.
Добавьте alias bashs="source ~/.bash_profile"
в ваш файл bash. Так что вы можете позвонить в bashs
следующий раз
reset
- легче запомнить
Если файл .bash_profile не существует, вы можете попробовать выполнить следующую команду:
. ~/.bashrc
или
source ~/.bashrc
вместо .bash_profile. Вы можете найти больше информации о bashrc
Я хотел бы опубликовать быстрый ответ, который, хотя использование source ~/.bash_profile
или ответы, упомянутые выше, работают, стоит упомянуть, что это только перезагружает ваш профиль bash в текущей вкладке или сеансе, который вы просматриваете. Если вы хотите перезагрузить свой профиль bash на каждой вкладке / оболочке, вам нужно вручную ввести эту команду в каждую из них.
Если вы используете iTerm, вы можете использовать CMD⌘+ Shift+, Iчтобы ввести команду во все текущие вкладки . Для терминала может быть полезно обратиться к этой проблеме ;
вам просто нужно напечатать . ~/.bash_profile
Я использую Debian, и я могу просто напечатать, exec bash
чтобы достичь этого. Я не могу сказать, будет ли это работать на всех других дистрибутивах.
. .bash_profile
находясь в вашем домашнем каталоге на Mac, и сделает эту работу. То же, что и ответ, приведенный выше 7urkm3n.
alias reload!=". ~/.bash_profile"
или если хотите добавить логи через функции
function reload! () {
echo "Reloading bash profile...!"
source ~/.bash_profile
echo "Reloaded!!!"
}
. ~/. bash_profile
ниsource ~/.bash_profile
Я использую Sierra и некоторое время работал над этим (пробовал все рекомендуемые решения). Я запутался, поэтому в конце концов попытался перезагрузить компьютер! Это сработало
я пришел к выводу, что иногда необходим жесткий сброс
alias BASHRELOAD=". ~/.bash_profile"
. Если вы делаете это часто, вы можете просто использовать псевдоним какbr
.