[英]Restart terminal without closing on MacOS
如何在不关闭 window 的情况下重启我当前的 MacOS 终端 session?
在 Linux 我使用exec bash
但它在这个环境中不起作用。 我对.bash_profile
(提示符、别名等)做了一些更改,我希望在不关闭它并再次打开的情况下看到它。
只需输入命令:
exec bash -l
我想应该这样做。
对于zsh
,
exec zsh -l
这是必需的,因为默认情况下macOS
的每个 shell 都是登录 shell。
仅编写exec bash
将用非登录 shell 替换当前 shell,这与关闭和重新打开终端的效果不同。
exec
将使新的bash -l
进程替换当前的 shell。 如果不使用exec
, bash -l
将在当前 shell 上产生一个新的 shell,增加$SHLVL
。
对我来说,其他解决方案都不适用于 ZSH。
只需source ~/.zshrc
实际上就完成了这项工作。
注意:运行exec zsh -l
输出/Users/my_username/.zprofile:3: command not found: yarn
(其中my_username
是我的用户名)。 但是只运行上面提到的命令就可以完成这项工作。
假设您将问题解释为在终端会话状态下与关闭和重新打开终端具有相同的效果,实际答案似乎是运行所用 shell 的可执行文件以启动新会话:
https://unix.stackexchange.com/a/217907/137983
zsh
如果您不在使用 ZSH 是默认 shell 的 Catalina,它将是:
bash
在此之后,上一个会话的所有状态(如会话环境变量)将被重置。 我认为还应该重新获取 ZSH 配置文件。
如果您对.bashrc
和.bash_profile
进行了任何更改,那么无需关闭终端,您可以在.bashrc
和.bash_profile
指定alias
,如下所示重新启动终端:
alias rest='exec bash -l;source ~/.bashrc;source ~/.bash_profile'
此命令再次获取 .bashrc 和 .bash_profile 的来源,从某种意义上说会重新启动终端并创建新的终端会话。 这个对我有用。 试试这个!
因此,如果您想重新启动终端,只需在终端中输入rest
(restart 的缩写)即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.