使用 GNU 屏幕时,如果您进入屏幕会话,然后将其拆分为所需的布局.. 是否也有可能在同一会话中切换到全屏外壳?或者,一旦您开始拆分,这是否意味着您被限制在一个视图中,您只能在可见的拆分窗格之间切换,然后在这些窗格中切换活动外壳?
我经常拆分屏幕会话以同时监视多个日志或循环命令输出,但我也希望全屏外壳也可以工作,而不必有一个单独的屏幕会话,我需要从拆分/附加中分离全屏等。
如果 screen 不能做到这一点,tmux 或类似的可以做到吗?任何指针?
非常感谢fLo
使用 GNU 屏幕时,如果您进入屏幕会话,然后将其拆分为所需的布局.. 是否也有可能在同一会话中切换到全屏外壳?或者,一旦您开始拆分,这是否意味着您被限制在一个视图中,您只能在可见的拆分窗格之间切换,然后在这些窗格中切换活动外壳?
我经常拆分屏幕会话以同时监视多个日志或循环命令输出,但我也希望全屏外壳也可以工作,而不必有一个单独的屏幕会话,我需要从拆分/附加中分离全屏等。
如果 screen 不能做到这一点,tmux 或类似的可以做到吗?任何指针?
非常感谢fLo
我试图用屏幕做到这一点。我能想到的最好的办法是进行多个会话(使用不同的转义字符)。多个日志窗口都在一个会话中,而另一个会话在一个窗口中包含 screen -r log。然后我可以拆分日志会话,并且仍然能够循环通过其他会话窗口。
我相信在 tmux 中是可能的,但我还没有进行切换(还)。
编辑:在 tmux 中绝对是可能的,而且非常容易。而且切换非常简单(我开始使用的 tmux 示例中有一个 screen-keys.conf 文件)。这是我编写的一个脚本,用于创建一个有 3 个窗口的全屏会话,第三个窗口中有 3 个窗格,一个 20%,另外两个 40%。它可以从 crontab 调用:@reboot
tmux new-session -d -s base /bin/bash
tmuxwin() {
tmux new-window -t base -n $1 /bin/bash
sleep 1
shift
tmux send "$1" C-m
}
tmuxwin second "echo second"
# These all end up in one window
tmuxwin thirddotone "echo 3.1"
tmuxwin thirddottwo "echo 3.2"
tmuxwin thirddotthree "echo 3.3"
# join 3.1 to 3.2. Give 3.1 20%
tmux select-window thirddotone
tmux joinp -p 80 -s +
# join 3.3 to 3.2. Even split
tmux joinp -s +
# and fix the names...
tmux rename-window three
# I am waiting for you, Vizzini. You told me to go back to the beginning.
# So I have. This is where I am, and this is where I’ll stay. I will not be moved.
tmux select-window -t 0
所以我的建议是切换到 tmux。我使用 tmux 不到一个星期,并且没有回头。