如题,一分钟Mark文。
byobu 是很方便的 Unix 窗口管理器 和 Terminal Multiplexer,它是一套 profiles 或者说 wrapper ,降低使用 tmux 或 screen 的 配置 和 操作 成本。(如果不知道我说什么,看这里《小工具专题》 ,还有 byobu主页)
不过我只能算轻度用户,多数时间只使用两个功能:
- 通过 detach 让我下线之后 Session 还能继续干活,以及下次上线不用重新找目录
- 方便的多窗口管理(F2,F3,F4 完事)
从没关心过后面是 tmux 还是 screen。直到公司服务器的 byobu 由我一个人用,到大家都用。大家直接敲 byobu
完事,于是都挤在一个 Session 里,互相干扰。
用 byobu 之前我是一个 screen 用户,自然想到大家各自连自己的 Session 。试着给 byobu 加 screen 的参数,发现不行。这时才想到去确认,发现当前版本(5.74)byobu 默认 backend 是 tmux。(印象中是不是早期 byobu 试过以 screen 为默认?忘了)
|
|
我知道 tmux 也很强大,加上一些指令和参数,也可以分别创建和管理 Session。可是,我已经习惯 screen ,所以决定把后端换掉。(各位看到这里不必跟我争论哪个好用)
|
|
这时候开始,执行 byobu
背后已经是 screen 在干活。最初目的是为了方便分别创建 Session,对应 screen -S SessionName
,相应的 byobu 指令是否可行呢?
|
|
注意最后的那个 Attached,表明现在就在这个 Session 里。
如果按 F6
或者 Ctrl-A,Ctrl-D
detach ,之后再看:(注意,如果第一次在 screen 按 Ctrl-A
,它会询问 Escape Sequence,建议选 1 screen mode
就好)
|
|
基本能用了,只是还有一个小问题:如果不记得/不确定之前的 Session 还在不在,那么操作流程是
|
|
比较麻烦。screen 自带 -R SessionName
参数实现『有则重连,无则新建』 的动作。可尝试把 -R
加载 byobu 后面,不支持。byobu 是怎样接受参数并传递给 screen 的呢?试一下在没有 Session 的情况下,执行没有参数的 byobu:
|
|
byobu
背后执行的是 screen -S byobu
,也就是说,如果不指定任何参数,byobu 默认会创建一个名字叫 『byobu』 的 Session。而如果指定了(某些)参数,默认名字就不会起效。但 -R
不算在某些参数里。
|
|
看完上面的内容,应该就知道了『某些参数』是哪些。当指定这几个参数时,默认 Session 名就会被清空。
那容易,把『某些参数』改成下面的样子:
|
|
保存。好了,-R
可以用了。
就酱。
本文为本人原创,采用知识共享 “署名-非商业性使用-相同方式共享” 4.0 (CC BY-NC-SA 4.0)”许可协议进行许可。
本作品可自由复制、传播及基于本作品进行演绎创作。如有以上需要,请留言告知,在文章开头明显位置加上署名(Jayce Chant)、原链接及许可协议信息,并明确指出修改(如有),不得用于商业用途。谢谢合作。
详情请点击查看协议具体内容。