回去在Linux控制台中的一条线?

回去在Linux控制台中的一条线?,第1张

概述回去在Linux控制台中的一条线?

我知道我可以回去,并用r覆盖它的内容。


现在我怎么能进入前一行来改变呢?


还是有甚至有一种方法来打印到控制台窗口中的特定光标位置?

我的目标是用PHP创build一些自我刷新的多线控制台应用程序。

Go编译器有一个窗口设置选项吗?

控制台中的铃声挂起windows 7

windowsbatch file将文本块打印到控制台

自定义控制台使用git bash

Python – 在windows上运行一个提示I / O的简单命令行程序,并“代理”它

使用ANSI转义码移动光标。 例如: Esc [ 1 F 要将Escape字符放在字符串中,您需要用数字方式指定其值,例如“ x1B [1F”

正如sujoy所建议的那样 ,您可以使用PHP ncurses以更抽象的方式移动光标。

虽然大多数“控制台”允许ANSI转义码,但其他类型的终端使用不同的字符序列, ncurses提供了一个独立于终端的标准化API。 如果您有兴趣,请快速浏览/etc/termcap (然后查看man terminfo )。

更新: lars WirZenius的答案有一个有用的背景总结。 几年前我也写了一篇关于终端的短文。

linux虚拟控制台模拟旧式的显示终端,虽然不完美。 有关硬件的示例,请参阅VT-100上的维基百科 。

这些终端从串口读取数据,并将其显示在屏幕上。 他们还从串口查找输入流中的特殊字节,并以其他方式对其进行 *** 作。 例如,换行符(' n',字节值10)将到达下一行的开始处,并且回车符(' r',字节值13)将走到当前行的开始处。

更有趣的是,一个ASCII ESC字节(27)将启动一个命令序列,几乎所有的事情都可以在光标或显示器上进行。 一个这样的序列可能会将光标移动到屏幕的左上角,而另一个则会移动到给定的行和列。 第三个可能会清除屏幕,第四个可能会使文本以相反的颜色显示。

每个终端制造商都会发明自己的命令序列(而且他们并不总是以ESC开头),然后根据他们的硬件新版本做些什么来改变它们。 如果制造商添加了颜色或简单的图形,则会产生新的序列。

将每个应用程序调整到每个终端,每个命令序列的更改都将是一项艰巨的任务。 将它与适应每个Web应用程序到一个新的浏览器版本进行比较。

像往常一样,解决方案是添加一个抽象层。 在Unix中,最初的抽象称为termcap ,由文件/etc/termcap和一个用于读取文件的库组成。 该文件将指定为每个终端型号的每个逻辑 *** 作发送的实际命令序列。 所以一个vt102终端机型会将 *** 作“清屏”映射到33[2J 。 这使应用程序员能够根据逻辑运算来思考,这更简单得多。

当然,还不够简单… termcap库并不如其它的,所以另外两个库被开发出来了: curses提供了一个更高的抽象层次,包括用户输入,terminfo使得终端定义和它们的使用程序员更容易。

在现代, ncurses是一个免费的curses重新实现,而terminfo几乎完全取代了termcap 。 此外,ANSI已经定义了一些基于数字终端的“标准”序列,几乎每个终端仿真器都使用这些序列,至少大部分都是这样,而linux虚拟控制台就是其中之一。 很少有人有实际的物理终端了。

对于你想要做的, ncurses或者tput命令可能是最有用的。 或者你也可以决定只清除整个屏幕(见clear (1)),然后写输出是最简单的。

我的目标是用PHP创建一些自我刷新的多线控制台应用程序

对于你正在努力实现ncurses是要走的路。

你应该阅读关于ncurses。 在shell中,你可以通过以下方式排队:

tput cuu1

查看man terminfo获取更多选项。 但执行shell命令来移动光标是相当绝望的。

你只要你键盘上的上下箭头滚动浏览控制台的历史记录,但也有历史命令。 了解更多使用男人的历史

总结

以上是内存溢出为你收集整理的回去在Linux控制台中的一条线?全部内容,希望文章能够帮你解决回去在Linux控制台中的一条线?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1269090.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存