#
目录
最近发现服务器跑实验时间长,连接中断,又得重头再来
screen这个命令派上用场了
# Debian/Ubuntu:
sudo apt-get install screen
# CentOS/RHEL:
sudo yum install screen
## 基本用法
# 启动一个新的 Screen 会话:
screen
这将启动一个新的 screen 会话,并给你一个新的 shell。你可以在其中运行命令。
# 启动一个带名称的 Screen 会话:
screen -S session_name
使用 -S
选项可以给你的会话指定一个名称,这样更容易管理多个会话。
# 分离(detach)当前的 Screen 会话:
按下 Ctrl-A
然后按 d
。这会将当前的 screen 会话分离,你可以稍后重新连接。
# 列出所有当前的 Screen 会话:
screen -ls
# 重新连接到一个已经存在的 Screen 会话:
screen -r session_name
如果你只有一个 screen 会话在运行,也可以直接使用 screen -r
。
# 终止一个 Screen 会话:
在 screen 会话内,输入 exit
或按下 Ctrl-D
来结束会话。
## 高级用法
# 分屏显示:
Ctrl-A
S
:水平分割当前区域。
Ctrl-A
|
:垂直分割当前区域。
Ctrl-A
Tab
:在不同的分割区域之间切换。
Ctrl-A
Q
:关闭所有分割区域,保留当前活动区域。
Ctrl-A
X
:关闭当前分割区域。
# 命名窗口:
Ctrl-A A
# 切换窗口:
Ctrl-A
n
:切换到下一个窗口。
Ctrl-A
p
:切换到上一个窗口。
Ctrl-A
数字
:切换到指定编号的窗口(例如 Ctrl-A
0
切换到窗口0)。
# 日志记录:
Ctrl-A H
-
开启或关闭当前窗口的日志记录,日志文件将保存到
screenlog.0
中。
## 创建和查看 Screen 会话
# 启动一个新的 Screen 会话并命名:
在第一个设备上(例如你的本地电脑或服务器 A),通过 SSH 连接到服务器并启动一个命名的 Screen 会话:
screen -S shared_session
# 运行你的任务或命令:
在 Screen 会话中运行你需要的任务或命令。例如:
long_running_command
# 分离(detach)当前的 Screen 会话:
按下 Ctrl-A
然后按 d
。这会将当前的 Screen 会话分离,但任务仍然在后台运行。
## 从不同设备查看同一个 Screen 会话
# 从第二个设备连接到服务器:
使用 SSH 从另一个设备(例如你的手机或另一台电脑)连接到同一个服务器:
ssh username@server_ip
# 列出所有当前的 Screen 会话:
在服务器上列出所有活动的 Screen 会话,以确保你知道会话的名称或 ID:
screen -ls
你会看到类似如下的输出:
# 重新连接到已经存在的 Screen 会话:
使用 -r
选项连接到共享的 Screen 会话:
screen -r shared_session
如果会话是唯一的,你也可以直接使用:
screen -r
## 多人同时查看和共享 Screen 会话
如果你需要多人同时查看和操作同一个 Screen 会话,你可以使用共享模式:
# 启用多用户模式:
在第一个设备的 Screen 会话中,启用多用户模式。首先进入 Screen 会话:
screen -r shared_session
然后启用多用户模式:
Ctrl-A :multiuser on
# 添加用户权限:
允许特定用户访问这个会话。假设你希望用户 other_user
也能访问:
Ctrl-A :acladd other_user
请注意,这需要确保其他用户具有服务器上的适当权限,并且他们的用户名与 ACL 配置中的用户名匹配。
# 第二个用户连接到服务器并共享会话:
其他用户可以通过 SSH 连接到服务器,然后使用相同的会话名称连接到 Screen 会话:
screen -x username/shared_session