当前位置: 首页 > 科技观察

Linux下终端多路复用器screen命令的使用技巧

时间:2023-03-12 11:26:28 科技观察

你有没有遇到过这样的情况,你正在远程计算机上执行一个长时间运行的任务,突然连接断开,SSH会话终止,你的工作丢失了。好吧,它在某个时候发生在我们所有人身上,不是吗?幸运的是,有一个名为screen的实用程序可以让我们恢复会话。Introductionscreen或GNUscreen是一个终端多路复用器。换句话说,这意味着您可以启动屏幕会话,然后在该会话中打开任意数量的窗口(虚拟终端)。在屏幕上运行的进程在其窗口不可见时将继续运行,即使在断开连接后也是如此。安装Linuxscreen目前大多数Linux发行版都预装了screen包。您可以通过键入以下命令检查它是否已安装在您的系统上:linuxmi@linuxmi:~/www.linuxmi.com$screen--versionScreenversion4.08.00(GNU)05-Feb-20如果您的系统上未安装screen,可以使用您的发行版的包管理器轻松安装。在Ubuntu和Debian上安装screenlinuxmi@linuxmi:~/www.linuxmi.com$sudoaptinstallscreen在CentOS和Fedora上安装screenlinuxmi@linuxmi:~/www.linuxmi.com$sudoyuminstallscreen启动Linuxscreen输入screen:screen这将打开一个屏幕会话,创建一个新窗口并在该窗口中启动一个shell。现在您已经打开了一个屏幕会话,您可以通过键入以下命令来获取命令列表:Ctrl+a?命名会话命名会话在运行多个屏幕会话时很有用。要创建命名会话,请运行带有以下参数的screen命令:screen-Ssession_name选择一个描述性且有意义的会话名称始终是个好主意。使用LinuxScreen窗口默认情况下,当您启动一个新的screen会话时,它会创建一个包含shell的窗口。您可以在一个屏幕会话中有多个窗口。要使用shell键入Ctrl+ac创建一个新窗口,它将被分配0...9范围内的第一个可用编号。以下是管理LinuxScreen窗口的一些最常用的命令:Ctrl+ac创建一个新窗口(带shell)Ctrl+a"列出所有窗口Ctrl+a0切换到窗口0(按编号)Ctrl+aA重置名称当前窗口Ctrl+aS将当前区域水平拆分为两个区域Ctrl+a|将当前区域垂直拆分为两个区域Ctrl+atab将输入焦点切换到下一个区域Ctrl+aCtrl+a在当前和上一个区域之间Ctrl+aQ关闭所有但当前区域Ctrl+aX关闭当前区域这里是管理嵌套会话的重要键盘快捷键列表。Ctrl+a"-列出所有会话Ctrl+a0-切换到会话号0Ctrl+an-切换到下一个sessionCtrl+ap-切换到上一个会话Ctrl+aS-将当前区域水平拆分为两个区域Ctrl+al-将当前区域垂直拆分为两个区域Ctrl+aQ-关闭除当前会话之外的所有会话Ctrl+aX-关闭当前会话Ctrl+a\-终止所有会话并终止屏幕Ctrl+a?-显示键绑定。要退出,请按Enter####LockSessionScreen有一个锁定会话的选项。为此,请按Ctrl+a和x。输入您的Linux密码进行锁定。从Linux屏幕会话中分离您可以随时通过键入以下命令从屏幕会话中分离:Ctrl+ad从会话中分离后,在屏幕会话中运行的程序将继续运行。重新连接到Linuxscreen要恢复screen会话,请使用以下命令:screen-r如果您的计算机上正在运行多个screen会话,则需要将screen会话ID附加到r。查找screensessionID,可以使用如下命令列出当前运行列表:linuxmi@linuxmi:~/www.linuxmi.com$screen-lsThereisascreenon:15105.pts-2.linuxmi(2020-11-1810:11分02秒)(附)1Socketin/run/screen/S-linuxmi.如果要恢复15105.pts-2,请键入以下命令:linuxmi@linuxmi:~/www.linuxmi.com$screen-r15105自定义Linux屏幕如果/etc/screenrc和~/.screenrc文件存在,则屏幕的配置参数在启动时从中读取。我们可以通过.screenrc文件根据自己的喜好修改默认的屏幕设置。这是一个带有自定义状态行和几个附加选项的~/.screenrc配置示例:~/.screenrc#Closewelcomemessagestartup_messageoff#Disablevisualbellvbelloff#Setscrollbackbufferto10000defscrollback10000#Cus??tomstatuslinehardstatusalwayslastlinehardstatusstring'%{=kG}[%{G}%H%{g}][%=%{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%=%{g}][%{B}%m-%d%{W}%c%{g}]'基础Linuxscreen用法以下是开始使用screen的最基本步骤:在命令提示符下,键入screen。运行所需的程序。使用组合键Ctrl-a+Ctrl-d从屏幕会话中分离。要重新连接到屏幕会话,请键入screen-r。结束语在本教程中,您学习了如何使用GnuScreen。您现在可以开始使用Screen实用程序,从单个会话创建多个屏幕窗口,在窗口之间导航,分离和恢复屏幕会话,并使用.screenrc文件个性化您的屏幕终端。在屏幕用户手册页上还有很多关于Gnu屏幕的知识。