Linux-screen管理多个终端


Linux-Shell 终端管理

我们在使用shell的使用,经常是一个不够用,然后我们会另外 打开一个,但是如果不是图形化呢?

比如在ssh中,多开一个必然会浪费资源,其实我们可以在一个shell中同时访问多个终端。

Ax 安装

这个工具就是GNU screen。

apt install screen

Bx 使用

a 创建一个新的screen窗口

screen -dmS session_name

会出现一个欢迎页

b 查看所有会话

screen -ls

c 进入会话

screen -r session_name

d 查看以打开的窗口列表

Ctrl + A + “

e 在窗口之间切换

Ctrl + A

Ctrl + N

f 关联与脱离

Detaching叫做脱离,Attaching叫做关联,关联已有的会话,可以使用

screen -r -d

如果脱离的会话不止一个,会 出现一个列表,我们就可以使用下面的命令关联到指定的PID号

screen -r -d PID

查看结果,全部关联。

g 状态

Screen 的状态有两种,Attached 和 Detached,分别表示前台运行和后台运行。

使用 screen -r 会话名(或者会话编号)可以将 Detached 状态的屏幕会话状态修改为 前台运行 ,并同时切换到这个会话中。如果会话状态已经是Attached状态,使用命令 screen -r name(或者会话编号)将会报错:There is no screen to be resumed matching 767(会话编号).如果需要切换到状态为Attached 的会话下,需要先执行 screen -d 会话名 将会话状态修改为 Detached。将当前会话转为后台运行可以使用快捷键ctrl + a,d。

解决方法如下:

$ screen -D  -r <session-id>

也就是在 -r 前面加个 -D,先踢掉之前登录的用户,然后我们就可以正常登录了。


文章作者: Enomothem
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Enomothem !
  目录