完全重启Bash


18

有没有一种方法可以完全重新启动Bash并重新加载.bashrc等等.profile?在编辑这些文件后,我想确保所做的更改能够正确进行。

Answers:


32

用它代替自己。

exec bash -l

请注意,这不会影响cwd或导出的变量。


不错,但我特别想这样做是为了检查,看看如果我的PATH或者是被设置为我想我的PS1,等等
Naftuli凯

1
取出exec,您会得到一个外壳,该外壳可提供所需的文件。然后,exit当您完成检查时。
Arcege 2011年

@TK:您分配的任何变量都将优先于前一个Shell剩余的变量。
伊格纳西奥·巴斯克斯

因此,这对于更改我的Bash提示有效吗?即,每次运行它都会重新加载bash提示吗?
Naftuli Kay 2011年

只要您$PS1在bash的启动文件中进行设置,就可以。
伊格纳西奥·巴斯克斯

9

我紧急建议登录一个单独的窗口/屏幕。这样,如果对启动文件所做的更改有问题,您仍然可以进行工作。另外,您一定要拥有干净的环境。

原因:我看到太多的人由于.profile(或此类)中的简单错字而将自己锁定在系统之外。


+10,干净的外壳,可以在其中更改编辑,这一点至关重要。
Sardathrion-恢复莫妮卡2011年

我在DE中,所以应该没那么糟,包豪斯(Bauhaus)是的,要小心。
Naftuli Kay 2011年

3

如果您的目标只是再次读取已修改的文件,则不必重新启动它。您可以简单地获取它。

source filename

要么

. filename # notice the dot

请注意,从某种意义上说,这不会给您“干净的状态”,因为它不会取消设置任何变量或已定义的函数。


2
su -l yourOwnUserName

将为yourOwnUserName用户打开一个新的外壳,并重新加载所有设置。这与外壳程序无关,因为它指的是系统设置,而不是您的特定外壳程序。它还会加载某些系统范围内的设置,bash -l例如用户组。


重要说明:“新鲜外壳”是指现有外壳中的外壳,因此您只是嵌套外壳,而不是替换原始外壳。接受的答案可以正确地做到这一点。
underscore_d
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.