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 )之后,不能永久保存。
- 配置方案3:
$ vim .screenrc
hardstatus on
hardstatus alwayslastline
hardstatus string “%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a
image.png标签页没有颜色高亮,并且只显示当前window.
我自己的配置:
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.pngscreen 的使用:
$ 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当前窗口