如何重新初始化终端窗口,而不是关闭它并启动一个新窗口?


49

当我对shell / bash行为进行一些更改(例如设置别名)时,是否有快速命令重新初始化终端窗口,而不是关闭和打开新窗口?

Answers:


51

如果您要重新加载.bashrc配置,则:

source ~/.bashrc

为了减少键入,您可以source用点代替:. ~/.bashrc


2
这是一个问题,这与行为有何不同source ~/.bashrc
crasic 2011年

没有。查看bash手册页,您会发现这些命令被列为等效命令。
卡斯滕·泰尔

2
source是bash特有的。 .更标准。两者在bash中的工作方式相同。
Michael Terry

1
这只会重新加载您的PATH和一些环境变量。它不会“重置”任何内容。@NES的答案是正确的。
塞林(Cerin)

2
这不会重置任何内容,如果您对PATH进行了更新,则现在将拥有旧更新和新更新。
康斯坦丁

39

我在reset / tset命令的联机帮助页中找到了一些补充

tset重置终端初始化

命令: reset

Tset初始化终端。Tset首先确定您使用的终端类型。使用找到的第一终端类型,按如下方式进行该确定。

一个优点似乎是,它与使用的shell无关。在这里也可以和鱼一起工作。

因此,要重新初始化任何终端,只需执行以下操作:

$ tset

要么

$ reset

不幸的是,这也是错误的。它不会重置现有的环境变量。
伊萨兰迪

9

的另一种选择exec bash是,如果您更改了.profile(或.bash_profile),则可以

$ exec bash --login

这也会再次读取您的个人资料。也可以添加-i选项以明确告诉bash这是一个交互式shell,但通常可以自行解决。


对我来说,它也无需执行程序也可以工作
Armen Sanoyan

不幸的是也错了。已经设置的环境变量仍然存在,并且不会重置。
伊萨兰迪

6

您必须用新实例替换正在运行的应用程序/ shell。例如,如果您使用的bash是首选的shell,请在命令行中输入以下行($是命令行开头的占位符):

> $ exec bash

bash从头开始,正在运行的应用程序/ shell被新的实例所代替。您之前的所有修改均已消失。

备注:不要忘记您的终端应用程序可能会被重新编程。您必须手动重置终端应用程序。


2
“重新编程”是什么意思?
伊利亚·卡根

0

您的shell是可以调用的可执行文件。因此,如果您使用的是bash,则可以调用bash;如果您使用的是zsh等,则可以输入zsh


0

使用exec sudo --login --user $USER

如果还希望分解先前输入的命令(终端完全复位),请将其与resetasreset; exec sudo --login --user $USER

网络上有很多答案,但大多数答案实际上是行不通的。测试的简单方法是先设置export SOMEVAR=42然后执行所谓的reset命令并执行echo $SOMEVAR。如果是42,则不会重置环境。

也有exec -c bash -lexec env -i bash -l,但是这些都坏了,在此之后不设置$ HOME变量。

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.