Как перезагрузить .bash_profile из командной строки? - PullRequest
853 голосов
/ 05 января 2011

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

Ответы [ 14 ]

1630 голосов
/ 05 января 2011

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

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

94 голосов
/ 05 января 2011
. ~/.bash_profile

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

29 голосов
/ 10 мая 2015

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

. ~/.bash_profile

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

Примечание:

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

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

14 голосов
/ 20 сентября 2012

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

su - username
13 голосов
/ 08 ноября 2016

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

. !$

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

11 голосов
/ 07 мая 2014
  1. Сохранить .bash_profile файл
  2. Перейдите в домашний каталог пользователя, набрав cd
  3. Перезагрузить профиль с . .bash_profile
4 голосов
/ 23 октября 2018

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

bash -l

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

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

exec bash -l

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

3 голосов
/ 18 августа 2018

вам просто нужно набрать . ~/.bash_profile

см .: https://superuser.com/questions/46139/what-does-source-do

3 голосов
/ 10 сентября 2015

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

2 голосов
/ 20 мая 2017

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

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

...