tmux設置zsh的問題?

我本本的系統是OS X EI Capitan,在網上按照教程配置了zsh和tmux,在 ~/.tmux.conf文件中加了"set -g default-shell /bin/zsh" 和 "set -g default-command /bin/zsh"設置tmux的默認shell為zsh。然後重新刷新了tmux的配置文件(tmux source-file ~/.tmux.conf),但是為什麼進入tmux,shell還是bash呢?然後我在tmux中使用命令"echo $SHELL", 卻顯示/bin/zsh,但我當前的shell卻不是zsh,這是什麼原因呢?T^T,求各位幫助一下,弄了很久都沒弄好,小女子在這裡謝謝大家了。


你是不是用reattach-to-user-namespace了?裡面

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

注意Bash


關閉終端,再進 輸入tmux ,先按C+b,然後輸入:

此時已經進入命令行模式,在命令行輸入:source-file ~/.tmux.conf


tmux 文檔中 有關於 default-command 和 default-shell 說明:

簡單說:

每一個 terminal 的啟動都基於每個用戶的環境變數 SHELL。在 linux 中 文件 /etc/passwd 中的一行就代表用戶的一些基本配置(包括所使用的 SHELL)。

如:

vagrant:x:1000:1000:Vagrant Default User,,,:/home/vagrant:/bin/bash

最後一個引號後面 /bin/bash 就是所使用的 SHELL。所以每個 terminal 的啟動都要有當前用戶的 SHELL。個人猜測,tmux 的啟動會得到當前用戶的 SHELL,然後根據 default-shell 的變數的值,修改 SHELL 變數(僅個人猜測,還有個問題是,mac 沒有 /etc/passwd ,對mac 不熟悉=。=)


左上角--Sytem Preferences--Users Groups--右擊當前用戶--Advanced options--Login shell:選擇zsh


沒有進行過任何配置的原始zsh並不比bash好到哪兒去,想必你chsh過了吧,既然echo了都還是zsh,你確定不是把原生zsh當bash了?如果不是的話問這位高手@李墨夜


推薦閱讀:

QuickTime Player真的只是一個雞肋視頻播放器嗎?
如何在Mac上設置wacom?
請問有哪些實用的Mac終端命令?
為什麼說mac是前端的標配?

TAG:Mac | macOS | Linux | MacOSX使用技巧 | zsh |