[英]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.