GNU Screen是一种与终端会话配合使用的工具,允许用户在断开连接后恢复会话。Screen可防止会话“超时”或断开SSH连接或本地终端仿真器。单个Screen会话具有托管多个会话或“窗口”的能力。Screen可用于各种任务,例如在终端环境中维护持久性IRC会话和多任务。
Screen可在任何Unix / Linux环境(例如您的腾讯云CVM服务器)和Mac OS X上运行。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。
本节介绍如何在许多不同的系统上安装Screen。已经提供了示例以简化安装过程。
安装Screen时,您将需要root权限。提供的示例不使用root帐户。如果您使用root登录,则不需要命令之前的sudo前缀。
对于Debian或Ubuntu系统,请使用以下命令更新,升级和安装Screen:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install screen
对于CentOS或Fedora系统,请使用以下命令更新系统并安装Screen:
sudo yum update
sudo yum install screen
对于Arch Linux系统,以下命令用于更新和安装Screen:
sudo pacman -Sy
sudo pacman -S screen
对于Gentoo系统,以下命令用于更新和安装Screen:
sudo emerge --sync
sudo emerge screen
默认情况下,Screen安装在Mac OS X系统上,可以在没有任何其他准备的情况下使用。
要使用具有Screen会话的应用程序,请执行以下操作:
screen
命令。irssi
或mutt
。您的终端会话将照常运行。要结束当前会话而不影响任何正在运行的进程,请输入Ctrl+a+d
或退出终端应用程序。退出会话后,您将返回到Screen前提示。Screen会话和应用程序将继续运行。您可以随时使用screen -r
命令重新连接到您的会话。
发出screen -r
命令后,您将重新连接到上一个分离的会话。可以有多个Screen会话以及多个分离会话。当您尝试重新连接到会话时,可能会显示分离的Screen列表。每个会话都有一个进程ID或PID。因此,要确定要重新连接的会话,请使用screen -ls
命令显示所有Screen会话及其PID。以下是screen -ls命令的示例:
user:~$ screen -r
There are several suitable screens on:
25028.pts-19.XXX-serv8 (01/06/2014 08:15:34 PM) (Attached)
24658.pts-19.XXX-serv8 (01/06/2014 08:11:38 PM) (Detached)
24509.pts-19.XXX-serv8 (01/06/2014 08:10:00 PM) (Detached)
18676.pts-5.XXX-serv8 (01/05/2014 08:55:33 PM) (Attached)
要使用PID重新连接到Screen会话,请使用以下语法:
screen -r <24658>
如果您想要的Screen已经附加但是您看不到它,则有许多用于调用Screen的命令行参数。以下是不同的选项:
screen -dr
- 将正在运行的Screen与其当前会话分离,并在本地计算机上重新连接会话。screen -x
- 附加到正在运行的会话而不从其当前附件中分离。当您和另一个用户尝试同时访问同一会话时,此参数特别有用。screen -DDR
- 从正在运行的附件中分离正在运行的会话并执行强制重新附加。当-dr
选项不成功时,这很有用。screen -A
- 强制Screen在附加时将其所有窗口的大小调整为当前窗口。screen -X [command]
- 启动一个Screen会话,但它不会加载一个shell,而是加载一个任意命令。如果您创建其他Screen窗口,他们也将运行此命令。连接或重新连接到Screen会话后,所有命令都通过使用Ctrl
,字母a
和另一个字母或数字来执行。(注意同时按下Ctrl
和a
键。)下面是Screen命令列表:
Ctrl+a c
- 创建一个新的Screen窗口。默认Screen编号为零。Ctrl+a 0-9
- 在窗口0到9之间切换。Ctrl+a x
- 锁定终端窗口。您必须输入密码才能解锁终端会话。Ctrl+a n
- 切换到下一个窗口。Ctrl+a k
- 关闭当前窗口。发出命令后,系统会要求您输入y
或确认n
。Ctrl+a A
- 允许您输入窗口的标题。Ctrl+a d
- 从Screen上分离。Ctrl+a ?
- 将显示Screen可用的所有命令选项的列表。请务必注意,上面列出的命令选项只是可用选项的一小部分。
Screen使用了许多其他命令。命令列表非常广泛,因此请务必注意,并非所有命令都会被覆盖。此外,可以通过编辑screenrc
文件来定制屏幕。
通过SSH连接到远程会话时,最好同时连接到Screen。语法如下:
ssh -t <user>@<server> screen -r
用户名是您连接的用户,服务器是服务器的IP地址或名称。
要更改Screen的默认设置,请编辑位于/ etc / screenrc
中的screenrc
文件。 可以使用任何文本编辑器编辑screenrc
文件。 此文件用于设置选项,将Screen功能绑定到键,设置终端功能,以及在Screen会话开始时自动连接到一个或多个窗口。 强烈建议您在进行任何更改之前制作screenrc
文件的备份副本。
Screen分发中包含两个配置文件:/etc/screenrc
和/etc/etcscreenrc
。它们包含有关如何自定义Screen的几个有用示例。使用您喜欢的文本编辑器打开文件。编辑其中一个文件的命令是:
nano screenrc
(请注意,您可能只有这些文件之一。)以下是screenrc
文件的示例:
有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。
想要了解更多关于GNU Screen和Linux的教程请前往腾讯云+社区学习。
参考文件:《Using GNU Screen to Manage Persistent Terminal Sessions》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。