xterm终端写入欢迎信息
登录终端总是会提示一段欢迎语,那么想改变这段欢迎语该如何做呢。最近在做WebShell时考虑如何解决该需求
服务器设置
最直接的方式即服务器配置,比如bashrc中增加echo 'hello world'
。那么在登录WebShell后则会有该信息的打印。
但服务器端设置缺陷是
- 简单的增加欢迎语言,会使得任何终端登录都有该信息,影响面广。
- 需要修改服务器配置,成本高一些,比如WebShell想实现该设置,则需要执行指定命令修改bashrc等文件。
xterm.js-终端客户端设置
除了服务端设置,通过直接客户端修改也是可行的。WebShell的话即通过xterm.js实现。比如在终端连接成功后执行如下命令
1 | term.write("\x1B[34;43mmy github is https://github.com/alanhg my github is https://github.com/alanhg my github is https://github.com/alanhg my github is https://github.com/alanhg\x1B[0m" |
这里解释下代码
- term.write后信息是直接写入终端模拟器,并非发送到服务端终端后进行的回显。
- 因为非服务器发送回来的信息,因此终端的尺寸服务器端并不知道,因此需要发送下rows/cols信息,避免在之后的终端操作中,服务端的回显出现错位情况。