而不是每次都键入tmux,我怎么能tmux总是用于新的会话窗口?
所以如果我没有打开终端窗口,然后我打开一个,那么第一个会话怎么在tmux?
看起来像一个.bashrc的东西可能吗?
警告这可能现在损坏您的Ubuntu登录。非常小心使用,并确保您在计算机上有一个第二个管理员帐户,您可以登录,以防您遇到相同的问题,我做了。有关更多详细信息和不同方法,请参阅我的答案。
原文链接:https://www.f2er.com/bash/390795.html最简单的解决方案是将tmux调用附加到.bashrc的结尾,例如。
alias g="grep" alias ls="ls --color=auto" # ...other stuff... if [[ ! $TERM =~ screen ]]; then exec tmux fi
注意,exec意味着当您打开终端时启动的bash进程被tmux替换,因此Ctrl-B D(即从tmux断开)实际上关闭窗口,而不是返回到原始bash进程,这可能是你想要的行为?
此外,if语句是必需的(它检测当前bash窗口是否已经在tmux进程中),否则每次启动tmux时,包含的bash进程将尝试启动其自己的tmux会话,导致无限数量的嵌套tmuxen这可以,错误,很讨厌(说,看起来很酷)。
然而,有一个非常小的风险,这可以使bash的行为方式,其他程序不期望,因为运行bash可能会导致它变成一个tmux进程,所以最好修改如何启动您的终端仿真器。
我使用一个小的可执行shell脚本〜/ bin / terminal(在$ PATH中带〜/ bin,所以它被自动找到)看起来有点像:
#!/bin/sh exec gnome-terminal -e tmux
(我不使用gnome-terminal,所以你可能要删除exec,我不知道。)
现在每当你运行终端scipt你有一个终端与tmux。您可以将其添加到菜单/桌面/键盘快捷键以替换默认终端。
(这种方法还允许你更容易地定制关于终端仿真器的其他事情,如果你想要的话。)