Повністю перезавантажте Bash


18

Чи є спосіб , щоб повністю рестарт Bash і перезарядження .bashrcі .profileтощо? Я хотів би переконатися, що зміни змінилися належним чином після редагування цих файлів.

Відповіді:


32

Нехай він замінить себе самим собою.

exec bash -l

Зауважте, що це не вплине на такі речі, як cwd або експортовані змінні.


Приємно, але я особливо хотів би зробити це для того, щоб перевірити і побачити, чи моє PATHвстановлено так, як я хочу, або моє PS1, тощо.
Naftuli Kay

1
Вийміть execі ви отримаєте оболонку, яка джерела потрібних файлів. Тоді саме exitтоді, коли ви закінчите перевірку.
Арседж

@TK: Будь-які змінні, які ви призначите, матимуть перевагу над тими, що залишилися від попередньої оболонки.
Ігнасіо Васкес-Абрамс

Так це допоможе змінити мій підказку Bash? Тобто, він буде перезавантажувати моє баш-підказки кожного разу, коли я його запускаю?
Naftuli Kay

Поки ви встановлюєте $PS1файли запуску bash, так.
Ігнасіо Васкес-Абрамс

9

Настійно пропоную увійти в окреме вікно / екран. Таким чином, у вас все ще працює робочий сеанс, якщо з вашими змінами у файлах запуску щось піде не так. Крім того, ви впевнені, що чисте середовище.

Причина: Я бачив занадто багато людей, які закривались із системи через простую друк у своєму .profile (або подібному).


+10, чиста оболонка, в якій ви можете змінювати зміни, є важливою.
Сардатріон

Я в DE, тому це не повинно бути так погано, Баухаус так, будьте обережні.
Naftuli Kay

3

Якщо ваша мета - просто прочитати змінені файли ще раз, вам не доведеться перезавантажувати його. Ви можете просто його джерело.

source filename

або

. filename # notice the dot

Зауважте, що це не дасть вам "чистого стану" в тому сенсі, що це не скасує будь-які встановлені змінні чи визначені функції ...


2
su -l yourOwnUserName

Відкриє свіжу оболонку для yourOwnUserNameкористувача із усіма налаштуваннями, завантаженими повторно. Це незалежно від оболонки, оскільки стосується налаштувань системи, а не конкретної оболонки. Він також завантажує деякі загальносистемні налаштування, які bash -lне (як групи користувачів).


важлива примітка: "свіжа оболонка" тут означає оболонку в межах вашої існуючої оболонки, тому ви вкладаєте лише раковини, не замінюючи оригінальну. Прийнята відповідь робить це правильно.
підкреслити_24
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.