功能
screen可以在一个终端屏幕上打开并维护多个屏幕。
描述
screen 是一个特殊的模拟终端软件,利用它能在一个终端窗口里模拟出多个终端,并且能分割窗口、类似 VI 的方式搜索和拷贝屏幕输出,最重要的是利用 screen,可以让任务后台执行,退出系统,下次登录恢复后跟以前状态一样。
举例
启动screen程序
$screen
这样,启动screen之后,可以在同一个终端上面实现切换多个虚拟终端屏幕了。
下面是启动screen之后接受的命令
注意,以下命令的是 <C-a>
(即按住[Ctrl]的同时按a)后发送的命令, <C-a>
这也是screen发送命令的“标记前缀“。
新建一个窗口
<C-a> c
这样,实际看不出什么来,但是你的屏幕上面已经有多个窗口了,当前只显示一个。
关闭当前窗口
<C-a> k
这样,将当前的窗口关闭,如果当前窗口是最后一个窗口,那么就关闭整个screen程序。
列出当前所有窗口
<C-a> w
这样,就会在屏幕底部显示当前开的所有screen窗口,每个窗口前面有一个数字标志(用于切换),紧接着标题,当前的窗口会有一个在数字后面。
切换到指定窗口
<C-a> <数字>
这里,<数字>代表 w命令列出的每个窗口前面的数字标志,这个命令会切换到指定的窗口。
在当前的屏幕和上次屏幕之间切换
<C-a> <C-a>
为当前屏幕取一个名字
<C-a> A
这样在用 w列出窗口中,会显示你取的名字,也方便切换。
发送命令
<C-a> a
因为,screen以做为发送命令的控制标志,所以如果对screen之内的程序发送会和screen产生冲突,这时候只要运行 a就可以了。
切分屏幕
<C-a> S
这里,切分后的屏幕是水平的。
删掉切分后的除了当前屏幕的其它屏幕
<C-a> Q
这里,如果错误地切分了屏幕,可以这样取消切分,保留当前所在窗口区域。
列出所有窗口,可以上下选择
<C-a> "
这样列出所有窗口,利用方向键或者(j、k)键选择你要进入的窗口。
将当前窗口所有文字拷贝到一个文件
<C-a> h <文件名>
这样,会把当前窗口的所有内容“硬”拷贝到指定的文件里面。
切换到下一个窗口
<C-a> n
显示当前窗口号和窗口名
<C-a> N
显示帮助命令
<C-a> ?
这样,会显示screen的命令列表,在每个命令前面应该加上构成整个screen命令。
拷贝粘贴相关
步骤如下:
-
<C-a> [
这样会进入拷贝模式。
-
<C-a> <移动方向键>
这样可以像vi那样利用j,k,l,h或者方向键来移动光标到待拷贝的行。
-
<C-a> <空格>
这样,也就是按空格,就设置了复制的起点(按y也行会高亮选择当前光标所在行),然后可以用类似vi的移动,或者方向键控制究竟选择哪些(类似vi的Visual选择模式)内容。
-
<C-a> <空格>
这里再次按下空格(回车也行),会把选择的内容复制的缓冲中,并回到正常模式。
-
<C-a> ]
这里把上次拷贝的内容粘贴到光标的位置。
把缓存内容存放到文件
<C-a> >
这样,会把剪切缓存中的文件存放到一个指定的目录(好像不用我指定,系统自动指定文件)。
读取缓存中的文件
<C-a> <
会把缓存中刚才 >的缓存文件读取到缓存中。
删除剪切缓存
<C-a> =
删除 >和 <用到的缓存文件。
记录输出到文件
<C-a> H
这样,会在当前文件夹下面建立一个文件记录所有的输出,再次按下 H会停止记录。
锁住屏幕
<C-a> x
这样,就会锁住屏幕提示输入密码,只有输入密码之后才能继续工作。
断开与恢复会话
步骤如下:
-
<C-a> d
这样就暂时断开当前的screen,之后可以恢复。
-
<其它操作…登出>
这里,断开会话之后,相当于没有screen运行了,可以继续进行其它操作甚至是退出登陆(关机不行)。
-
$screen -r
再次登陆之后运行screen -r会恢复上次的会话,例如上次打开了什么,恢复之后仍然是那个状态。
网友评论