Bash
如何設置我的預設 shell 來啟動 tmux
我希望我的預設 bash shell 直接進入 tmux,而不是每次都必須輸入 tmux。
在 Arch wiki的每個 shell login 上啟動 tmux似乎有效。只需
.bashrc
在別名之前添加以下 bash 程式碼行;其他 shell 的程式碼非常相似:[[ $TERM != "screen" ]] && exec tmux
@StarNamer 的回答通常是準確的,但我通常會包括以下測試以確保
tmux
存在於系統中- 我們在一個互動式外殼中,並且
tmux
不嘗試在自身內部執行因此,我會將其添加到
.bashrc
:if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then exec tmux fi
參考
- 使用 bash
command
檢查命令是否存在 - http://man7.org/linux/man-pages/man1/bash.1.html#SHELL_BUILTIN_COMMANDS- 為什麼要使用
command
而不是which
檢查命令的存在 - https://unix.stackexchange.com/a/85250- 用於
$PS1
檢查互動式外殼 - https://www.gnu.org/software/bash/manual/html_node/Is-this-Shell-Interactive_003f.html$TERM
“對於在 tmux 內執行的所有程序”的環境變數的預期狀態- http://man7.org/linux/man-pages/man1/tmux.1.html#WINDOWS_AND_PANES