当我对 shell/bash 行为进行一些更改(例如设置别名)时,是否有快速命令来重新初始化终端窗口而不是关闭和打开新窗口?
小智 74
如果您的意思是重新加载 .bashrc 配置,则:
source ~/.bashrc
为了减少打字,您可以source用点替换:. ~/.bashrc
NES*_*NES 51
我在 reset/tset 命令的联机帮助页中找到了一些附加内容
tset 重置终端初始化
命令: reset
Tset 初始化终端。Tset 首先确定您使用的终端类型。使用找到的第一个终端类型按如下方式进行该确定。
一个优点似乎是,它独立于使用的外壳。也适用于这里的鱼。
因此,要重新初始化任何终端,只需执行-
$ tset
Run Code Online (Sandbox Code Playgroud)
或者
$ reset
Run Code Online (Sandbox Code Playgroud)
小智 11
的另一个选项exec bash是,如果您更改了.profile(或.bash_profile),则可以执行
$ exec bash --login
Run Code Online (Sandbox Code Playgroud)
这也将再次读取您的个人资料。添加该-i选项并明确告诉 bash 这是一个交互式 shell也没有什么坏处,但它通常可以自己解决这个问题。
您必须用新实例替换正在运行的应用程序/shell。例如,如果您使用bash首选 shell 在命令行中键入以下行($是命令行开头的占位符):
> $ exec bash
Run Code Online (Sandbox Code Playgroud)
正在运行的应用程序/shell 被替换bash为从头开始的新实例。你之前的所有修改都没有了。
备注:不要忘记您的终端应用程序可能会重新编程。您必须手动重置终端应用程序。
使用exec sudo --login --user $USER.
如果您还希望先前输入的命令消失(完全重置终端),请将其与resetas结合使用reset; exec sudo --login --user $USER。
要保留当前工作目录,请使用以下函数:
reinit(){
reset
exec sudo --login --user "$USER" /bin/sh -c "cd '$PWD'; exec '$SHELL' -l"
}
Run Code Online (Sandbox Code Playgroud)
网络上有很多答案,但大多数实际上不起作用。简单的测试方法是设置export SOMEVAR=42然后执行所谓的重置命令并执行echo $SOMEVAR。如果是 42,则环境未重置。
还有exec -c bash -lor exec env -i bash -l,但这些都坏了,在此之后没有设置 $HOME 变量。
| 归档时间: |
|
| 查看次数: |
159058 次 |
| 最近记录: |