screen工具是linux下虚拟终端的一个经常使用工具。在 发现这个工具以前,笔者常常在远程ssh中运行须要长时间处理数据的命令,好比远程编译安装软件,若是在编译的过程当中网络断开,那这个编译进程就会中止, 形成想不到的后果。自从有了screen命令,我不再用怕网线不稳和运行须要长时间处理数据的命令。html
screen在redhat,centos系统中的安装命令是:yum install screenlinux
screen案例:shell
新建一个lnmp会话:screen -S lnmp(lnmp为会话名,可本身定义)windows
离开会话并让程序断续运行:ctrl a d (按住ctrl不放,分别按 a 和 d)centos
恢复后台运行的会话:screen -r lnmp(lnmp为本身定义的会话名)网络
显示全部screen建立的会话:screen -lssession
在会话里执行exit命令会话是结束运行并退到shell中ssh
参 數:工具
-A 將全部的視窗都調整为目前終端機的大小。
-d <做業名稱> 將指定的screen做業離線。即detached
-h <行數> 指定視窗的緩沖區行數。
-m 即便目前已在做業中的screen做業,仍強制创建新的screen做業。
-r <做業名稱> 恢复離線的screen做業。
-R 先試圖恢复離線的做業。若找不到離線的做業,即创建新的screen做業。
-s 指定创建新視窗時,所要執行的shell。
-S <做業名稱> 指定screen做業的名稱。
-v 顯示版本信息。
-x 恢复以前離線的screen做業。
-ls或–list 顯示目前全部的screen做業。
-wipe 檢查目前全部的screen做業,並刪除已經無法使用的screen做業。.net
1,开启一个screen并进入:
screen -S test1 #这里用-S表示给screen起名字,之后切换的时候比较方便。这时就进去了screen test1了。里面能够跑一些程序。
2,退出该screen:
Ctrl-a d #这里的ctrl-a表示同时按ctrl键和a键,而后再单独按d键。这时退到跟终端。
3,在根下查看开启的全部screen:
screen -ls # 好比会有25764.test1 (Detached)等。
4,在根下进入某个screen:
screen -r test1 #这时又进入到指定的screen session中,或者screen -r 25764。
5,关闭该session:
exit #在该screen中退出,退到根下。
6,强制链接,踢掉原来的
screen -D -r 20791
screen -x -r 20791(共享原来的)
7,当前窗口假死,强制关闭当前窗口,跳到下一个
Ctrl-a K
8,上翻
Ctrl-a Ctrl-[
screen [-AmRvx -ls -wipe][-d <做业名称>][-h <行数>][-r <做业名称>][-s ][-S <做业名称>]
screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。一般只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
C-a ? -> Help,显示简单说明
C-a c -> Create,开启新的 window
C-a n -> Next,切换到下个 window
C-a p -> Previous,前一个 window
C-a 0..9-> 切换到第 0..9 个window
Ctrl+a [Space] -> 由視窗0循序換到視窗9
C-a C-a -> 在两个最近使用的 window 间切换
C-a x -> 锁住当前的 window,需用用户密码解锁
C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里 每一个 window 内运行的 process (不管是前台/后台)都在继续执行,即便 logout 也不影响。
C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令則可回去。
C-a w -> Windows,列出已开启的 windows 有那些
C-a t -> Time,显示当前时间,和系统的 load
C-a K -> kill window,强行关闭当前的 window
C-a [ -> 进入 copy mode,在 copy mode 下能够回滚、搜索、复制就像用使用 vi 同样
C-b Backward,PageUp
C-f Forward,PageDown
H(大写) High,将光标移至左上角
L Low,将光标移至左下角
0 移到行首
$ 行末
w forward one word,以字为单位往前移
b backward one word,以字为单位日后移
Space 第一次按为标记区起点,第二次按为终点
Esc 结束 copy mode
C-a ] -> Paste,把刚刚在 copy mode 选定的内容贴上