51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

linux必会命令之screen

screen是一个强大的终端多路复用器,它允许用户在一个物理终端上运行和管理多个会话。使用screen可以创建多个虚拟终端会话,可以在网络连接中断后重新连接到这些会话,并保持原有会话不被中断。本文将介绍screen的常用功能。

对于吴昊来说,screen最常用的功能就是在后台中开启一个会话,当有比较耗时的任务需要持续运行时,放在这个会话(后台)中,当网络中断或终端窗口意外关闭时,这个后台的会话依然可以继续运行,总结来讲,只要screen本身会话不终止,会话及会话中的操作会一直存活。常见的场景比如,导入一个很大的数据库时,编译一个比较复杂的包时。

安装screen

在RHEL8及以后的兼容版本中,需要通过添加epel源来安装screen
yum install epel-release yum install screen

|-----|---------------------------------------------| | 1 2 | yum install epel-release yum install screen |

RHEL8以前的兼容版本中,默认命令在updates源中,直接执行安装即可
yum install screen

|---|--------------------| | 1 | yum install screen |



本文不介绍所有的选项,因为很多选项在实际场景中并不是很实用,主要还是以举例方式来讲解。

创建会话
screen

|---|--------| | 1 | screen |

默认直接执行screen即可,即使网络中断或被强制断开,在这个会话中运行的所有命令和程序将继续运行。

分离会话

要从当前screen会话分离,使其保持运行状态,先按住Ctrl键,然后分别按字母a,字母d,此时会回到之前的终端页,但所有在screen会话中运行的任务都会继续进行。

列出会话

要查看当前所有的screen会话有哪些,可以执行以下命令
screen -ls 或 screen -list

|-------|---------------------------| | 1 2 3 | screen -ls 或 screen -list |

恢复会话

要重新连接到一个已经分离的screen会话,使用-r选项加上会话的ID或名称
screen -r [session]

|---|-----------------------| | 1 | screen -r [session] |

如果当前只有一个会话,可以直接使用以下命令
screen -r 或 screen -x

|-------|-----------------------| | 1 2 3 | screen -r 或 screen -x |

创建带名称的会话,比如
screen -S whsir

|---|-----------------| | 1 | screen -S whsir |

这样在重新连接时不用再通过-ls参数查看会话名称ID了,可以直接使用-r加名称的方式连接
screen -r whsir

|---|-----------------| | 1 | screen -r whsir |

创建会话并输出日志到指定文件中
screen -L -Logfile /tmp/whsir.log

|---|-----------------------------------| | 1 | screen -L -Logfile /tmp/whsir.log |

会话共享

当A用户创建了一个新的会话,B用户加入了这个会话,那么此时就是共享会话,两边不管谁执行什么操作,另一个都可以实时看到。

例:A用户执行screen -S whsir,B用户执行screen -r whsir,此时就是共享会话

退出会话

可以在连接会话后直接执行exit或Ctrl+d退出,也可以通过以下命令,这里[session]可以是正在运行的会话ID,也可以是名称
screen -S [session] -X quit

|---|-------------------------------| | 1 | screen -S [session] -X quit |

暴力退出也可以通过pkill screen

总之screen是一个功能强大的工具,可以显著提升你的终端会话管理能力,特别是在远程工作和长时间运行任务时。通过掌握screen的使用,你可以更高效地管理你的终端会话,并确保你的任务能够持续运行而不受连接中断的影响。

赞(1)
未经允许不得转载:工具盒子 » linux必会命令之screen