屏幕命令示例:管理多个终端会话

发布者:上海IT外包来源:http://www.lanmon.net点击数:1098

GNU Screen是终端多路复用器(窗口管理器)。顾名思义,Screen可以在多个交互式shell之间重用物理终端,因此我们可以在每个终端会话中执行不同的任务。所有屏幕会话都完全独立地运行程序。因此,即使会话意外关闭或断开连接,在屏幕会话内运行的程序或进程也将继续运行。例如,当通过SSH升级Ubuntu服务器时,如果SSH会话因任何原因终止,则screen命令将继续运行升级过程。
GNU Screen允许我们轻松创建多个屏幕会话,在会话之间切换,在会话之间复制文本,随时连接到会话或从会话断开连接等等。它是每个Linux管理员在必要时应学习和使用的重要命令行工具之一。在本简要指南中,我们将介绍Linux中的screen命令和示例的基本用法。
安装GNU Screen
GNU Screen在大多数Linux操作系统的默认存储库中都可用。
要在Arch Linux上安装GNU Screen,请运行:
$ sudo pacman -S屏幕
在Debian,Ubuntu,Linux Mint:
$ sudo apt-get install screen
在Fedora上:
$ sudo dnf安装屏幕
在RHEL上,CentOS:
$ sudo yum安装屏幕
在SUSE/openSUSE上:
$ sudo zypper安装屏幕
让我们转到一些屏幕命令示例。
用于管理多个终端会话的Screen命令的示例
屏幕中所有命令的默认前缀快捷键是Ctrl + a。使用Screen时,您需要经常使用此快捷方式。所以,请记住这个键盘快捷键。
创建一个新的屏幕会话让我们创建一个新的Screen会话并连接到它。为此,请在终端中键入以下命令:
屏幕
现在,在此会话中运行任何程序或进程,即使断开此会话,运行的进程或程序也将继续运行。
从屏幕会话中分离
要从屏幕会话中分离,请按Ctrl + a和d。您不必同时按两个组合键。首先按Ctrl + a然后按d。从会话中退出后,您将看到类似于以下内容的输出。
[分离自29149.pts-0.sk]
这里,29149是屏幕ID,pts-0.sk是屏幕会话的名称。您可以使用屏幕ID或相应的会话名称来连接,分离和终止屏幕会话。
创建一个命名会话
您还可以使用您选择的任何自定义名称创建一个屏幕会话,而不是默认用户名,如下所示。
屏幕-S ostechnix
上面的命令将创建一个名为xxxxx.ostechnix的新Screen会话并立即连接。要从当前会话中分离,请按Ctrl + a,然后按d。
当您想要找出哪些进程在哪些会话上运行时,命名会话非常有用。例如,在会话中设置LAMP系统时,您只需将其命名为如下所示。
屏幕-S lampstack
创建断开连接的会话
有时您可能想要创建会话但不想自动连接到该会话。在这种情况下,运行以下命令以创建名为senthil的分离会话:
屏幕-S senthil -d -m
也可以缩短为:
屏幕-dmS senthil
上面的命令将创建一个名为senthil的会话,但不会连接到它。
列出屏幕对话
要列出所有正在运行的会话(已连接或已分离),请运行:
屏幕-ls
样本输出:
:上有屏幕
29700.senthil(独立)
29415.ostechnix(独立式)
29149.pts-0.sk(独立式)
3插座/run/screens/S-sk。
如您所见,我有三个正在运行的会话,所有会话都消失了。
连接到屏幕会话
如果要连接到会话,例如29415.ostechnix,只需运行:屏幕-r 29415.ostechnix
要么:
屏幕-r ostechnix
或使用屏幕ID:
屏幕-r 29415
要验证我们是否已连接到上述会话,只需列出打开的会话并进行检查。
屏幕-ls
样本输出:
:上有屏幕
29700.senthil(独立)
29415.ostechnix(附件)
29149.pts-0.sk(独立式)
3插座/run/screens/S-sk。
如您所见,在上面的输出中,我们当前连接到29415.ostechnix会话。要退出当前会话,请按ctrl + a d。
创建嵌套会话
当我们运行screen命令时,它将为我们创建一个会话。但是,我们可以创建嵌套会话(会话中的会话)。
首先,创建一个新会话或连接到一个打开的会话。然后我将创建一个名为嵌套的新会话。
屏幕-S嵌套
现在,在会话中按Ctrl + a和c创建另一个会话。只需重复此操作即可创建任意数量的嵌套屏幕会话。每个会话都将分配一个号码。该数字将从0开始。
您可以按Ctrl + n移动到下一个会话,然后按Ctrl + p移动到上一个会话。
以下是用于管理嵌套会话的重要键盘快捷键列表。
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 \  - 终止所有会话并终止屏幕
Ctrl + a? - 显示键绑定。要退出,请按enter ####锁定会话
屏幕有一个锁定会话的选项。为此,请按Ctrl + a和x。输入您的Linux密码以将其锁定。sk在ubuntuserver上使用的屏幕。
密码:
录制会话
您可能希望在屏幕会话中记录所有内容。要执行此操作,只需按Ctrl + a和H.
或者,您可以使用-L参数启动新会话以启用日志记录。
屏幕-L
从现在开始,您在会话中执行的所有活动都将被记录并存储在$ HOME目录中名为screenlog.x的文件中。这里,x是一个数字。
您可以使用cat命令或任何文本查看器查看日志文件的内容。
录制屏幕会话
终止屏幕会话
如果您不再需要会话,请将其删除。要终止名为senthil的转义会话:
屏幕-r senthil -X退出
要么:
屏幕-X -S senthil退出
要么:
屏幕-X -S 29415退出
如果没有打开会话,您将看到以下输出:
$ screen -ls
在/run/screens/S-sk中找不到套接字。
有关更多详细信息,请参见手册页:
$ man screen
还有一个名为Tmux的类似命令行实用程序,与GNU Screen完全相同。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部