it-swarm.com.de

Wie kann ich tmux dazu bringen, meine Standardshell zu verwenden?

Bei einem neuen Setup verwendet tmux bash anstelle meiner Standardeinstellung (zsh).

Wie kann ich die Verwendung von zsh erzwingen?

143
re5et
set-option -g default-Shell /bin/zsh

in ~/.tmux.conf oder /etc/tmux.conf. Funktioniert auf Fedora.

Möglicherweise müssen Sie tmux mit killall tmux; tmux neu starten

186
Alex Hammel

Stellen Sie zunächst sicher, dass Ihre Standard-Shell ordnungsgemäß auf zsh eingestellt ist, indem Sie dies in Ihrer Befehlszeile ausführen:

chsh -s $(`which zsh`) $USER

Das Folgende in Ihre ~/.tmux.conf einzufügen, ist eine robustere Option für jede Shell.

set-option -g default-Shell $Shell
39
DebugXYZ

Schreiben Sie diese Zeile in den unteren Bereich Ihres ~/.tmux.conf

set-option -g default-command "reattach-to-user-namespace -l zsh"

Nachdem Sie das hinzugefügt haben, töten Sie Ihren tmux-Server und starten Sie ihn neu. Alle sollten funktionieren.

20
wyattdanger

Wenn Sie tmux zwingen möchten, dieselbe Shell zu verwenden, die in Ihrer Umgebungsvariablen angegeben ist, können Sie Folgendes verwenden:

# force Shell ENV variable as Shell
set-option -g default-Shell ${Shell}

in deinem ~/.tmux.conf oder /etc/tmux.conf.

Damit die Änderung tatsächlich wirksam wird, müssen Sie möglicherweise tmux kill-server und dann tmux eingeben, um tmux neu zu starten.

3
mareoraft

Benutze chsh(1):

chsh -s /bin/zsh $USER
2
amphetamachine

Abmelden und erneut anmelden hat mein Problem behoben. Wenn $Shell als Echo ausgegeben wurde, war es noch /bin/bash, aber nach dem Abmelden wurde es in /usr/bin/zsh geändert.

2
Patrick Cho

Die akzeptierte Antwort hat bei mir nicht funktioniert.

Ich musste beides schreiben

set -g default-Shell "/bin/bash"

und

set -g default-commanmd "/bin/bash"

in meinem ~/.tmux.conf - Vergiss nicht den tmux kill-server; tmux, um die tmux.conf neu zu laden


Ich benutze tmux -V 2.6 unter Ubuntu 18 im Gnome-Shell Emulator.

Ich habe tmux auch mit https://github.com/samoshkin/tmux-config erweitert. Probieren Sie es aus, es ist wirklich cool.

1
anarchist912

Fügen Sie dies in Ihren ~/.tmux.conf ein

set -g default-command /usr/local/bin/fish
1
IanVaughan

tmux scheint die Umgebungsvariable Shell zu verwenden, daher sollte Folgendes funktionieren:

Shell=/usr/bin/zsh tmux

oder

env Shell=/usr/bin/zsh tmux
1
blueyed