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,先踢掉之前登录的用户,然后我们就可以正常登录了。