具有持久接口的Linux命令行应用程序

时间:2014-08-05 13:14:19

标签: linux shell user-interface command-line

程序(特别是Linux)如top如何在不滚动的情况下将界面保留在屏幕上?他们是创建一个新的screen会话,还是有一个标准库来创建这样的GUI?如果他们确实使用了屏幕,那么为什么当我退出顶部时输出仍然写入stdout?

1 个答案:

答案 0 :(得分:1)

有一个标准库,名为ncurses。但是没有必要使用它 - console_codes(4)手册页描述了如何通过向终端(模拟器)编写特殊字符序列来完成这些操作,而curses只不过是一个包装器。

要像顶部一样清除屏幕,您需要向终端回显ESC [ 2 J以清除它,然后ESC [ H将光标重置为原点,即

echo -ne "\033[2J\033[H"

请注意,top可能实际上更智能,不会重绘整个屏幕,只会重绘部分。有关详细信息,请参见手册页。 (您可以使用控制台代码执行更多花哨的操作,例如更改颜色,下划线,粗体,甚至在x终端中使用鼠标。)