it-swarm.com.ru

Как перезагрузить .bash_profile из командной строки?

Как я могу перезагрузить .bash_profile из командной строки? Я могу заставить Shell распознавать изменения в .bash_profile, выйдя и войдя обратно, но я бы хотел сделать это по требованию.

796
markdorison

Просто введите source ~/.bash_profile

Кроме того, если вам нравится сохранять нажатия клавиш, вы можете набрать . ~/.bash_profile

1534
SiegeX
. ~/.bash_profile

Просто убедитесь, что у вас нет никаких зависимостей от текущего состояния.

88
Carl Norum

Просто введите:

. ~/.bash_profile

Однако если вы хотите, чтобы исходный код запускался автоматически при запуске терминала, а не каждый раз, когда вы открываете терминал, вы можете добавить . ~/.bash_profile в файл ~/.bashrc.

Примечание:

Когда вы открываете терминал, терминал запускает bash в интерактивном режиме (не входящем в систему), что означает, что он будет источником ~/.bashrc.

~/.bash_profile получает только bash при запуске в интерактивный режим входа в систему. Обычно это происходит только при входе в консоль (Ctrl+Alt+F1..F6) или подключение через ssh.

28
Mohammad Anini

Вы также можете использовать эту команду для перезагрузки ~/.bash_profile для этого пользователя. Обязательно используйте тире.

su - username
14
user1003932
  1. Сохранить .bash_profile file 
  2. Перейдите в домашний каталог пользователя, набрав cd 
  3. Перезагрузите профиль с помощью . .bash_profile 
11
Mithun Khatri

Мне нравится тот факт, что после того, как вы только что отредактировали файл, все, что вам нужно сделать, это набрать:

. !$

Это источник файла, который вы только что отредактировали в истории. Смотрите Что такое взрыв доллара в bash .

9
hyper_st8

вам просто нужно ввести . ~/.bash_profile

обратитесь: https://superuser.com/questions/46139/what-does-source-do

3
Jenil Mewada

Добавьте alias bashs="source ~/.bash_profile" в ваш bash-файл . Чтобы вы могли вызывать bashs в следующий раз

3
Shemeer M Ali

если файл .bash_profile не существует, вы можете попробовать выполнить следующую команду:

. ~/.bashrc 

или же

 source ~/.bashrc

вместо .bash_profile . Вы можете найти больше информации о bashrc

2
3p3ch3

Если вы не против потерять историю вашего текущего терминала Shell, вы также можете сделать

bash -l

Это раскошелит вашу Shell и откроет еще один дочерний процесс bash. Параметр -l указывает bash запускаться как оболочка входа в систему, это необходимо, потому что .bash_profile не будет работать как оболочка без регистрации, для получения дополнительной информации об этом читайте здесь

Если вы хотите полностью заменить текущую оболочку, вы также можете сделать:

exec bash -l

Вышеприведенное не будет ветвить вашу текущую оболочку, но полностью ее заменит, поэтому, когда вы наберете exit, она полностью прекратит работу, а не перенесет вас в предыдущую оболочку.

2
Ulukai

Я хотел опубликовать быстрый ответ, что, хотя source ~/.bash_profile или ответы, упомянутые выше, работают, стоит упомянуть, что это только перезагружает ваш профиль bash на текущей вкладке или сеансе, который вы просматриваете. Если вы хотите перезагрузить свой профиль bash на каждой вкладке/оболочке, вам нужно вручную ввести эту команду в каждую из них.

Если вы используете iTerm, вы можете использовать CMD⌘+Shift+I ввести команду во все текущие вкладки . Для терминала может быть полезно сослаться на это проблема ;

2
aug
alias reload!=". ~/.bash_profile"

или если хотите добавить логи через функции

function reload! () {
    echo "Reloading bash profile...!"
    source ~/.bash_profile
    echo "Reloaded!!!"
}
1
7urkm3n

Я использую Debian, и я могу просто набрать exec bash, чтобы добиться этого. Я не могу сказать, будет ли это работать на всех других дистрибутивах.

1
Cassandra

Я использую Sierra и некоторое время работал над этим (пробовал все рекомендуемые решения). Я запутался, поэтому в конце концов попытался перезагрузить компьютер! Это сработало

я пришел к выводу, что иногда необходим жесткий сброс

0
Mike Palmice