当前位置:   article > 正文

linux锁住终端会话命令,在Linux系统上安装和使用Screen命令管理多个终端会话

screen 回话被锁了

GNU Screen是一个终端多路复用器(窗口管理器),顾名思义,Screen在多个交互式shell之间复用物理终端,因此我们可以在每个终端会话中执行不同的任务,所有Screen会话都完全独立地运行程序。因此,即使会话意外关闭或断开连接,在Screen会话内运行的程序或进程也将继续运行,例如,当通过SSH升级Ubuntu服务器时,Screen命令将继续运行升级过程,以防万一SSH会话因任何原因而终止。GNU Screen允许我们轻松创建多个Screen会话,在不同会话之间切换,在会话之间复制文本,随时附加或分离会话等等,它是每个Linux管理员应该在必要时学习和使用的重要命令行工具之一,在本文中,我们将介绍Screen命令的基本用法以及在Linux中的示例。

bb5969872d9a48d06c1b11b1bfb996ec.png

安装GNU Screen

GNU Screen在大多数Linux操作系统的默认存储库中都可用。

要在Arch Linux上安装GNU Screen,请运行:

$ sudo pacman -S screen

在Debian、Ubuntu、Linux Mint:

$ sudo apt-get install screen

在Fedora上:

$ sudo dnf install screen

参考:dnf命令_Linux dnf命令使用详解:新一代的RPM软件包管理器。

在RHEL、CentOS上:

$ sudo yum install screen

在SUSE/openSUSE上:

$ sudo zypper install screen

Screen命令示例-管理多个终端会话

1、创建新的Screen会话

让我们创建一个新的Screen会话并附加到它,为此,请在终端中输入以下命令:

screen

现在,在此会话中运行任何程序或进程,即使你与此会话断开连接,正在运行的进程或程序也将继续运行。

要从Screen会话中分离,请按ctrl+a和d,无需同时按下两个组合键,首先按ctrl+a然后按d,从会话中分离后,将看到类似下面的输出:

[detached from 29149.pts-0.sk]

这里,29149是ScreenID,pts-0.sk是Screen会话的名称,可以使用ScreenID或相应会话的名称来附加、分离和终止Screen会话。

2、创建一个命名会话

你还可以创建一个Screen会话,其中包含选择的任何自定义名称,而不是默认用户名,如下所示:

screen -S ywnz

上面的命令将创建一个名为“xxxxx.ywnz”的新Screen会话并立即附加到它,要从当前会话中分离,请按ctrl+a,然后按d。

当想要查找哪些进程在哪些会话上运行时,命名Screen会话会很有用,例如,当在会话中设置LAMP堆栈时,可以简单地将其命名为如下所示:

screen -S lampstack

3、创建分离的会话

有时,可能想要创建会话,但不希望自动附加会话,在这种情况下,运行以下命令以创建名为“senthil”的分离会话:

screen -S senthil -d -m

或者:

screen -dmS senthil

上面的命令将创建一个名为“senthil”的会话,但不会附加到它。

4、列出Screen会话

要列出所有正在运行的会话(附加或分离),请运行:

screen -ls

样本输出:

There are screens on:

29700.senthil (Detached)

29415.ywnz (Detached)

29149.pts-0.sk (Detached)

3 Sockets in /run/screens/S-sk.

正如你所看到的,我有三个正在运行的会话,并且所有会话都已分离。

如果要随时附加到会话,例如29415.ywnz,只需运行:

screen -r 29415.ywnz

或者:

screen -r ywnz

或者,只需使用screen ID:

screen -r 29415

要验证我们是否附加到上述会话,只需列出打开的会话并检查:

screen -ls

样本输出:

There are screens on:

29700.senthil (Detached)

29415.ywnz (Attached)

29149.pts-0.sk (Detached)

3 Sockets in /run/screens/S-sk.

正如你在上面的输出中看到的那样,我们目前已连接到29415.ywnz会话,要退出当前会话,请按ctrl+a,d。

5、创建nested会话

当我们运行“screen”命令时,它将为我们创建一个会话,但是,我们可以创建nested会话(会话内的会话)。

首先,创建一个新会话或附加到已打开的会话,我将创建一个名为“nested”的新会话:

screen -S nested

现在,在会话中按ctrl+a和c创建另一个会话,只需重复此操作即可创建任意数量的nestedScreen会话,每个会话都将分配一个号码,号码将从0开始。

可以按ctrl+n移动到下一个会话,然后按ctrl+p移动到上一个会话。

以下是管理nested会话的重要键盘快捷键列表:

ctrl+a - 列出所有会话。

ctrl+a 0 - 切换到会话号0。

ctrl+a n - 切换到下一个会话。

ctrl+a p - 切换到上一个会话。

ctrl+a S - 将当前区域水平分割为两个区域。

ctrl+a l - 将当前区域垂直分割为两个区域。

ctrl+a Q - 关闭除当前会话之外的所有会话。

ctrl+a X - 关闭当前会话。

ctrl+a / - 终止所有会话并终止Screen。

ctrl+a ? - 显示键绑定,要退出此按钮,请按ENTER。

6、锁定会话

Screen有一个锁定Screen会话的选项,为此,请按ctrl+a和x,输入你的Linux密码以锁定Screen:

Screen used by sk on ubuntuserver.

Password:

7、记录会话

可能希望在Screen会话中记录所有内容,为此,只需按ctrl+a和H。

或者,可以在使用-L参数启动新会话时启用日志记录:

screen -L

从现在开始,在会话中完成的所有活动都将记录并存储在$HOME目录中名为screenlog.x的文件中,这里,x是一个数字。

可以使用cat命令或任何文本查看器应用程序查看日志文件的内容。

fba96c12ab53b1c6ceb86a4181d5148b.png

8、杀死Screen会话

如果不再需要会话,只需杀死它,要杀死名为“senthil”的分离会话:

screen -r senthil -X quit

要么:

screen -X -S senthil quit

要么:

screen -X -S 29415 quit

如果没有打开的会话,将看到以下输出:

$ screen -ls

No Sockets found in /run/screens/S-sk.

有关更多详细信息,请参阅手册页:

$ man screen

TAG:

除非注明,文章均由 Linux系统学习 整理发布,欢迎转载。如有版权争议,请联系删除。

文章评论

留言与评论(共有 0 条评论)

验证码:

b2afe5d1fe9f478fafeb0d6ac357ee2a.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/65371
推荐阅读
相关标签
  

闽ICP备14008679号