正在阅读这篇精彩的文章tty 在 Linux 中如何工作现在想知道。
运行 bash 时,每一行都以提示符开头,并且用户无法删除提示符。这是由 tty 在行规则级别控制还是由 bash 控制?
答案1
通过 Bash 本身,通过阅读线图书馆。 (由 Bash 维护者维护。)它知道输入区域从哪里开始,并采取相应的行动。
您链接的文章甚至提到了 Readline 和 shell:
因此,为了方便起见,操作系统提供了一个编辑缓冲区和一些基本的编辑命令[...]
高级应用程序可以通过将行规则置于原始模式而不是默认的熟(或规范)模式来禁用这些功能。大多数交互式应用程序(编辑器、邮件用户代理、贝壳,所有依赖于curses或的程序阅读线)以原始模式运行,并自行处理所有行编辑命令。
(尽管我不会将curses 和readline 与编辑器、MUA 和shell 放在同一级别。相反,它们是这些程序用于处理输入的工具。)
另一方面,即使是内置的行编辑也不允许您覆盖屏幕上以前的内容。尝试例如echo -n 'prompt: '; cat
,您不应该能够编辑该prompt:
部分。