一个gnu屏幕会话有拆分和非拆分工作区吗?

时间:2013-10-19 07:08:11

标签: linux command-line gnu-screen tmux

使用GNU屏幕时,如果您进入屏幕会话然后将其拆分为所需的布局..是否可以在同一会话中切换到全屏外壳?或者,一旦开始拆分,这意味着您被约束到一个视图,并且您只能在可见的拆分窗格之间切换,然后在这些窗格中切换活动shell?

我经常拆分屏幕会话以同时监控多个日志或循环命令输出,但我也想要一个全屏外壳来处理,而不必单独的屏幕会话,我需要从中分离分割/附加到全屏等..

如果屏幕不能这样做,可以用tmux或者类似的吗?有什么指针吗?

非常感谢 FLO

1 个答案:

答案 0 :(得分:0)

我试着用屏幕做这个。我能想到的最好的是拥有多个会话(具有不同的转义字符)。多个日志窗口都在一个会话中,另一个会话在一个窗口中包含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不到一个星期,我不回头。