GNU Screen 和 Tmux:提示和技巧

cor*_*ump 8 gnu-screen tmux

所以我是GNU ScreenTmux等多路复用器的忠实粉丝,但即使使用 Screen 多年,我仍然认识到那里有很多我不知道的东西(而且我只使用 Tmux 几个月,所以它更糟)。

您在这些软件上使用了哪些配置、提示和技巧(两者或每个软件都无关紧要)?

我使用它作为我的屏幕配置(我想我是从 Ubuntu 的默认设置中改编的screenrc):

shell -$SHELL
startup_message off
defscrollback 1000
hardstatus alwayslastline '%{= wk}%?%-Lw%?%{r}(%{k}%n*%f%t%?(%u)%?%{r})%{k}%?%+Lw%?%?%= %m/%d %C%A'
activity ''
termcapinfo xterm* 'hs:ts=\\E]2;:fs=\\007:ds=\\E]2;screen\\007'
Run Code Online (Sandbox Code Playgroud)

这是一个简单的配置,可以让状态栏显示一些颜色,但我确信我可以用 screen 和 Tmux 做更多的事情,并且很想知道它。

Edu*_*nec 3

我的 .bashrc 中有这个。如果您没有运行 screen,则该函数ssh在执行时只会照常调用。如果您在屏幕内运行(并且没有更改默认值$TERM),它首先将窗口名称设置为远程主机(以及任何可选参数)。当您有许多打开的远程连接时,跟踪远程连接非常方便,我认为这在我们的工作中很常见。

function ssh () {
if [ $TERM = "screen-bce" ]
    then
    screen -X title "$*" 
    /usr/bin/ssh $*
else
    /usr/bin/ssh $*
fi
}
Run Code Online (Sandbox Code Playgroud)

我还使用它bind ^A windowlist -b来轻松访问窗口列表(只需点击 ctrl-A 两次)。

对所有窗口的简单 ssh 代理支持:

setenv SSH_AUTH_SOCK $HOME/.screen-ssh-agent
screen 10 ssh-agent -a $SSH_AUTH_SOCK $SHELL
Run Code Online (Sandbox Code Playgroud)

然后,在任何窗口中,当您开始新会话时,只需执行一次 ssh-add 操作。

最后,当从另一个屏幕会话中连接到远程屏幕会话时,您可以将screen -x -e ^Vv控制序列设置为 CTRL-V(例如)。这避免了必须链接 CTRL-As 来控制远程会话。