原文也可以见:https://jiajunhuang.com/articles/2019_09_18-run_tmux_automatically.md.html
tmux,终端复用神器,之前我一直用byobu,它是tmux的封装,我看了一下源代码,其实就是一堆的bash脚本+python脚本。因为一些 byobu的bug,我选择使用原生tmux,但是有一个问题,就是以前执行tmux的时候,是在 ~/.bashrc
里加上:
# start tmux
if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then
tmux attach || tmux new
fi
意思就是,当检测到当前是ssh连接并且当前没有使用tmux时,就执行 tmux attach || tmux new
,这样就会优先选择连接到上次的 会话,如果没有,那就创建一个新的会话,这样的确也能运行,能在ssh登录时自动运行tmux,但是有一个比较麻烦的缺点,那就是 退出时,由于它是使用一个子进程来执行 tmux attach || tmux new
,因此即使退出,我们还是会回到一个没有tmux的连接,也就是说, 我们需要退出两次。解决方案就是写一个脚本,实现和 tmux attach || tmux