Command-Line
別名和 tmux
.bash_aliases
中定義的別名.bashrc
在tmux
.這可以在某些配置中進行更改,以便別名在 下工作
tmux
嗎?
tmux
預設情況下會啟動一個登錄 shell,因此不會被執行(~/.bashrc
隨後~/.bash_aliases
會~/.bashrc
從~/.bash_profile
.INVOCATION``man bash
(克里斯唐的答案有正確的解釋,但不是一個好的解決方法)
您的問題源於 bash 設計錯誤和 tmux 設計錯誤的組合。
預設情況下,tmux 在每個視窗中啟動一個登錄 shell。這沒有任何意義:如果您已將 tmux 設置為登錄 shell,則需要將
default-command
選項設置為 tmux 以外的其他內容;如果您沒有將 tmux 設置為登錄 shell,則需要設置該default-command
選項以避免在 tmux 中啟動登錄 shell。所以在你~/.tmux.conf
的嘴裡噘嘴告訴 tmux 啟動一個普通的 shell:set-option -g default-command $SHELL
然後你的
.bashrc
將被閱讀。bash 還有另一個問題,如果您按照上面的建議配置 tmux,這無關緊要,但是如果您以文本模式(在文本控制台或通過 SSH)登錄,它會再次出現。Bash 讀取~/.bash_profile
登錄 shell 和~/.bashrc
互動式 shell,但前提是它們不是登錄 shell。~/.bashrc
如果它們是互動式的,還要在登錄 shell 中讀取,請將其添加到您的~/.bash_profile
:case $- in *i*) . ~/.bashrc;; esac