簡體   English   中英

在 MacOS 上重新啟動終端而不關閉

[英]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。 如果不使用execbash -l將在當前 shell 上產生一個新的 shell,增加$SHLVL

對我來說,其他解決方案都不適用於 ZSH。

只需source ~/.zshrc實際上就完成了這項工作。

注意:運行exec zsh -l輸出/Users/my_username/.zprofile:3: command not found: yarn (其中my_username是我的用戶名)。 但是只運行上面提到的命令就可以完成這項工作。

如果你的session掛了(可能是你的SSH連接中斷了),你輸入命令是無法重啟的。

在 iTerm 上,您可以導航到菜單欄中的“會話”>“重啟會話”。

您還可以通過“iTerm”>“首選項”>“鍵”>“鍵綁定”>“+”為此添加鍵綁定。

  • 快捷鍵:你選,我用Cmd-R
  • 操作:“選擇菜單項...”>“重新啟動會話”

鍵盤快捷方式示例

假設您將問題解釋為在終端會話狀態下與關閉和重新打開終端具有相同的效果,實際答案似乎是運行所用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM