linux screen命令详解(Detailed explanation of Linux screen command)

1. 介绍

Screen是一个全屏窗口管理器,它在几个进程(通常是交互式shell)之间复用物理终端。每个虚拟终端提供DEC VT100终端的功能,此外,ANSI X3.64 (ISO 6429)和ISO 2022标准的几个控制功能(例如,插入/删除行和支持多字符集)。每个虚拟终端都有一个滚动历史缓冲区,还有一个复制粘贴机制,允许用户在窗口之间移动文本区域。当screen被调用时,它会创建一个单独的窗口,其中包含一个shell(或指定的命令),然后您就可以像往常一样使用这个程序了。然后,在任何时候,您都可以创建包含其他程序的新(全屏)窗口(包括更多shell),杀死当前窗口,查看活动窗口的列表,打开和关闭输出日志记录,在窗口之间复制文本,查看滚动历史,在窗口之间切换,等等。所有窗口运行的程序完全相互独立。当程序的窗口当前不可见时,甚至当整个屏幕会话与用户终端分离时,程序仍会继续运行。

2.  安装

yum install -y screen

3. 语法

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]

参数说明:

  • -A  将所有的视窗都调整为目前终端机的大小。
  • -d<作业名称>  将指定的screen作业离线。
  • -h<行数>  指定视窗的缓冲区行数。
  • -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
  • -r<作业名称>  恢复离线的screen作业。
  • -R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
  • -s  指定建立新视窗时,所要执行的shell。
  • -S<作业名称>  指定screen作业的名称。
  • -v  显示版本信息。
  • -x  恢复之前离线的screen作业。
  • -ls或–list  显示目前所有的screen作业。
  • -wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

4. 常用命令

创建新窗口

screen -S <窗口名字>

查看创建的窗口

screen -ls

分离窗口

Ctr + a + d

恢复窗口

screen -r <窗口名字>

kill窗口

Ctr + a + k

5. 完整快捷键

  • Ctr+a ?  显示所有键绑定信息
  • Ctr+a c     创建一个新的运行shell的窗口并切换到该窗口
  • Ctr+a n        Next,切换到下一个 window 
  • Ctr-a p         Previous,切换到前一个 window 
  • Ctr+a 0..9    切换到第 0..9 个 window
  • Ctrl+a [Space]    由视窗0循序切换到视窗9
  • Ctr-a Ctr-a   在两个最近使用的 window 间切换 
  • Ctr-a x         锁住当前的 window,需用用户密码解锁
  • Ctr-a d         detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的                              process (无论是前台/后台)都在继续执行,即使 logout 也不影响。 
  • Ctr-a z         把当前session放到后台执行,用 shell 的 fg 命令则可回去。
  • Ctr-a w        显示所有窗口列表
  • Ctr-a t          Time,显示当前时间,和系统的 load 
  • Ctr-a k         kill window,强行关闭当前的 window
  • Ctr-a [          进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样 

    Ctr-b Backward,PageUp 
    C-trf Forward,PageDown       
    H(大写) High,将光标移至左上角       
    L Low,将光标移至左下角 
    0 移到行首 
    $ 行末 
    w forward one word,以字为单位往前移 
    b backward one word,以字为单位往后移 
    Space第一次按为标记区起点,第二次按为终点 
    Esc 结束 copy mode 

  • Ctr-b Backward,PageUp 
  • C-trf Forward,PageDown       
  • H(大写) High,将光标移至左上角       
  • L Low,将光标移至左下角 
  • 0 移到行首 
  • $ 行末 
  • w forward one word,以字为单位往前移 
  • b backward one word,以字为单位往后移 
  • Space第一次按为标记区起点,第二次按为终点 
  • Esc 结束 copy mode 
  • Ctr-a ]          Paste,把刚刚在 copy mode 选定的内容贴上

6. 官网

Screen – GNU Project – Free Software Foundation

————————

1. Introduction

Screen is a full screen window manager that reuses physical terminals between several processes (usually interactive shells). Each virtual terminal provides the function of Dec VT100 terminal. In addition, ANSI X3 64 (ISO 6429) and several control functions of ISO 2022 standards (for example, insert / delete lines and support for multiple character sets). Each virtual terminal has a scroll history buffer and a copy and paste mechanism that allows users to move text areas between windows. When screen is called, it creates a separate window containing a shell (or specified command), and then you can use the program as usual. Then, at any time, you can create new (full screen) windows (including more shells) containing other programs, kill the current window, view the list of active windows, turn on and off output logging, copy text between windows, view scroll history, switch between windows, and so on. The programs running in all windows are completely independent of each other. The program continues to run when the window of the program is not currently visible, even when the entire screen session is separated from the user terminal.

2. Installation

yum install -y screen

3. Grammar

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]

Parameter Description:

  • -A adjusts all windows to the size of the current terminal.
  • -D < job name > take the specified screen job offline.
  • -H < number of rows > specifies the number of buffer rows for the window.
  • -M even if the screen job is already in the job, it is still forced to create a new screen job.
  • -R < job name > restore the offline screen job.
  • -R first attempts to resume an offline job. If an offline job cannot be found, a new screen job is created.
  • -S < shell > specifies the shell to execute when creating a new window.
  • -S < job name > specifies the name of the screen job.
  • -V displays version information.
  • -X restore the previous offline screen job.
  • -Ls or — list displays all current screen jobs.
  • -Wipe checks all current screen jobs and deletes screen jobs that are no longer available.

4. Common commands

Create new window

screen -S <窗口名字>

View created windows

screen -ls

Detach window

Ctr + a + d

Recovery window

screen -r <窗口名字>

kill窗口

Ctr + a + k

5. Full shortcut key

  • Ctr+a ? Show all key binding information
  • CTR + a # C # create a new window to run the shell and switch to it
  • Ctr+a n        Next,切换到下一个 window 
  • Ctr-a p         Previous,切换到前一个 window 
  • Ctr+a 0.. 9. Switch to 0 9 windows
  • CTRL + a [space] switches from window 0 to window 9 in sequence
  • Ctr-a Ctr-a   在两个最近使用的 window 间切换 
  • Ctr-a x# locks the current window and needs a user password to unlock it
  • Ctr-a d         detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的                              process (无论是前台/后台)都在继续执行,即使 logout 也不影响。 
  • Ctr-a z# put the current session into the background for execution, and use the FG command of the shell to go back.
  • Ctr-a w# displays a list of all windows
  • Ctr-a t# time, which displays the current time and the load of the system
  • Ctr-a k         kill window,强行关闭当前的 window
  • Ctr-a [          进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样 

    Ctr-b Backward,PageUp 
    C-trf Forward,PageDown       
    H(大写) High,将光标移至左上角       
    L Low,将光标移至左下角 
    0 移到行首 
    $ 行末 
    w forward one word,以字为单位往前移 
    b backward one word,以字为单位往后移 
    Space第一次按为标记区起点,第二次按为终点 
    Esc 结束 copy mode 

  • Ctr-b Backward,PageUp 
  • C-trf Forward,PageDown       
  • H (upper case) high, move the cursor to the upper left corner
  • L low, move the cursor to the lower left corner
  • Move 0 to the beginning of the line
  • $end of line
  • w forward one word,以字为单位往前移 
  • b backward one word,以字为单位往后移 
  • Press space for the first time as the start point of the marking area, and press space for the second time as the end point
  • Esc 结束 copy mode 
  • Ctr-a ]          Paste,把刚刚在 copy mode 选定的内容贴上

6. Official website

Screen – GNU Project – Free Software Foundation