如何使用Linux的 Screen 命令
你有没有遇到过这样的情况:你在远程机器上执行一个长期运行的任务,突然你的连接中断了,SSH会话被终止了,你的工作也丢失了。好吧,这已经发生在我们所有人身上的某个时刻,不是吗?幸运的是,有一个叫做screen
的工具,允许我们恢复会话。
简介
Screen或GNU Screen是一个终端复用器。换句话说,它意味着你可以启动一个屏幕会话,然后在这个会话中打开任意数量的窗口(虚拟终端)。在屏幕中运行的进程在其窗口不可见时将继续运行,即使你被断开了连接。
安装Linux的GNU屏幕
现在大多数Linux发行版上都预装了屏幕包。你可以通过输入以下信息来检查它是否安装在你的系统上。
screen --version
输出
Screen version 4.06.02 (GNU) 23-Oct-17
如果你的系统上没有安装屏幕,你可以使用你的发行版的软件包管理器轻松地安装它。
在Ubuntu和Debian上安装linux屏幕
sudo apt update
sudo apt install screen
在CentOS和Fedora上安装linux屏幕
sudo yum install screen
启动Linux的屏幕
要开始一个屏幕会话,只需在控制台中键入screen
。
screen
这将打开一个屏幕会话,创建一个新的窗口,并在该窗口中启动一个shell。
现在你已经打开了一个屏幕会话,你可以通过键入来获得一个命令列表。
Ctrl+a
?
开始命名的会话
当你运行多个屏幕会话时,命名的会话很有用。要创建一个命名的会话,请用以下参数运行screen命令。
screen -S session_name
选择一个描述性的会话名称始终是一个好主意。
在Linux屏幕上工作的Windows
当你开始一个新的屏幕会话时,它会创建一个单一的窗口,里面有一个外壳。
你可以在一个 "屏幕 "会话中拥有多个窗口。
要创建一个外壳类型为Ctrl+a
c
的新窗口,将从0...9
的范围内为其分配第一个可用的数字。
下面是一些管理Linux屏幕Windows的最常见的命令。
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
关闭当前的区域。
从Linux屏幕会话中分离出来
你可以在任何时候通过打字从屏幕会话中脱离。
Ctrl+a
d
在屏幕会话中运行的程序,在你脱离会话后将继续运行。
重新连接到一个Linux屏幕上
要恢复你的屏幕会话,请使用下面的命令。
screen -r
如果你的机器上有多个屏幕会话在运行,你需要在r
开关之后加上屏幕会话的ID。
要找到会话ID,要列出当前正在运行的屏幕会话,要用。
screen -ls
输出
There are screens on:
10835.pts-0.linuxize-desktop (Detached)
10366.pts-0.linuxize-desktop (Detached)
2 Sockets in /run/screens/S-linuxize.
如果你想恢复10835.pts-0屏幕,那么请键入以下命令。
screen -r 10835
自定义Linux的屏幕
当screen
被启动时,它从/etc/screenrc
和~/.screenrc
读取它的配置参数,如果文件存在的话。我们可以根据自己的喜好使用.screenrc
文件来修改默认的屏幕设置。
下面是一个带有自定义状态行和一些额外选项的~/.screenrc
配置样本。
# 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}]'
基本的Linux屏幕使用方法
以下是开始使用屏幕的最基本的步骤。
- 在命令提示符下,键入
screen
。 - 运行所需的程序。
- 使用键序
Ctrl-a
+Ctrl-d
来脱离屏幕会话。 - 通过键入
screen -r
重新连接到屏幕会话。
总结
在本教程中,你学会了如何使用Gnu Screen。现在你可以开始使用Screen工具,从一个会话中创建多个屏幕窗口,在窗口之间导航,分离和恢复屏幕会话,并使用.screenrc
文件个性化你的屏幕终端。
在Screen用户手册页面上有更多关于Gnu Screen的信息可以了解。
如果你有任何问题或反馈意见,请随时留言。