基本命令
GNU Screen大致功能相当于控制台的“窗口管理器”。为了向GNUScreen发送命令,你必须配置一个特殊的组合键来将普通按键和命令按键区别开来,默认情况下这个组合键是Ctrl+A
,在文档中写做^A
。
^A c 新建虚拟控制台 ^A w 查看虚拟控制台列表 ^A A 重命名虚拟控制台
想要关闭当前虚拟控制台时,只需要键入exit来退出运行在当窗口中的shell或者其他进程即可。
在虚拟控制台之间切换
^A [n] 移动到号码为n的虚拟控制台 ^A [SPACE] 移动到下一个虚拟控制台 ^A p 移动到上一个虚拟控制台
拷贝模式
GNUScreen可以进入一个叫做“拷贝模式”的操作界面,在这种情况下,你可以使用光标在整个虚拟控制台自由的移动,并且可以像在Vi编辑器中那样进行搜索和拷贝操作。
^A [ 进入拷贝模式 [SPACE] 标记拷贝内容;移动光标到需要拷贝内容的起始位置,按SPACE;再移动到终止位置,再次按SPACE结束拷贝 ^A ] 从拷贝缓冲区中粘贴内容
连接和分离
GNUScreen在运行开始后可以一直维持一个“对话”(Session),当你仅仅想离开这个会话而不希望会话内容结束的话,你可以进行“分离”(Detach)操作。这样可以让系统保持会话,并维持会话中的运行内容不会结束。当你再次想回到之前保存的会话时,可以“连接”(attach)到会话上去。
^A d 分离 在对话型shell中 screen -ls 查看screen的进程 screen -r [进程ID] 回到screen进程 screen -d [进程ID] 远程分离 screen -x [进程ID] 多重连接;在这种情况中,这个“对话”(Session)可以被多个客户端链接
其它
一些这些技巧可能不是特别常用,详细的使用方法请查看手册manscreen
。
分割画面
^A S 将画面分割为平行分割为2个 ^A [TAB] 移动到下一个屏幕分割区域中 ^A Q 将现在光标所在的屏幕区域扩展到整个控制台上 ^A X 将其他屏幕区域扩展到控制台上
这里有个小技巧,你可以在~/.screenrc
中设置如下两种方式中的任何一个,让screen的窗口分割作成Vim风格或者Emacs风格。
Vim风格
bind n split bind j focus bind 1 only bind q remove
Emacs风格
bind 2 split bind o focus bind 1 only bind 0 remove
改变控制台的字符编码
^A :encoding (utf8|euc|gb2312)
在控制台的状态栏显示窗口标题
hardstatus alwayslastline "%w"
或者,使用下面的方法,将活动窗口的标题设置成为蓝色,同时显示时钟。
hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"