screen简易用法总结

screen
是 Linux 下的常用命令,用于创建会话,可以将会话切换到后台运行,方便继续其它操作。平时 SSH 连接服务器,如果遇到超时或意外断线,正在运行任务可能会中断,用 screen 可以完美解決。
screen是一个非常实用的工具,提供从单个 SSH 会话(或本地会话)中使用多个 shell 窗口(会话)的能力。当会话被分离或网络中断时,screen 各会话中启动的进程仍将运行,而且你可以随时重新连接到 某个指定screen 会话查看情况。
创建:screen -S ###
查看有多少会话:screen -ls
恢复:screen -r ###
如果-ls后显示attache则不能恢复需要:先screen -d ###
再screen -r ###
删除 screen -S ### -X quit
启动一个screen会话
可以简单的在命令行里直接输入screen
,这样便启动并进入到一个screen会话了。
如果你想给这个screen会话做个标记,也就是给它一个名称,可以用screen -S ssesion_name
替换上述的screen
,这样就启动并进入到一个名为session_name的screen会话了。
在screen会话执行命令
进入screen会话后,便可在这个screen会话中执行一些你想执行的命令了,比如升级系统apt update && apt upgrade -y
。
分离screen会话
如果你的命令执行时间比较长,比如上述的升级系统操作,而你又不想等待,想干点别的事。
这个时候你可以分离这个会话,让它在后台运行,按Ctrl + a + d
即可分离当前会话,回到本地会话。
重返screen会话
当你觉得时间差不多了,想回到之前升级系统那个会话看看运行结果或运行情况,你可以输入screen -r
返回之前的会话,前提是你只创建了一个screen会话,如果有多个,你还得知道会话的pid或者name。
可以输入screen -ls
查看当前所有的screen会话,例如:
1 2 3 4 5 6 7 | screen -ls There are screens on: 7880.session (Detached) 7934.session2 (Detached) 7907.session1 (Detached) 3 Sockets in /var/run/screen/S-root. |
其中7880,7934,7907为各screen会话对应的pid,而session,session1,session2则为它们对应的name。
可以指定pid screen -r 7934
或指定name screen -r -S session2
回到指定的screen会话中。
结束screen会话
这个很简单,在screen会话中输入exit或者按Ctrl + d
即可结束当前会话。
用途说明 | 命令示例 |
---|---|
创建会话并进入 | screen -S 会话名称 |
恢复指定会话 | screen -r 会话名称 |
列出所有会话 | screen -ls |
删除指定会话 | screen -S 会话名称 -X quit |
删除所有会话 | killall screen |
清除 dead 状态会话(因某些原因已结束的会话) | screen -wipe |
下面命令在会话中使用 | |
退出当前会话窗口(不会影响进程继续运行) | 按 Ctrl+a 组合键,接着再按 d 键 |
创建新的终端会话 | 按 Ctrl+a 组合键,接着再按 c 键 |
强制关闭当前会话并结束里面的进程 | 按 Ctrl+a 组合键,接着再按 k 键 |
显示所有会话列表 | 按 Ctrl+a 组合键,接着再按 w 键 |
切换其它会话窗口(编号 0-9) | 按 Ctrl+a 组合键,接着再按 0-9 数字键 |
锁定当前会话,恢复需验证用户密码 | 按 Ctrl+a 组合键,接着再按 x 键 |
显示更多选项帮助信息 | 按 Ctrl+a 组合键,接着再按 ? 键 |