远程连接服务器时,如果连接中断,则跑的代码,传输的数据就废了。幸运的是,screen 这款工具能很好的解决这个问题。重新连上服务器后,在 screen 中执行的任务可以接着执行。下面就介绍一些主要、简单的用法。
-
一个 linux 用户通过 screen 可以创建多个 session,一个 session 里又可以创建多个 window。session 和 window 构成一个树结构。
注释:c+a 代表 Ctrl + a,其他类似;
- session 的创建:screen
- session 的杀死(session 的杀死意味着彻底终结程序及其他操作):exit (要杀死该 session 就要先进入该 session,若就在该 session 下则直接 exit,若不在则先 c+a 后 d 回到根,然后 screen -ls 查看要杀死的 session,再 screen -r pid 进入该 session,最后 exit)
- session 的重命名:c+a 后 A
- session 的后台化(detached状态)(即回到根目录):c+a 后 d
- 查看开了哪些 session 及其状态:screen -ls ( attached 表示当前界面活跃,detached 在后台运行)
-
session 的进入:当 session 是 detached 状态时用 screen -r pid 可以进入;
当和服务器连接断掉了再连上后,session 是在 attached 状态,这时要先用 screen -d pid 将它转为 detached 状态后,再用 screen -r pid 才能进入;
- window 的创建:在 screen 中 c+a 后 c
- window 的杀死:在 screen 中 c+a 后 K , y
- 同一 session 的 window 间的切换:下一个/前一个窗口:c+a 后 n/p
- 同一 session 下有哪些 window:c+a 后 w,* 代表当前窗口
- window 下可复制模式:c+a 后 [ 进入该模式;类似 vim,c+b 上翻,c+f 下翻,esc 退出可复制模式