首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

linux多屏管理工具(一)screen

2024-12-20 来源:化拓教育网

screen 算是比较早的多屏管理工具。后来有了byobu(ubuntu专用),对screen做了封装;再后来版本升级,byobu以及screen都不好用。再后来有了tmux,byobu 底层都改用tmux。
也用过tmux, tmux 的快捷键和screen不一样,最明显的是screen中的命令提示符ctrl+a在tmux中改成了ctrl+b;
linux command 中的回到行首(ctrl+a)和行尾(ctrl+e)的命令,在screen和tmux中都做了变动,回到行首要使用 ctrl+a+a, 回到行尾现在还没找到;
screen中非常好用的屏幕上翻(ctrl+a+[), 在tmux中也不好用。
最近因为工作的原因,团队中使用screen。顺便把screen的东西整理一下。
对于那些没有接触过scren的人来说,直接用tmux就可以了。因为tmux是未来的趋势。

  • 安装screen
$ yum install screen -y

配置

  • 配置方案1:
$ vim /etc/screenrc

# 下标签设置
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %{..Y} %m/%d %C%a"
termcapinfo rxvt 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
termcapinfo xterm ti@:te@
termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
  • 配置方案2:(最喜欢的一种)
$ vim /etc/screenrc
altscreen on
caption always "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%H %Y-%m-%d %c %p"

配置完screenrc 之后。 通过screen -S session_name, 在新建立的session 中就可以看到小便签。

唯一的问题是:
修改window名字(ctrl+a,shit+a set windows's title )之后,不能永久保存。

image.png
  • 配置方案3:
$ vim .screenrc

hardstatus on
hardstatus alwayslastline
hardstatus string “%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a

标签页没有颜色高亮,并且只显示当前window.

image.png

我自己的配置:

altscreen on
hardstatus on
hardstatus alwayslastline
caption always "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%H %Y-%m-%d %c %p"

可以满足我的需求...

altscreen on
hardstatus on
hardstatus alwayslastline
caption always "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%H %Y-%m-%d %c %p"

image.png

缺点是只有 编号:

image.png

screen 的使用:

$ man screen

screen:第一次使用的时候,输入screen,即新建了一个session,然后默认有一个shell窗口,下面会有状态栏显示窗口的名称,通常是“0 bash”。
ctra a + A:假如你想重命名这个窗口,按ctra a,然后A,就可以重命名
ctrl a + c:新建窗口

ctrl a + n or p:切换窗口,n next,p previous

ctrl a+ <数字>: 切换到指定下标号的window.

ctrl a + ':  单引号。 出现 "Switch to window:" 的提示,可以通过window编号或window name 进行切换;

ctrl a + “:双引号。列出所有的窗口,也可以在状态栏观察到。




screen -S name:新建一个session 名字为name
ctra a + d:使得当前的session detached,这个是很重要的一个命令,这个命令使得你临时退出了该session,而下次可以进行重新连接
screen -ls:想进行重新连接的时候,你需要知道你的screen session是哪一个,然后使用screen -r id命令,ls列出了所有的screen session的id,当然假如你使用screen -S name创建的session的话,会有一个名字,更便于记忆
举例:

$ screen -ls
There are screens on:
        26080.cmdb      (Attached)
        7309.mpc        (Detached)
        21657.uop       (Detached)
        13808.cmdb-mpc  (Detached)
4 Sockets in /var/run/screen/S-root.

screen -r id/name:重新连接screen session id/name,即恢复访问你之前打开的诸多窗口
screen -x id/name:重新连接screen session id/name,即恢复访问你之前打开的诸多窗口。并且可以多人共享屏幕。
举例:

$ screen -x 21657.uop

screen -t <window_name>: 新建名字为name的窗口。在当前的session 中新建一个window。不同于 `ctrl+a+c`建立的带有缺省值的window.
exit:退出当前的窗口
ctrl a + K:kill当前窗口

扩展阅读:

显示全文