对于CentOS系统,使用yum install screen命令安装。
对于Debian/Ubuntu系统,使用apt-get install screen命令安装。
快捷使用
新建screen
screen -S your_screen_name进入screen
screen -r your_screen_nameCtrl+D # 在当前screen下,输入Ctrl+D,删除该screenCtrl+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 //开启一个虚拟终端
topctrl+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
Ctrl-a S 新建水平分割窗口
Ctrl-a Tab 切换窗口
Ctrl-a X 关闭当前窗口
Ctrl-a + 扩大当前窗口,默认增加3行
Ctrl-a - 缩小当前窗口,默认减小3行
Ctrl-a :screen
Ctrl-a :resize
Ctrl-a :quit 退出 screen,将关闭所有 screen 终端,结束其中所有任务
Ctrl-a
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
评论