Erstellen Sie eine Tmux-Sitzung in separaten Shells

Erstellen Sie eine Tmux-Sitzung in separaten Shells

Ich möchte tmux-Sitzungen verwenden, um Fenster/Bereiche in verschiedenen Shells zu verwalten. Mir ist aufgefallen, dass tmux für alle nachfolgenden Sitzungen immer die Shell verwendet, aus der es zuerst gestartet wurde, unabhängig davon, welche Shell dafür verwendet wurde.

Ich habe zwei Muscheln. Nennen wir sie a und b

In der ersten Shell führe ich aus:

tmux new -s a

In der zweiten Shell führe ich aus:

tmux new -s b

Was mir schließlich auffällt, ist, dass die tatsächliche Shell, die von tmux-Sitzung b verwendet wird, Shell a ist. Die Umgebungsvariablen werden korrekt übernommen, aber die Shell selbst ist nicht die, die ich erwartet hatte.

Irgendwelche Vorschläge, wie man tmux dazu bringt, problemlos mit mehreren Shells zusammenzuarbeiten?

Antwort1

Sie können mehrere tmux-Server erstellen, die jeweils eine andere Shell verwenden.

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

Dertmux-Manpagegibt an, dass die [-L socket-name]Option die Angabe eines anderen Socket-Namens erlaubt,ermöglicht den Betrieb mehrerer unabhängiger tmux-Server.

Ich habe festgestellt, dass jedes neue Fenster, das in jeder Server-Sitzung erstellt wird, die Shell verwendet, die durch die Umgebungsvariable SHELL für diese Sitzung angegeben ist.

Dies funktioniert für tmux 1.8, über frühere Versionen weiß ich nichts.

verwandte Informationen