偶然知道了screen命令,有时候putty连接服务器,当数据量较大,运行时间较长时,直接跑命令,窗口或许异常终止,不得不重新跑,还是学下screen命令吧。可以使用Linux下的screen命令,即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。
常用:
1、安装screen:yum install -y screen
2、运行screen -ls可以看到现有的screen的会话。
3、在screen里运行我们需要的脚本,那么运行完后怎么回到原来的命令行呢(暂时离开,保留screen会话中的任务或程序)?先按CTRL+a,然后再按d。这个就是dettach的意思啦,离开screen的session。
4、恢复screen会话
当回来时可以再执行执行:screen -r lnmp 即可恢复到离开前创建的lnmp会话的工作界面。如果忘记了,或者当时没有指定会话名,可以执行:screen -ls screen会列出当前存在的会话列表,
5、怎么回到这个screen的会话中呢?运行screen -r <session name>
6、分屏: Screen分屏,有的时候我们需要边观察一个命令的输出边执行一些操作,开两个CLI是一种解决方式,用screen分屏的功能也能做到。
a、首先在screen的session中按CTRL+a,X,这个时候就会出现第二个屏。
b、然后按CTRL+a,tab可以在两个屏幕之间自由切换。
c、切换到下个屏幕后,没有命令输入的提示符啊,怎么建立呢?按CTRL+a c
7、可以在detach的模式下跑screen的命令,我经常用这个命令去在后台持续抓包。
就是在主tty中,运行 screen -dm <你要跑的命令>
看下图,我运行screen -dm tcpdump,然后再去查看screen的 session时,发现多了一个,但是我并没有进入screen的会话中,也就是并没有attach进去。
8、kill掉一个screen
(1)、使用screen名字,kill掉。
screen -S session_name -X quit
(2)、激活screen:
screen -r session_name
并利用exit退出并kiil掉session。
9、关闭screen的会话 执行:exit ,会提示:[screen is terminating],表示已经成功退出screen会话。
10、远程演示
首先演示者先在服务器上执行 screen -S test 创建一个screen会话,观众可以链接到远程服务器上执行screen -x test 观众屏幕上就会出现和演示者同步。
11、常用快捷键
Ctrl+a c :在当前screen会话中创建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
12、创建一个新窗口 screen -S name 敲击screen直接启动screen,使用这条命令可以为screen起一个名字
13、清楚dead会话,若因为某一个原因其中一个会话死掉,这时screen -list会显示该会话成为dead状态,使用screen -wipe命令清楚该会话
14、用 screen -ls, 显式当前状态为Attached, 但当前没有用户登陆些会话。screen此时正常状态应该为(Detached)
此时用screen -r <session-id>,怎么也登不上。最后找到解决方法:screen -D -r <session-id>
-D -r 先踢掉前一用户,再登陆。
来源:CSDN
作者:云仄
链接:https://blog.csdn.net/niutingbaby/article/details/84643916