天天看点

screen 命令使用及示例

<code>screen</code> 是一个非常有用的命令,提供从单个 ssh 会话中使用多个 shell 窗口(会话)的能力。当会话被分离或网络中断时,screen 会话中启动的进程仍将运行,你可以随时重新连接到 screen 会话。如果你想运行一个持久的进程或者从多个位置连接到 shell 会话,这也很方便。

在本文中,我们将展示在 linux 上安装和使用 <code>screen</code> 的基本知识。

<a target="_blank"></a>

<code>screen</code> 在一些流行的发行版上已经预安装了。你可以使用下面的命令检查是否已经在你的服务器上安装了。

<code>screen -v</code>

<code>screen version 4.00.03 (fau)</code>

如果在 linux 中还没有 <code>screen</code>,你可以使用系统提供的包管理器很简单地安装它。

centos/redhat/fedora

<code>yum -y install screen</code>

ubuntu/debian

<code>apt-get -y install screen</code>

你可以在命令行中输入 <code>screen</code> 来启动它,接着会有一个看上去和命令行提示符一样的 <code>screen</code> 会话启动。

<code>screen</code>

使用描述性名称启动屏幕会话是一个很好的做法,这样你可以轻松地记住会话中正在运行的进程。要使用会话名称创建新会话,请运行以下命令:

<code>screen -s name</code>

将 “name” 替换为对你会话有意义的名字。

要从当前的 screen 会话中分离,你可以按下 <code>ctrl-a</code> 和 <code>d</code>。所有的 screen 会话仍将是活跃的,你之后可以随时重新连接。

如果你从一个会话分离,或者由于某些原因你的连接被中断了,你可以使用下面的命令重新连接:

<code>screen -r</code>

如果你有多个 screen 会话,你可以用 <code>ls</code> 参数列出它们。

<code>screen -ls</code>

<code></code>

<code>there are screens on:</code>

<code>7880.session    (detached)</code>

<code>7934.session2   (detached)</code>

<code>7907.session1   (detached)</code>

<code>3 sockets in /var/run/screen/s-root.</code>

在我们的例子中,我们有三个活跃的 screen 会话。因此,如果你想要还原 “session2” 会话,你可以执行:

<code>screen -r 7934</code>

或者使用 screen 名称。

<code>screen -r -s session2</code>

有几种方法来中止 screen 会话。你可以按下 <code>ctrl+d</code>,或者在命令行中使用 <code>exit</code> 命令。

要查看 <code>screen</code> 命令所有有用的功能,你可以查看 <code>screen</code> 的 man 手册。

<code>man screen</code>

<code>name</code>

<code>screen - screen manager with vt100/ansi terminal emulation</code>

<code>synopsis</code>

<code>screen [ -options ] [ cmd [ args ] ]</code>

<code>screen -r [[pid.]tty[.host]]</code>

<code>screen -r sessionowner/[[pid.]tty[.host]]</code>

原文发布时间为:2017-02-17

本文来自云栖社区合作伙伴“linux中国”