如何使用Linux Screen命令进行远程SSH
使用ssh命令时,它仅提供一个屏幕(终端)。
如果丢失了该屏幕,则将丢失在远程计算机上所做的所有操作。
有时,当网络故障中断ssh连接并且我们丢失了正在执行的操作而必须重新连接远程服务器时,就会发生这种情况。
如果我们正处于一些重要的事情之中,那将是非常糟糕的。
例如,如果我们想一次执行“ vi httpd.conf”,“ tail -f/var/log/messages”和“ service httpd reload”之类的三件事,则需要打开三个单独的ssh会话。
GNU屏幕实用程序是终端多路复用器。
如果我们是在远程服务器上工作的系统管理员,那么screen是仅通过命令行界面即可管理远程计算机的绝佳工具。
它使我们可以断开与它的连接,然后在以后重新连接到该相同的屏幕会话。
它默认安装在Ubuntu中,对于基于RHEL的系统,我们可以在yum命令的帮助下安装屏幕
# yum install screen
要使用屏幕,只需键入以下命令:
$screen
我们可能会看到欢迎消息(如果有),然后在窗口中看到常规的bash提示。
要控制屏幕,请按“ Ctrl + a”组合键,然后再按一次键盘。
例如,“ Ctrl + a”后跟“?
” (标记为Ctrl + a ,?)显示帮助屏幕。
以下是一些可用于操作屏幕的命令和控制键。
屏幕控制键
$screen -ls There is a screen on: 7089.pts-1.server10 (Attached) 1 Socket in /var/run/screen/S-francois. Change window title $Ctrl+a, a Set window's title to: My Server10 Create a new window $Ctrl+a, c Show active window titles $Ctrl+a, " Num Name Flags 0 My Server Up/down arrows change windows 1 bash Detach screen from terminal $Ctrl+a, d
上面显示的屏幕会话导致创建了两个窗口(每个窗口都运行bash shell)。
我们可以创建任意数量的名称,并根据需要选择名称。
另外,我们可以通过在每个打开的窗口中退出shell程序(键入exit或者Ctrl + d)来关闭它,而不是从屏幕会话中分离出来。
重新连接到屏幕会话
当屏幕会话断开时,我们将返回到首次登录服务器时打开的shell程序。
我们可以稍后再返回该屏幕(即使在注销并断开与服务器的连接之后)。
要在仅运行一个屏幕时重新连接,请键入以下内容:
$screen -r
如果正在运行多个屏幕会话,则“ screen -r”将不起作用。
例如,这显示了当两个分离的屏幕会话正在运行时会发生什么:
$screen -r There are several suitable screens on: 2242.pts-4.server10 (Detached) 3354.pts-4.server10 (Detached) Type "screen [-d] -r [pid.]tty.host" to resume one of them. As the output suggests, you could identify the screen session and select which screen you want to connect to: $screen -r 2242.pts-4.server10
命名屏幕会话
除了使用默认名称之外,我们还可以在启动屏幕时为屏幕会话创建更多描述性名称。
例如:
$screen -S testsession $screen -ls There is a screen on: 26523.testsession (Attached)
共享屏幕会话
对于系统管理员来说,这是非常重要的东西。
screen命令还允许共享屏幕。
此功能非常适合技术支持,因为连接到该会话的每个人都可以键入并观看当前会话。
如上一节所述,创建一个命名屏幕使此过程变得更加容易。
然后,另一台计算机上的另一个人可以SSH到服务器(使用相同的用户名)并键入以下内容:
$screen -x testsession
与'screen -r'一样,如果仅运行一个屏幕,则无需指定要连接到的屏幕:
$screen -x