Linux 使用 screen

尽意
2025-01-13 / 0 评论 / 7 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2025年01月13日,已超过9天没有更新,若内容或图片失效,请留言反馈。
在Linux环境中,screen 是一个非常实用的终端多路复用工具,它可以让你在一个终端窗口中同时运行多个会话,并且能够在不同会话之间切换。screen 使得你可以保持任务在后台运行,甚至在断开 SSH 连接后,依然能够继续执行这些任务。

1. 安装 screen

大多数Linux发行版默认都提供了 screen 软件包。如果你的系统上没有安装,可以使用如下命令进行安装:

  • Debian/Ubuntu 系统

    sudo apt-get install screen
  • CentOS/RHEL 系统

    sudo yum install screen
  • Arch 系统

    sudo pacman -S screen

2. 启动 screen

运行 screen 时,它会启动一个新的会话,并将你带入一个新的虚拟终端。基本的启动命令如下:

screen

此时,你会进入一个新的会话,你可以在这个会话中运行任何命令。你可以通过按下 Ctrl+A 再按 C 来创建一个新的虚拟终端。每个虚拟终端都有自己的命令行。

3. 基本命令和操作

创建新会话

按下 Ctrl+A 然后按 C,这将创建一个新的窗口,你可以在新窗口中继续执行命令。

切换会话

  • 切换到下一个窗口:Ctrl+A 然后按 N(next)
  • 切换到上一个窗口:Ctrl+A 然后按 P(previous)
  • 切换到指定窗口:Ctrl+A 然后按数字键(0-9)

分离会话

如果你想将会话挂起,并返回到主终端,使用以下命令:

Ctrl+A d

这会把当前会话分离(detach),你可以在后续任何时候重新连接到它。

恢复会话

要恢复一个已经分离的会话,使用:

screen -r

如果有多个会话,你需要指定会话ID:

screen -r <会话ID>

关闭会话

要关闭当前会话,可以直接退出会话中的 shell(例如 exitCtrl+D)。会话关闭后,所有在该会话中运行的程序都会停止。

4. 常用参数说明

screen 有很多强大的选项,下面是一些常用的参数及其解释:

启动会话时指定名称

你可以为会话指定一个名称,这样可以更容易地管理多个会话:

screen -S mysession

该命令将启动一个名为 mysession 的会话。

列出所有会话

查看当前所有的 screen 会话:

screen -ls

输出类似于:

There are screens on:
        1234.mysession  (Detached)
        5678.othersession (Detached)
2 Sockets in /var/run/screens/S-user.

连接到特定会话

如果你有多个会话,可以通过以下命令连接到指定的会话:

screen -r <会话ID>

创建会话并执行命令

你可以创建一个会话并同时执行命令:

screen -S mysession bash -c "your-command"

这将在 mysession 会话中执行指定的命令。

持久化运行命令

你可以通过 -d -m 参数让 screen 在后台运行一个命令:

screen -d -m your-command

这会在后台启动一个 screen 会话并执行 your-command

进入已分离的会话

当会话被分离后,想要重新连接到这个会话可以使用:

screen -r mysession

5. 配置文件

screen 提供了配置文件功能,可以在文件 .screenrc 中指定个性化设置。你可以在用户的主目录下创建这个文件,或者在 /etc/screenrc 中设置系统级别的配置。

常见的配置选项包括:

  • 设置默认窗口的标题:

    hardstatus alwayslastline "%{= kG}%-Lw%{= kY}[%n] %t%{-}%+Lw%{= kG}"
  • 自动启动某些命令:

    screen -t mysession bash -c "echo Hello World"

6. 高级功能

分屏功能

screen 允许你在一个窗口中分割出多个视图,类似于 tmux。

  • 水平分割Ctrl+A 然后按 S(split horizontally)
  • 垂直分割Ctrl+A 然后按 |(split vertically)
  • 切换分屏Ctrl+A 然后按 Tab(toggle between splits)
  • 关闭分屏Ctrl+A 然后按 X(close split)

设置窗口日志

screen 允许你在运行的会话中记录日志,命令如下:

Ctrl+A H

这会将屏幕内容保存到 screenlog.0 文件中,默认保存在当前目录。

7. 退出 screen

screen 中,退出的方法有两种:

  1. 在当前会话中使用 exit 命令,或者按下 Ctrl+D 退出 shell 会话;
  2. screen 内部按下 Ctrl+A 然后按 K,这将关闭当前窗口。

如果你已经分离了会话,使用 screen -r 重新连接后也可以通过退出会话关闭会话。

1

评论 (0)

取消