使用screen控制linux终端

在前辈指导下,发现一个贼好用的工具用于控制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

除了这里设置的还可以使用快捷键

ctrl+a k 关闭当前窗口 (如果当前窗口卡了的话可以关掉,exit不管用的情况)

当然这里的快捷键都是可以改的

2、简单使用

首先登录一个服务器节点,然后使用screen进入到screen的界面。使用上面配置后的样式大概长这样


界面

下面这个就是不同tab显示样式。

2.1 screen简单使用

参数说明 screen + 参数

-A  将所有的视窗都调整为目前终端机的大小。
-d<作业名称>  将指定的screen作业离线。
-h<行数>  指定视窗的缓冲区行数。
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称>  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s  指定建立新视窗时,所要执行的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使用

  1. F9新增一个tab,会直接在tab后面加上一个
  2. 当前是第一个tab,命名为bash(默认命名),使用F5之后就会显示如下界面,删除原来的命名,使用自定义命名,输入完成后回车就命名好了


    F5重命名
  3. 切换使用F6或F7
  4. 还可以ssh 到其他节点使用,这样只用登录一次,下次直接接上就行
  5. 如果要关掉当前tab,输入exit,回车即可
  6. 关掉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

你可能感兴趣的:(使用screen控制linux终端)