需求:
普遍开发都喜欢使用linux服务器作为运行环境,和linux打交道,一般使用基于SSH的模拟终端实现。
常见的windows下模拟仿真终端如putty,secure CRT,个人推荐secure CRT,用起来真是如丝顺滑。
好用,但是有局限性,你一定要安装这个软件才能实现与linux系统打交道。
所以像今天的tty.js 这样的浏览器linux终端诞生。当然还有其他的,以后慢慢积累。
部署:
环境:ubuntu 14.04 lts
基础软件环境: nodejs、npm
为什么:A terminal in your browser using node.js and socket.io. Based on Fabrice Bellard's vt100 for jslinux.(作者说的)
如果没有这两个环境的话,我们需要安装一下:
sudo apt-get install nodejs
sudo apt-get install npm
sudo npm install tty.js #安装tty,js
使用:
创建tty.js 文件并写入以下内容:
var tty = require('tty.js');
var app = tty.createServer({
shell: 'bash',
users: {
foo: 'bar',
[plain] view plain copy
hello:'world'
},
port: 8000
});
app.get('/foo', function(req, res, next) {
res.send('bar');
});
app.get('/hello', function(req, res, next) {
res.send('world');
});
app.listen();
可以看出用户名是foo,密码是bar,登陆端口8000
或者用户 hello 密码world
启动命令:
node tty.js
这样访问http://127.0.0.1:8000 然后登陆 就可以访问了。
高级设置:
创建配置文件.tty.js/config.json 或者.tty.js
以.tty.js 为例,写入:
{
"users": {
"hello": "world"
},
"https": {
"key": "./server.key",
"cert": "./server.crt"
},
"port": 8080,
"hostname": "127.0.0.1",
"shell": "sh",
"shellArgs": ["arg1", "arg2"],
"static": "./static",
"limitGlobal": 10000,
"limitPerUser": 1000,
"localOnly": false,
"cwd": ".",
"syncSession": false,
"sessionTimeout": 600000,
"log": true,
"io": { "log": false },
"debug": false,
"term": {
"termName": "xterm",
"geometry": [80, 24],
"scrollback": 1000,
"visualBell": false,
"popOnBell": false,
"cursorBlink": false,
"screenKeys": false,
"colors": [
"#2e3436",
"#cc0000",
"#4e9a06",
"#c4a000",
"#3465a4",
"#75507b",
"#06989a",
"#d3d7cf",
"#555753",
"#ef2929",
"#8ae234",
"#fce94f",
"#729fcf",
"#ad7fa8",
"#34e2e2",
"#eeeeec"
]
}
}
其他启动方式:
node tty.js --port 3000 #启动并监听3000端口
node tty.js --daemonize # 启动并放在后台运行
node tty.js --config ~/.tty.js #以配置文件设置启动
其他问题:
将tty.js中的端口去掉,
以配置文件启动 使用配置文件中的用户名密码,并使用8080访问 还是没有成功。
但是配置文件中的其他参数是可以生效的。
当使用8080访问的时候,这个地方使用的时basic Authorization 经过sha1加密的,但是我尝试了下替换配置文件中的user中的用户名和密码为sha1加密后的值还是不行。
待解决。