Questions tagged «terminal-emulator»


4
每个伪终端(PTY)组件(软件,主控端,从属端)的职责是什么?
我试图找出一个tty是如何工作的1(每个元素的工作流程和职责)。我读了一些有趣的文章,但是仍然有一些模糊的地方。 到目前为止,这是我的理解: 仿真终端会对/dev/ptmx伪终端的master部分进行不同的系统调用。 伪终端的主机部分在中分配一个文件/dev/pts/[0-N],该文件对应于已过时的串行端口,并将从属伪终端“附加”到该文件。 从属伪终端保留诸如会话ID,前台作业,屏幕大小之类的信息。 这是我的问题: ptmx除了分配从属部分还有其他用途吗?它提供某种“智能”,还是仿真的终端(例如xterm)具有像终端一样的所有智能? 为什么xterm只与从属部分的stdout和stdin转发,所以它必须与主控部分进行交互?为什么它不能 直接从pts文件写入和读取? 会话ID是否总是附在一个pts文件上,反之亦然?我可以输入ps命令并为相同的/ dev / pts / X找到2个sessionId吗? pts商店还提供哪些其他信息?Xterm会自己更新所有字段,还是在其上ptm添加一些“智能”? 1.我的理解基于Linus Akesson揭秘的TTY和Andries Brouwer的Linux Kernel帖子,以及这些站点上的其他几个问题




4
使用gnome-teminal时,是什么使我的光标“随机”消失了?
通常,我的光标gnome-terminal消失了,迫使我在新的标签/窗口上工作。似乎是随机发生的。还有其他人会遇到吗?其他X终端模拟器又如何呢?我该如何解决(或者可能只是一个错误)? 更新:一个简单的解决方法是从终端切换回去。 更新2:我不再遇到这种情况,可能是因为我使用的是GNOME 3版本的终端。

2
Linux终端如何工作?
如果启动一个终端并调用一个可执行文件(为简单起见,假设它是面向行的),您将从可执行文件中得到对该命令的答复。如何打印给您(用户)?终端会做类似的事情pexpect吗?(轮询等待输出)还是什么?如何通知要输出的输出?终端如何启动程序?(这类似于python的os.fork()吗?)我不知道终端的工作方式,我一直在使用一些终端仿真器,但我仍然不了解所有这些魔术如何工作。我正在查看konsole(kde)和yakuake(可能使用konsole)的来源,我无法了解发生所有魔术的地方。

2
如何避免终端中的转义序列攻击?
阅读CVE-2009-4487的详细信息(这与日志文件中转义序列的危险有关)令我有些惊讶。 引用CVE-2009-4487: nginx 0.7.64将数据写入日志文件,而无需清除不可打印的字符,这可能允许远程攻击者通过包含终端仿真器转义序列的HTTP请求来修改窗口的标题,或者可能执行任意命令或覆盖文件。 显然,这并不是nginx中的安全漏洞,而是终端仿真器中的安全漏洞。 当然,可能cat只是偶然地将日志文件发送到终端,但是grep很常见。less也许可以清理转义序列,但是谁知道什么shell命令不会更改转义序列... 我倾向于同意Varnish的回复: 通常会定期询问终端响应转义的智慧,但是仍然没有一个主要的终端仿真程序适合丢弃这些序列,这可能是在与不再使用的1970's技术兼容的错误尝试。[..]从安全性的角度来看,与其责怪编写日志文件的所有程序,不如让终端仿真程序停止做愚蠢的事情,从而一次解决此问题和其他安全性问题,将更有效率。并为所有人。 因此,我的问题是: 如何保护我的xterm,使其不再能够通过转义序列执行命令或覆盖文件? X的哪些终端仿真器可以抵抗这种攻击?

3
我们怎么知道谁在伪终端设备的另一端?
如果我这样做: echo foo > /dev/pts/12 某些进程foo\n将从其文件描述符读取该消息到主端。 有没有办法找出那个过程是什么? 换句话说,我如何找出哪个xterm / sshd / script / screen / tmux / expect / socat ...位于另一端/dev/pts/12? lsof /dev/ptmx会告诉我在任何pty的主端都有文件描述符的进程。进程本身可以使用ptsname()(TIOCGPTNioctl)根据自身对主端的fd查找从属设备,因此我可以使用: gdb --batch --pid "$the_pid" -ex "print ptsname($the_fd)" 对于lsof建立该映射所返回的每个pid / fd ,但是是否有更直接,可靠和较不麻烦的方式来获取该信息?


6
是否有一个终端应用程序允许单击文件名?
是否有终端模拟器(扩展程序或应用程序)为本地路径链接解析? 特别是当我看到类似这样的信息时: /home/sam/.gem/ruby/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in`perform_action_without_rescue' /home/sam/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:在“ ms”中 /home/sam/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:在“ ms”中 我希望能够点击: /home/sam/.gem/ruby/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb 打开文件。


2
是否有用于Linux系统的类似MobaXTerm的程序?(SFTP GUI浏览器和终端)
我来自Windows,运行程序MobaXTerm。 本质上,我将它用作SSH客户端(尽管它还有其他用途)。它具有在左侧显示文件和目录的功能,而在屏幕右侧显示终端的功能。这使我可以从终端执行Linux命令,以及轻松地拖放文件。 我的问题是: 是否有类似Linux的程序?一个在一半显示文件/目录,而另一半显示终端? Filezilla没有可以在其上执行命令的终端,但是我喜欢拖放文件的用法。 PuTTY具有出色的命令行执行终端,但不具有拖放功能,可让我轻松查看,创建,删除和访问文件/目录。 谢谢! 这是我正在寻找的MobaXTerm的SFTP图形/终端样式的视图: 注意:如果在错误的地方提问,或者我问的问题有误,请告诉我,我将转至正确的消息源或重新表达我的问题。


1
滚动到终端上的最后一个命令?(如OS X终端标记)
Mac OS X终端标记非常有用。 例如,当我键入一个回显大量输出的命令时,以开头很容易Cmd+Up。它会滚动到最后一个命令,并强调它,因为有选项自动标记提示线,并Cmd+Up会滚动到最后关口。 是否有任何具有此功能的终端模拟器?或一些插件,随便什么。您如何快速转到最后一个命令并突出显示它?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.