5

Linux screen命令

 1 year ago
source link: https://www.myfreax.com/how-to-use-linux-screen/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Linux screen命令

您是否曾经遇到过在远程计算机上执行长时间运行的任务,突然连接中断,SSH会话终止以及工作丢失的情况

Updated At 17 Oct 2022 4 min read
By myfreax
Linux screen命令

Linux screen命令

您是否曾经遇到过在远程计算机上执行长时间运行的任务,突然连接中断,SSH会话终止以及工作丢失的情况。

在本教程中,我们将说明如何安装screen命令并说明如何使用screen命令,如何使用screen运行后台命令,进程与任务。

screen或GNU screen是终端多路复用器。换句话说,这意味着您可以启动screen会话,然后在该会话中打开任意数量的窗口,也就是虚拟终端。

即使它们的窗口不可见,在Screen中运行的进程也将继续运行。

如今,大多数Linux发行版中都已预先安装screen命令。可以运行命令screen --version检查它是否已安装在你的Linux系统。命令将会screen的版本信息。

如果您的系统上未安装screen,则可以使用发行版的软件包管理器轻松安装它。

如果你的计算机运行的是基于Debian的Linux发行版。例如Ubuntu和Linux mint,可以运行命令sudo apt install screen安装screen。

如果你的计算机运行的是基于Redhat的Linux发行版。例如CentOS和Fedora,可以运行命令sudo apt install screen安装screen。

sudo yum install screen #for centos and fedora
sudo apt install screen #for Ubuntu and Debian
screen --version
Screen version 4.06.02 (GNU) 23-Oct-17

启动 screen

要开始screen会话,只需在终端运行screen 命令即可。这将打开一个screen会话,创建一个新窗口,并在该窗口中启动shell。

当您运行多个screen会话时,命名会话非常有用。要创建命令的会话,请运行命令screen -S session_name

现在您已经打开了一个screen会话,你键入Ctrl+a ?来获取命令列表。

当进入后,请键入Ctrl-a c,创建一个shell会话,然后就可以运行命令或者执行常驻后台任务。

如果需要退出当前screen会话时,请键入Ctrl+a d 退出screen。你执行任务将会一直运行。

screen

screen -S session_name #命名会话
Ctrl+a ?   #获取帮助
Ctrl+a c   #在screen创建shell 会话
Ctrl+a d   #退出screen

screen 快捷键

当您开始新的screen会话时,它将创建一个带有shell的窗口。screen会话中可以有多个窗口。

要创建shell会话类型的窗口键入Ctrl+a c,将为其分配范围0...9中的第一个可用数字。

以下是一些用于管理screen窗口的最常用命令。Ctrl+a c创建一个新窗口,包括shell会话。

Ctrl+a "列出所有窗口,Ctrl+a 0切换到窗口0,Ctrl+a A重命名当前窗口

Ctrl+a S将当前窗口水平分为两个窗口,Ctrl+a |将当前窗口垂直分割为两个窗口。

Ctrl+a tab将输入焦点切换到下一个窗口,Ctrl+a Ctrl+a在当前窗口和上一个之间切换。

Ctrl+a Q关闭当前区域以外的所有窗口,Ctrl+a X关闭当前窗口。

您可以随时输入键入Ctrl+a d退出screen会话,从会话断开后,在screen会话中运行的程序将继续运行。

恢复screen会话

要恢复screen会话,请运行命令screen -r。如果您的计算机上正在运行多个screen会话,则需要在r选项后附加screen会话id。

要找到会话ID,请运行screen -ls命令列出当前正在运行的screen会话。例如要还原screen的id是10835.pts的会话,请运行命令screen -r 10835

screen -ls
screen -r

screen -r 10835
There are screens on:
    10835.pts-0.myfreax-desktop   (Detached)
    10366.pts-0.myfreax-desktop   (Detached)
2 Sockets in /run/screens/S-myfreax.

自定义screen

启动screen时,如果配置文件存在,它将从/etc/screenrc~/.screenrc中读取其配置参数。

我们可以在~/.screenrc文件根据喜好修改默认的screen设置。以下是带有自定义状态行和一些其他选项的示例配置。

# Turn off the welcome message
startup_message off

# Disable visual bell
vbell off

# Set scrollback buffer to 10000
defscrollback 10000

# Customize the status line
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
〜/.screenrc

在本教程中,您学习了如何使用Gnu Screen。现在,您可以开始使用screen程序,并通过单个会话创建多个窗口,在窗口之间导航。

退出和恢复screen会话,并使用〜/.screenrc文件个性化您的screen终端。请访问Screen用户手册页,了解有关Gnu screen的更多信息。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK