UNIX环境下使用screen在虚拟终端复用窗口的方法

45 篇文章 0 订阅
11 篇文章 0 订阅

2015-04-26 wcdj


摘要:UNIX环境下通过 screen 工具可以方便在一个终端窗口中同时处理多个会话,并且可以在当前的终端退出后保持之前开启的会话继续执行,并在后续新开启的终端通过screen -r $(会话ID) 的方式重新attach到之前的会话以便继续处理。


screen - screen manager with VT100/ANSI terminal emulation

Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells). (更多帮助,可以 man screen)

可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/ssh连接窗口那样。


使用screen的方法:

方法1:在终端直接输入screen命令。

这样screen将创建一个执行shell的全屏窗口。你可以执行任意shell程序,就像在ssh窗口中那样。在该窗口中键入exit退出该窗口,如果这是该screen会话的唯一的窗口,该screen会话退出,否则screen自动切换到前一个窗口。


方法2:screen 要执行的程序

比如,screen vi your_file

screen创建一个执行vi your_file 的单窗口会话,退出vi将退出该窗口/会话。这样的好处是,假如我们正在当前窗口用vi编写代码,此时想出去查个东西,这时可以不用退出vi编辑器,也不用再打开一个终端,而是在vi编辑器下输入命令 :!screen (或者用下面更快捷的方法3)再启动一个新的shell会话来执行我们额外要完成的任务,搞定后,再输入 exit 命令就可以立刻回到之前vi编写代码的当前状态,然后继续之前的操作。


方法3:在screen的环境下,使用快捷键 ctrl-a + c 立刻创建一个新的会话


方法4:screen的attach和detach方法

类似方法2的场景,可以使用screen的attach和detach方法来更快的实现任务的切换。比如,我们用screen vi your_file创建一个会话(任务A),然后准备执行任务B,此时可以使用 ctrl-a d 立刻切换出vi的编辑器环境,进入到一个全新的会话中(来执行我们的任务B),执行完任务B后,可以通过 screen -ls 来查看我们“暂时挂起的会话”,根据前面显示的会话ID,然后再通过 screen -r $(会话ID) 的方式可以很方便的切换到之前的vi编辑器环境,然后继续我们的编码工作。


可以在screen会话下通过C-a ?来查看所有的快捷键,常用的有:

使用键绑定C-a ?命令可以看到,默认的命令字符(Command key)为C-a,转义C-a(literal ^a)的字符为a。因为screen把C-a看作是screen命令的开始,所以如果你想要screen窗口接收到C-a字符,就要输入C-a a。


其他常用的命令选项有:



Refer

[1] https://www.ibm.com/developerworks/cn/linux/l-cn-screen/
[2] http://www.gnu.org/software/screen/

[3] http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/screen.1.html



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值