标签搜索

SCREEN使用

Thomas
2024-03-16 / 0 评论 / 2 阅读 / 正在检测是否收录...

对于CentOS系统,使用yum install screen命令安装。
对于Debian/Ubuntu系统,使用apt-get install screen命令安装。

快捷使用

新建screen
screen -S your_screen_name
进入screen
screen -r your_screen_name

Ctrl+D # 在当前screen下,输入Ctrl+D,删除该screen
Ctrl+A,Ctrl+D # 在当前screen下,输入先后Ctrl+A,Ctrl+D,退出该screen

显示screen list
​​​​​​​screen -ls
连接状态为【Attached】的screen
screen -D  -r your_screen_name  # 解释:-D -r 先踢掉前一用户,再登陆
判断当前是否在screen中断下,Ubuntu系统,可以这样:
sudo vim /etc/screenrc
文件末尾追加一行即可允许设置screen标题
caption always "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%H %Y/%m/%d "
删除指定screen, your_screen_name为待删除的screen name
screen -S your_screen_name -X quit

详细用法

创建和退出终端会话

要创建一个新的终端会话,你可以使用以下命令:

screen -S <名字>

其中,<名字>是你给这个会话起的一个标识符,方便你以后找到它。如果不指定名字,screen命令会自动给这个会话分配一个数字编号。

创建终端会话后,你就可以在这个会话中运行你想要的程序或命令了。如果你想要退出当前的终端会话,但是保持它在后台运行,你可以使用以下快捷键:
Ctrl + A + D

这样,你就可以返回到原来的终端了。如果你想要完全关闭当前的终端会话,你可以使用以下命令:

exit

这样,你就可以结束当前的终端会话,并返回到原来的终端了。

查看和恢复终端会话

如果你想要查看当前存在的所有终端会话,你可以使用以下命令:

screen -ls

这样,你就可以看到每个终端会话的编号、名字和状态(Attached或Detached)。

如果你想要恢复一个已经存在的终端会话,你可以使用以下命令:

screen -r <编号/名字>

其中,<编号/名字>是你想要恢复的终端会话的标识符。如果不指定编号或名字,screen命令会默认恢复最近创建或使用的那个终端会话。

创建和切换子窗口

在一个终端会话中,你可以创建多个子窗口,并在它们之间切换。要创建一个新的子窗口,你可以使用以下快捷键:
Ctrl + A + C

这样,你就可以在新的子窗口中运行你想要的程序或命令了。要切换到下一个子窗口,你可以使用以下快捷键:
Ctrl + A + N

要切换到上一个子窗口,你可以使用以下快捷键:
Ctrl + A + P

要查看当前所有的子窗口,你可以使用以下快捷键:
Ctrl + A + "

这样,你就可以看到每个子窗口的编号、名字和状态(Current或Blank)。你可以使用方向键或数字键来选择你想要切换的子窗口,然后按回车键确认。

要给当前的子窗口起一个名字,你可以使用以下快捷键:

Ctrl + A + A
然后输入你想要的名字,按回车键确认。

要关闭当前的子窗口,你可以使用以下命令:
exit

这样,你就可以结束当前的子窗口,并返回到上一个子窗口了。

共享和控制终端会话

screen命令可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性。要实现这个功能,你需要设置一些参数。

首先,你需要给你想要共享的终端会话设置一个密码。你可以使用以下命令:
screen -S <名字> -X password <密码>
其中,<名字>是你想要共享的终端会话的标识符,<密码>是你想要设置的密码。

然后,你需要给你想要共享的终端会话设置一个访问权限。你可以使用以下命令:
screen -S <名字> -X acladd <用户>

其中,<名字>是你想要共享的终端会话的标识符,<用户>是你想要允许访问的用户的用户名。

最后,你需要让其他用户登录到你想要共享的终端会话。他们可以使用以下命令:
screen -x <用户名>/<编号/名字>

其中,<用户名>是创建终端会话的用户的用户名,<编号/名字>是想要共享的终端会话的标识符。登录后,他们需要输入之前设置的密码才能进入终端会话。

这样,多个用户就可以同时访问同一个终端会话,并看到相同的输入和输出了。如果想要控制其他用户对终端会话的操作权限,可以使用以下命令:
screen -S <名字> -X aclchg <用户> +|- <权限>

