screen用法大全


进入screen

$ screen 在shell中直接用scrren就可以打开一个新的screen的session。

$ screen -S name 可以打开一个名字叫做name的screen session,方别识别,也方便以后退出session后用screen -r name来返回session。

也可以在进入session后,用“ctrl+a :”后输入sessionname name来修改sessionname。是不是觉得和vim很像?

$ screen -ls 可以查看已经存在的screen session

$ screen -d  [[pid.]tty[.host]]可以进入已有的screen session。其中后面这个参数变化很多,可以是pid,也可以是tty,也可以是把$ screen -ls显示出来的信息都复制进来。

$ screen -rd  [[pid.]tty[.host]] 如果该session还没有detach,要挂载的话就必须加上-r来强制detach已有的session。

退出screen

$ exit 这个命令用于退出当前的shell,如果没有活跃的程序,screen就自动退出了。

ctrl-a  d   注:ctrl-a是screen的切换命令,按下后进入了screen的快捷键模式(这名字我自己取的,其实就是为了和bash的快捷键区分开来),然后按下d就会detach session了。效果和shell中按下ctrl-d是一样的。

ctrl-a :quit  这个用法也和vim很像吧。

管理窗口

ctrl-a c    新建窗口并启动默认的shell。

ctrl-a K  强制关闭当前窗口,一般用于关闭僵死的窗口。

ctrl-a w 在标题栏出显示窗口列表。

ctrl-a “  在主窗口显示窗口列表,可以用vim的位移绑定键hjkl,或者方向键加回车键选择。

ctrl-a 1 这里的参数是0到9的数字,可以用于快速切换当前窗口。

ctrl-a n切换到一下个窗口

ctrl-a p切换到前一个窗口

ctrl-a ctrl-a  切换到前一个窗口

ctrl-a A 修改窗口的名称

分屏

其实最不喜欢的就是screen的分屏,tmux这点比它做得好。但是没办法,谁让screen到处有呢。

ctrl-a S 新建一个水平的分屏。新建的分屏默认啥都没有,用ctrl-a <tab>切换过去后用ctrl-a c新建shell。

ctrl-a <tab> 在分屏之间切换。

ctrl-a Q 关闭当前活跃分屏外的所有分屏。

ctrl-a X 关闭当前活跃分屏外的所有分屏,并且锁住当前的session。

复制黏贴

screen还有一个不方便的就是输出超过一个屏幕的时候很难看前面的信息,必须进入复制状态来移动屏幕。

ctrl-a [ 进入复制模式,可以用<ESC>退出。

在复制模式中,可以用vim的位移绑定键hjkl,或者方向键移动光标。

用ctrl-f,ctrl-b,pgup,pgdown来翻页。

按下<space>表示来开始标记,再次按下<space>表示标记结束,并自动把标记的内容复制到screen的复制黏贴buffer里面。

在普通模式下按下ctrl-a ] 黏贴到当前窗口。

在普通模式下按下ctrl-a  >将screen复制黏贴buffer的内容写到临时的exchange文件(/tmp/screen-exchange)。

在普通模式下按下ctrl-a  <将临时的exchange文件(/tmp/screen-exchange)内容读取到screen的复制黏贴buffer里面。

其他

ctrl-a ? 最重要的一个命令,就是查看快捷键帮助的~

ctrl-a t 查看系统时间

ctrl-a ctrl-g 切换虚拟bell,也就是出错的时候屏幕闪烁。这个很实用。

ctrl-a H 为当前的窗口记录一个log,对于记录测试信息很有用。

ctrl-a M 当该窗口出现变化时发通知到标题栏。

ctrl-a _  若该窗口15秒内都没有变化,则将通知发到标题栏。

ctrl-a s   关闭输出,不小心按下这个话就会误认为screen僵死了;用ctrl-a q可以使得screen回复正常。bash中也有个ctrl-s的命令,

一 样的效果,这个需要用ctrl-q来回复。

还可以额外通过定制状态栏来使得screen更方便使用。我用过,暂时就先不写了,以后用到了再补上。

参考资料

入门与介绍 https://www.ibm.com/developerworks/cn/linux/l-cn-screen/

manual http://www.gnu.org/software/screen/manual/screen.html

http://blog.catlovefish.com/?p=284

普人特福的博客cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress