- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我希望在 golang 中实现远程客户端它通过 nc
连接到 Linux 并启动 bash
。所以我需要告诉 bash
我可以从它发送给我的 stdout
中解析哪些功能,以及我将如何将键码和其他内容发送到它的 stdin
,以便它也可以解析它们。
这是通过 TERM=something
环境变量完成的,我需要将其设置为某个值。如果我不设置它,各种程序就会开始报错:
$ mc
The TERM environment variable is unset!
我发现我可以将 TERM 设置为 dumb
来表示我的客户端真的很有限。而且我似乎仍然遗漏了一些东西。
$ export TERM=dumb
$ mc
Your terminal lacks the ability to clear the screen or position the cursor.
从这里看来,dumb
终端没有这两个能力,但它还有哪些能力值得期待呢?是否有关于它的规范或一些事实上的标准?
最佳答案
寻找源代码会有所帮助。终端数据库有评论。这是一个 slice from that :
#### Specials
#
# Special "terminals". These are used to label tty lines when you don't
# know what kind of terminal is on it. The characteristics of an unknown
# terminal are the lowest common denominator - they look about like a ti 700.
#
dumb|80-column dumb tty,
am,
cols#80,
bel=^G, cr=^M, cud1=^J, ind=^J,
unknown|unknown terminal type,
gn, use=dumb,
假定了“哑”和“未知”终端类型,但很少使用:
“dumb”有自动边距(文本在右边距“换行”),假定有 80 列,以及一个 ASCII BEL 和回车符。由于缺少更好的东西,cud1
(向下光标)是一个 ASCII 换行符。 ind
(索引)值相同,表示当您到达屏幕底部时文本会向上滚动。
没有游标寻址(cup
)也没有交替(例如沿行或列任意移动)。
“unknown”添加了“generic”标志,将其标记为不适合 curses 应用程序使用。把它想象成一台打印机。
至于最低要求,这实际上取决于个人应用。 ncurses 可以设法在屏幕上四处移动,而无需实际使用 cup
。它适用于六种策略。如果您阅读 mvcur
的源代码,您可以了解它需要什么。
但是,诸如 mc
之类的应用程序并不简单地依赖 ncurses 来决定它是否有效,因为(在这种情况下)它可能与俚语相关联(它不会仔细检查)。所以 mc
会进行自己的检查,这可能会增加限制。
在实践中,除非您选择有限的终端描述,例如“dumb”,否则您可能遇到的大多数终端都可以工作。
进一步阅读:
关于linux - TERM=dumb 终端必须具备的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001517/
使用 Guake 终端这个可自定义且强大的适合各种用户的工具快速访问你的终端。 Guake 终端:GNOME 桌面中自上而下终端 Guake 是一款为 GNOME
我是 python 的新手,正在尝试运行 python 2.7 script .获得了 python 2.7 的 pip 并从 mac 终端 shell 安装了 pyCrypto 的依赖项。 我想尝试
我正在寻找一种在 Swift (macOS) 中运行终端命令的方法。我遇到了this发布,但我似乎无法获得任何解决方案。我正在尝试从我的应用程序关闭我的 mac,就像您可以从终端执行的那样(osasc
我在 macOS 上使用 bash 终端。 用户名、计算机名和文件路径占据了大部分行,所以如果我写一个长命令,我会从一行开始,然后在下一行继续。 相反,我希望行光标从用户名和计算机名下方的下一行开始。
是否有一个变量或函数可以告诉我光标的实际位置? #!/usr/bin/env perl use warnings; use 5.012; use Term::ReadKey; use Term::Ca
如何在 Mac Os X(10.6.8) 上的 gnuplot 中启用 tikz 终端? 我有工作 tikz 的 latex 。现在我从 http://www.lua.org/ 安装了 lua并下载g
我正在学习一个名为 Starting a Django 1.4 Project the Right Way 的教程,其中提供了有关如何使用 virtualenv 和 virtualenvwrapper
我正在尝试用java编写一个unix终端模拟器。我有很多麻烦。我似乎无法更改程序的工作目录,因此“cd”等命令无法正常工作。我的问题是,如果我运行一个需要用户输入的命令,有什么方法可以将该输入发送到正
我在这方面完全是个新手(Mac leopard 中的终端),我希望能从网络上获得生命线,因为我确实碰壁了。 我想在终端中以 root 身份运行脚本。该脚本保存为扩展名为 .rtf 的文本文件。我已经插
尝试在我的 osascript 命令中包含引号 ' ' 时遇到了一个奇怪的问题。 如果我尝试转义一个正常的可转义字符,它就可以正常工作。示例: osascript -e 'tell app "Find
我正在制作一个控制台 Java 应用程序,您可以在其中输入控制台命令,例如 Macintosh/Ubuntu/Windows 命令提示符上的终端,然后将其输出到日志。 我想知道,在执行系统/控制台命令
在终端中输入 mysql 命令并按回车键会换行。 但有时当我犯错时,即使用分号结束语句也无法退出此模式。 Ctrl + c 退出mysql。我怎样才能退出插入模式? 最佳答案 你必须用 ';' 结束
我正在尝试编写一个 C 代码来打开 xeyes 应用程序,然后那些眼睛在特定的时间段内不断改变其颜色.. 我尝试通过执行具有一种中心颜色的 xeyes、添加 3 秒的延迟、终止进程并在循环内打开具有另
是否有一种语法允许我在 System.out.println() 行 的同一行中读取用户的输入? 例子: What is your name?:(<-- Output) Jack (<-- In
我有一个 Wordpress 上传文件夹,该文件夹使用子文件夹构建了几个月。 wolfr2:uploads wolfr$ tree . . |-- 2007 | |-- 08 | | |-
如何从 mac 终端使用 sqlite3 找出表的列名?我忘记了我给这些列起的名字,我也不知道这些名字是怎么来的。谢谢! 最佳答案 来自 http://www.sqlite.org/sqlite.ht
我需要我的终端发送一个未使用的控制字符或转义序列,它在所有层都没有效果:被shell(bash,…)忽略,被行编辑器(readline,…)忽略,被所有应用程序(vim,less,mutt,…)忽略。
我做了一个文本编辑器,我想把它移植到 Linux 上,这样我就可以通过 SSH 远程使用它。我不太了解 Linux 终端,所以也许我遗漏了一些明显的东西,因为我简直不敢相信在 2013 年远程终端仍然
我最近想放一个 java 类文件供下载,人们可以在终端中运行它。这是一个 Minecraft 命令生成器,因此下载它的人不一定具有最大的心智能力(当然,我指的是 8 岁的 child ,他们不知道自己
我有一个文件“test.txt”,里面有一个数字列表,就像这样 1 3 4 2 3 40 312 53 243 321 423 ...etc 我还有一个可执行文件,它是一种排序算法,例如 hea
我是一名优秀的程序员,十分优秀!