Linux命令:screen

转自:恋猫大鲤鱼
dablelv.blog.csdn.net/article/details/70175532

1. 命令简介 

  screen 是GNU开发的终端会话管理工具,可以新建和管理多个会话终端,并提供切换,分离,挂载等相应的功能。

  每个终端会话可以创建1--10个窗口。

  其特点是,终端断开连接后,screen中创建的终端会话中的任务会在后台中继续运行,不回因为终端窗口的关闭或者断开连接而中止。

2. 命令格式

  

screen [options] [cmd [ARGS] ]
screen -r [ [PID.] TTY [.HOST] ]
screen -r SESSIONOWNER/[ [PID.]TTY[.HOST]]

3. 选项说明

-A
    将所有窗口都调整为目前终端机的大小
-d, -D [PID.TTY.HOST]
    分离指定的screen会话
-h NUM
    将历史记录回滚缓冲区指定为 NUM 行
-m
    即使目前处于screen会话,仍强制建立新的 screen 会话
-r [PID.TTY.HOST]
-r SESSIONOWNER/[PID.TTY.HOST]
    恢复离线的 screen 会话
-R
    先试图恢复离线的会话,若找不到离线的会话,再建立新的 screen 会话
-s PROGRAM
    指定建立新窗口时所要执行的Shell, 用以取代环境变量 SHELL 表示的 Shell
-S SESSIONNAME
    创建一个指定名称的新 session
-v
    显示版本信息
-x 
    恢复之前离线的 screen 会话
-ls, --list
    显示目前所有的 screen 会话
-wipe [MATCH]
    检查目前所有的 screen 会话,并删除已经无法使用的 screen 会话

4. 常用示例

screen -S your_name:
    新建一个叫 your_name 的session
screen -ls:
    列出当前所有的 screen session, 注意显示的 screen 会话的命名格式是 pid.name
screen -r your_name:
    回到 your_name 这个 session
screen -d your_name:
    detach 某个 session
screen -d -r your_name:
     分离已经连接的 session,重新回到 your_name
exit:
    关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该screen会话自动终止,并且退回到原始 Shell 状态)

当进入一个 screen 会话中,才可以切换窗口,在每个 screen session 下,所有的快捷键都以 Ctrl + a 开始。常用快捷键如下:

ctrl + a + c:
    创建一个新的运行 shell 窗口并切换到该窗口
ctrl + a + n(大概 next 的意思):
    切换到下一个 window
ctrl + a + p (大概preview的意思):
    切换到前一个 window
ctrl + a + 0..9:
    切换到第 0..9个window
ctrl + a + d:
    分离当前 screen 会话,即退出当前screen 会话,
ctrl + a :
    在两个最近使用的 window 之间切换
ctrl + a + x:
    锁住当前的window,需要用用户密码解锁
ctrl + a + w:
    显示所有窗口列表
ctrl + a + k:
     kill window, 强行关闭当前 window
其他:
  ...