在單獨的 shell 中建立 tmux 會話

在單獨的 shell 中建立 tmux 會話

我想使用 tmux 會話來管理不同 shell 中的視窗/窗格。我注意到,tmux 將始終使用首次啟動它的所有後續會話的 shell,無論這些會話使用什麼 shell。

我有兩個貝殼。我們稱它們為a和b

在第一個 shell 中我運行:

tmux new -s a

在第二個 shell 中我運行:

tmux new -s b

我最終注意到,tmux 會話 b 使用的實際 shell 是 shell a。環境變數繼承正確,但 shell 本身不是我期望的那樣。

關於如何讓 tmux 與多個 shell 很好地配合,有什麼建議嗎?

答案1

您可以建立多個 tmux 伺服器,每個伺服器使用不同的 shell。

$> SHELL=$(which zsh) && tmux -L zsh-tmux-socket new -s zsh-session
$> SHELL=$(which bash) && tmux -L bash-tmux-socket new -s bash-session

tmux 手冊頁表示該[-L socket-name]選項允許指定不同的套接字名稱,允許運行多個獨立的 tmux 伺服器

我發現在每個伺服器會話中建立的每個新視窗都將使用該會話的 SHELL 環境變數指定的 shell。

這適用於 tmux 1.8,我不知道早期版本。

相關內容