因为最近使用screen命令比较多,但是一旦进入screen会话,不管用哪个terminal都会有不能翻页等的问题。我虽然知道有快捷键,但是也只是知道一个CR+a+d进行detach的快捷键,所以特地去查了一下,在这里记录下。
常用的命令
新建会话
screen -S <NAME>
创建一个NAME为名的screen会话。
如果还想要指定默认启动会话的命令,还可以使用-s
screen -S myscreen -s /bin/bash
脱离会话
每一个会话都会有一个是否attached的状态,如果已经attached,那么就不能再次attach,必须先detach。
screen -d <NAME|SID>
通过这个命令可以快速detach一个会话。假如在切换到某个会话后不小心断开了SSH连接什么的,通过这个命令可以快速恢复。
连接会话
screen -r <NAME|SID>
通过这个命令可以快速连接到一个已有的会话。
假如遇到上面提到的断开连接,但是想要直接连接到刚刚那个会话,也可以通过把-r
换成-R
的方式,这样会自动踢掉上一个连接。
列出所有会话
screen -ls
通过这个可以列出所有会话,可以看到SID和NAME。
强制退出
screen -X -S <NAME|SID> quit
强制杀死一个会话。
执行命令而不attach
想要对任意screen会话执行命令而不进入,可以用下面这条命令
screen -S <NAME|SID> -p <DISPLAYID:0> -X <CMD>
共享会话
可以让两个连接使用相同窗口,同时输入并接受输出。主要参数是-x
创建并共享窗口:
screen -S <NAME> -x
打开一个已经attach的窗口,以共享的方式:
screen -x <name>
常用快捷键
Detach
从一个会话脱离的方法
CR
+A
+D
在最近的两个会话之间切换
CR
+A
+A
若要执行bash中的CR
+A
回到命令开头,可以先按下组合键然后松手,然后再按A:
CR
+A
, A
切换到复制模式(滚动屏幕)
CR
+A
, [
再次按下[
或CR
+C
可以返回正常模式
暂挂会话
CR
+A
+Z
此时会话暂停到后台,可以通过fg
来恢复
关闭会话
CR
+A
+K
此时会话会被结束,不保留。
Comments NOTHING