在前辈指导下,发现一个贼好用的工具用于控制linux终端,再也不用担心本地的任务因为断网就给断掉了。
使用screen就可以了
网上教程参考:https://www.runoob.com/linux/linux-comm-screen.html
screen为多重视窗管理程序
1、配置自定义环境,快捷键
vim ~/.screenrc
粘贴如下配置
setenv LC_CTYPE en_US.UTF-8
defutf8 on
termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
startup_message off
defscrollback 10240
hardstatus on
hardstatus alwayslastline
#caption always "%{= kw}%-w%{= kG}%{+b}[%n %t]%{-b}%{= kw}%+w %=%d %M %0c %{g}%H%{-}"
hardstatus string "%{.bW}%-w%{= kG}%n %t%{-}%+w %=%{..G} %H %{..Y} %Y/%m/%d %c:%s "
bindkey -k k9 screen
bindkey -k k5 title
bindkey -k k6 prev
bindkey -k k7 next
vbell off
这里是配置好中英文环境以及设置显示的终端样式还有快捷键。主要介绍一下快捷键
F9是新建一个tab(tab是登录一个服务器的终端,也不知道是不是叫tab,暂且这么叫着吧)
F5是修改当前tab标题
F6是向前切换tab
F7是向后切换tab
当然这里的快捷键都是可以改的
2、简单使用
首先登录一个服务器节点,然后使用screen进入到screen的界面。使用上面配置后的样式大概长这样界面,下面这个就是不同tab显示样式。
2.1 screen简单使用
参数说明 screen + 参数
-A 将所有的视窗都调整为目前终端机的大小。
-d<作业名称> 将指定的screen作业离线。
-h<行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s<shell> 指定建立新视窗时,所要执行的shell。
-S<作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
一般使用比较多的就是:
- 打开一个新窗口后使用
screen -x
恢复 - 查看当前的所有screen中的tab,使用
screen -list
- 检查目前所有的screen作业,并删除已经无法使用的screen作业,使用
screen -wipe
2.2 tab使用
- F9新增一个tab,会直接在tab后面加上一个
-
当前是第一个tab,命名为bash(默认命名),使用F5之后就会显示如下界面,删除原来的命名,使用自定义命名,输入完成后回车就命名好了
- 切换使用F6或F7
- 还可以ssh 到其他节点使用,这样只用登录一次,下次直接接上就行
- 如果要关掉当前tab,输入exit,回车即可
- 关掉xshell或其他终端编辑器当前页面后重新开启使用
screen -x
即可恢复
2.3 查看历史输出
原文链接:https://blog.csdn.net/qq_38081870/article/details/103486731
先利用ctrl + A + [
进入copy mode。在copy mode下可以回滚、搜索、复制就像用使用 vi 一样。在copy mode下有这些快捷键:
Ctrl + b :Backward、PageUp
Ctrl + f :Forward、PageDown
H: High,将光标移至左上角
L:Low,将光标移至左下角
0:移到行首
$:行末
w:forward one word,以字为单位往前移
b:backward one word,以字为单位往后移
Space: 第一次按为标记区起点,第二次按为终点
按esc
退出copy mode。
在copy mode下不会实时的同步输出信息。也就是说进入copy mode后,你所能看到的就是从开始到你进入时的所有输出,以后的输出并不会同步。所以需要esc退出再查看。
补充一些screen常用的命令:
不中断screen窗口中执行的程序而暂时断开(detach)screen会话:ctrl+a d
将当前在另一个终端attach的会话强制退出,在当前终端接管:screen -d name screen -r name
给窗口自定义命名:ctrl+a A