screen命令
screen
可以看作是窗口管理器的命令行版本。可以同时管理多个会话。
screen
命令可以让会话保持在后台脱离终端,这使得screen在操作长时间任务(比如备份等)时非常有用,关闭终端而不会终止任务。
常用选项
-d|-D [pid.tty.host]:分离screen会话。
-r [pid.tty.host]:resumes a detached screen session. 恢复一个screen会话。
-S sessionname:When creating a new session, this option can be used to specify a meaningful name for the session. 创建screen会话时,指定会话名称。
-x:Attach to a not detached screen session. (Multi display mode). 加入会话,用于会话共享。
-ls [match] | -list [match]:列出所有会话。
# screen -ls
There is a screen on:
26920.pts-1.aliyun (Attached)
1 Socket in /var/run/screen/S-root.
# screen -d 26920.pts-1.aliyun
[26920.pts-1.aliyun detached.]
# screen -ls
There is a screen on:
26920.pts-1.aliyun (Detached)
1 Socket in /var/run/screen/S-root.
# screen -r 26920.pts-1.aliyun
退出screen会话
exit 或者 ctrl+d
退出一个 detached 状态的会话
screen -X -S [session # you want to kill] quit
如果一个会话意外中断,界面退出状态却没有分离,这时可以通过 screen -d
先将会话远程分离,再 screen -r
进入会话即可。
会话共享
这里需要是同一账号在不同的终端登录加入同一个会话。加入同一会话后就能共享屏幕了,可以看到多终端同步操作。
screen -S sessionname 建立会话
screen -x sessionname 加入会话
快捷键
screen 会话的快捷键都以 ctrl+a 开头。
ctrl+a+d | C-a C-d 分离会话
ctrl+a+k | C-a C-k Destroy current window. 关闭当前窗口,即结束当前screen会话。
参考: