有什么方法可以阻止基于 ncurses 的程序运行吗?

发布于 2024-11-10 16:07:58 字数 212 浏览 3 评论 0原文

嘿,我正在构建一个远程 shell 服务器,它在纯文本客户端和虚拟 shell 之间进行交互。

当使用常规 shell 命令时它工作得很好,但是人们之后尝试的第一件事就是 vim,它很快就会让我的服务器发疯,甚至无法远程关闭。

有什么方法可以检测基于 ncurses 的程序并阻止它们在我的特殊 shell 中运行?

(服务器是ruby,但任何系统命令都可以)

Hey there, I'm building a remote shell server that interfaces between a text-only client and a virtual shell.

It works perfectly when using regular shell commands, but the first thing that people try after that is vim, which promptly drives my server crazy and can't even be closed remotely.

Is there any way to detect ncurses based programs and prevent them from running in my special shell?

(the server is ruby, but any system command will do)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晚雾 2024-11-17 16:07:58

您可以通过将 TERM 环境变量设置为正确的值来声明您的 shell 具有的功能。例如,如果您的 shell 具有与 vt100 终端相同的功能,请将 TERM 导出为正确的值,vim 等程序将遵循该值。

要在 vt100 模式下运行 vim,请尝试:

TERM=vt100 vim

您也可以尝试:

export TERM=dumb

技巧是找到与您正在创建的功能相对应的终端。有很多可供选择。在我的系统(Arch Linux)上,这给了我一长串选择:

find /usr/share/terminfo

您也许能够找到与您的程序可以处理的内容相对应的终端规范。

或者,您可能需要考虑为 ansi 或 vt100 实现终端仿真:

http://en.wikipedia.org/ wiki/ANSI_escape_code

http://www.termsys.demon.co.uk/ vtansi.htm

祝你好运!

You can declare the capabilities your shell has, by setting the TERM environment variable to the correct value. For instance, if your shell has the same capabilities as the vt100 terminal, export TERM to the correct value, and programs like vim will respect that.

To run vim in vt100-mode, try:

TERM=vt100 vim

You could also try:

export TERM=dumb

The trick is to find a terminal that corresponds to the capabilities of what you are creating. There is a lot to choose from. On my system (Arch Linux) this gives me a long list of choices:

find /usr/share/terminfo

You might be able to find a terminal specification that corresponds to what your program can handle.

Alternatively, you may want to consider implementing terminal emulation for ansi or vt100:

http://en.wikipedia.org/wiki/ANSI_escape_code

http://www.termsys.demon.co.uk/vtansi.htm

Best of luck!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文