Tag: tty

在启动时启动tty.js

我试图在启动时启动一个tty.js shell,在启动时使用cron作业非常简单,但是它不能正确启动环境。 它没有正确的$ PATH等。 它不执行正确的脚本,如/ etc / environment,〜/ .bashrc等。有没有办法启动tty.js启动时使用相同的环境,当你login。

Node.js:带控制序列的远程shell

我正在尝试使用Node.js编写远程shell。 这是我现在所得到的: 客户 var net = require('net'); var client = net.connect({port: 1234}, function(){ process.stdin.pipe(client); client.pipe(process.stdout); }); 服务器 var net = require('net'), spawn = require('child_process').spawn; var server = net.createServer(function(socket){ var sh = spawn('/bin/sh'); sh.stdout.pipe(socket); sh.stderr.pipe(socket); socket.pipe(sh.stdin); }); server.listen(1234); 它用简单的命令工作得很好,但是当我启动emacs或nano时,并不是因为控制序列没有被发送。 我想让它performance得像ssh一样。 这样的事情可能吗? 也许使用process.stdin.setRawMode(true)? 谢谢

节点process.stdin采取多个关键笔划以原始模式发出数据

我试图用6.7.0节点来捕捉标准中的每一个击键。 这是我在做什么: process.stdin.setEncoding('utf8'); process.stdin.setRawMode(true); process.stdin.resume(); process.stdin.on('data', function(data) { console.log('data', data); }.bind(this)); 当我运行我的程序时,我可以按一个键,它将注销data d但如果我按下多个键,它只有三次总按键后退出一个键。 这是超级怪异的。 任何人都知道可能会发生什么? 我正在使用macOS Sierraterminal。

像nodejs的伪terminal开始bash

我正在开发一个节点cli的应用程序,像伪terminal启动一个bash。 用户应该能够在该terminal执行正常的bash命令,如cp , cd , mkdir等。例如, dummy-linux-user:~$ my-node-cli-cmd Bingo! node-based-bash:~$ 尝试使用这个包https://github.com/substack/bashful,但它不会像正常的bashterminal一样给自动完成,它会退出节点进程的command not found错误。 我想向用户展示一个类似ttyterminal。

tty.js不起作用

我安装了tty.js: $ npm install -g tty.js然后我启动它: $ tty.js 当我打电话http://example.com:8080/我无法打开一个terminal和http://example.com:8080/socket.io/socket.io.js返回一个HTTP错误404。 我试过节点0.6.19。 我发布在github但也许有人从stackoverflow可以帮助:)

我应该使用哪些Linux系统调用来读取stdin中的原始字符?

我试图将我的stdrepl库stdrepl到FASM的学习目的。 我知道GNU readline库已经做了我想做的事情,但是我想学习如何在汇编中编写非平凡的程序。 在node.js中,我可以通过编写来轻松创build一个tty: var stdin = process.stdin; stdin.setEncoding("utf8"); stdin.setRawMode(true); stdin.resume(); 我如何在纯assembly中达到相同的结果。 我尝试从一个循环中读取stdin中的一个字节,如下所示,但是在按下某个键之后,它不会立即返回字节: oct db ? mov eax, 3 xor ebx, ebx mov ecx, oct mov edx, 1 请注意, oct的数据定义不是循环的一部分,所以请不要为此而伤害我。 我知道如何构build一个汇编程序。

如何在WebStorm中使用readline-sync npm存储库?

我使用'readline-sync'依赖关系编写了下面的代码。 var readlineSync = require('readline-sync'); function main() { printMenu(); var userName = readlineSync.question('Please enter your choice:'); console.log(userName); } main(); 我从WebStorm运行这个代码,尝试使用WebStorm控制台窗口。 我得到了错误: 错误:当前环境不支持来自TTY的交互式阅读。 stty:指定输出样式时,可能不会设置模式 当我从linuxterminal运行它的代码工作没有错误。 我从错误信息中了解到'readline-sync'无法从WebStorm控制台运行。 你有什么想法如何解决它?

如何从Node.js连接到nethack?

我刚刚开始了一个游戏nethack的AI机器人,我不能绕过源代码中的“人工检查”。 我正在谈论的代码段是nethack/sys/unix/unixunix.c : #ifdef TTY_GRAPHICS /* idea from rpick%ucqais@uccba.uc.edu * prevent automated rerolling of characters * test input (fd0) so that tee'ing output to get a screen dump still * works * also incidentally prevents development of any hack-o-matic programs */ /* added check for window-system type -dlc */ if (!strcmp(windowprocs.name, "tty")) if (!isatty(0)) error("You […]

听听terminal会话“closures”事件

在terminal中,我启动后台进程A,进而启动进程B.进程B写入terminal(进程A已经传递了B正确的TTY文件描述符)。 我害怕的是,如果用户(在某些情况下,我)closuresterminal窗口,而不发送进程A或B SIGINT。 可能发生的是,即使用户closures了进程B仍然会尝试写入terminal。 更糟糕的是,用户可能会打开一个新的terminal窗口,它可能会假定与另一个terminal具有相同的身份/文件描述符,然后通过进程B写入。 基本上,我正在寻找一种方法来“terminal会话”的事件,如terminal会话被closures。 是否有可能在Node.js过程中监听这样的事件? 也许有一个相应的处理程序类似于process.on('SIGINT') ? 我猜测SIGTERM事件可能是听到的事件,但现在在试验代码之后,不要以为是事实。

如何检测Node的process.stdout是否被pipe道?

有没有什么办法可以检测到我的Node.js脚本的输出是否被传送到terminal以外的东西? 我想要一些检测这种情况的方法: node myscript.js | less 或者如果发生这种情况: node myscript.js