其中,<名字>是想要共享的终端会话的标识符,<用户>是想要控制权限的用户的用户名,+|-是增加或减少权限的符号,<权限>是具体的权限标识符。权限标识符有以下几种:
r:读取
w:写入
x:执行
a:更改访问列表
c:创建新窗口
f:强制分离
s:切换安全模式
例如,如果想要让用户tom只能读取终端会话,不能写入或执行任何命令,可以使用以下命令:

screen -S test -X aclchg tom -wrx

nohup sleep 100 & //后台执行 并产生一个文件在当前目录下
screen //开启一个虚拟终端
top

ctrl+A+D 切换回之前的终端 但是这个虚拟终端还是会保存

[root@tieba ~]# screen

[root@tieba ~]# vmstat

[root@tieba ~]# ps aux |grep -E 'top|vmst' 查看top和vmst进程 -E就是支持更多的正则 |就是或的意思

[root@tieba ~]# screen -ls //查看当前运行的进程号

[root@tieba ~]# screen -r 23318 //指定进入一个pid

crtl+d 退出当前终端 或exit

[root@tieba ~]# screen -S 哈哈 //指定一个名字

[root@tieba ~]# screen -r 哈哈 //可以进入这个虚拟终端下

总结:当一个命令执行时间长,可以放在虚拟终端下执行,下次可以查看到这个进程并进去看下。

nohup不会中断的文件

ps aux |grep -E 'top|vmst' 查看top和vmst进程 -E就是支持更多的正则 |就是或

screen -r 2366 进入这个ID终端

screen -S(自定义名字) text1 自定义名字

screen其实就是linux虚拟终端,你可以用它创建很多虚拟终端,每个终端可以创建1~10个窗口,每个窗口相当于一个linux shell窗口,可以执行的操作和正常shell完全一样。

CentSO安装命令:yum install -y screen

Debian/Ubuntu安装命令:apt-get install -y screen

【终端操作】 (需要在物理shell中操作)

screen:创建一个虚拟终端并且登录之

screen -ls:列出当前所有虚拟终端

screen [-d] -r sessionid:进入指定的虚拟终端

【终端中的窗口操作】(挂载某个终端)

Ctrl-a c 新建 bash screen 终端

Ctrl-a d 退出窗口

Ctrl-a " 列出

Ctrl-a A 重命名

Ctrl-a n 在当前窗口中切换到下一个 screen 终端

Ctrl-a p 在当前窗口中切换到上一个 screen 终端

Ctrl-a 空格 窗口切换

Ctrl+a w :窗口列表

Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)

exit :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)

Ctrl-a d 断开所有 screen 终端,返回 screen 执行前状态,但 screen 内所有终端的任务都在执行

screen -ls 列出当前用户的所有 screen 实例,包括联接和断开的

screen -R 重新联接到已断开的 screen 实例,如果有多个已断开的 screen 实例,则用 区分

Ctrl-a S 新建水平分割窗口

Ctrl-a Tab 切换窗口

Ctrl-a X 关闭当前窗口

Ctrl-a + 扩大当前窗口,默认增加3行

Ctrl-a - 缩小当前窗口,默认减小3行

Ctrl-a :screen 新建 screen 终端,并运行命令

Ctrl-a :resize 改变当前窗口高度为

Ctrl-a :quit 退出 screen,将关闭所有 screen 终端,结束其中所有任务

Ctrl-a 进入选择模式

或 Ctrl-u 光标上移一页

或 Ctrl-d 光标下移一页

或 h 光标左移一格

或 j 光标下移一行

或 k 光标上移一行

或 l 光标右移一格

选择开始,选择结束

退出选择模式

Ctrl-a ] 粘贴选择的内容

【友情提醒】

.screenrc,仅供参考。

~/.screenrc

启动时不显示欢迎屏幕

startup_message off

定义screen的功能键为Ctrl-Z。向终端输入Ctrl-Z时应按 Ctrl-Z z。

escape ^Zz

屏幕缓冲区 1024 行。

defscrollback 1024

在最下一行显示窗口列表和时钟

hardstatus on

hardstatus alwayslastline

hardstatus string "%{.bW}%-w%{.rY}%n %t%{-}%+w %=%{..G} %H(%l) %{..Y} %Y/%m/%d %c:%s "

关闭错误提示

vbell off

按 Ctrl-Z w 或 Ctrl-Z Ctrl-W 显示窗口列表

bind w windowlist -b

0

评论

博主关闭了所有页面的评论