如何在 Linux 中创建一个很酷的终端仪表板
您是否正在寻找在 Linux 中显示信息的新方法? Conky 对你来说太主流了吗?您是否正在寻找比 screenFetch 更古怪、更灵活的东西?那么也许您应该考虑在终端中制作一个仪表板。为此,我喜欢使用 Hubble,一个基于 Node.js 平台的小型应用程序。
Hubble 的概念很简单:您在一个大终端窗口中启动该程序,它将显示通过您计算机上的自定义 HTTP 端口 9999
与之通信的任何信息。换句话说,任何能够通过 HTTP 推送数据的程序都能够与 Hubble 进行交换。这使得哈勃望远镜易于交互且高度灵活。但我认为一点练习和一些例子会比我更让你信服。
哈勃望远镜的安装
要安装 Hubble,您将需要节点包管理器 (npm
)。
对于 Debian 或 Ubuntu:
$ sudo apt-get install npm
$ sudo ln -s /usr/bin/nodejs /usr/bin/node
对于 Arch Linux:
$ sudo pacman -S npm
对于 Fedora 和带有 EPEL 的 CentOS/RHEL:
$ sudo yum install npm
设置好 npm
后,您可以使用以下命令安装 Hubble:
$ sudo npm install -g coffee-script
$ sudo npm install -g hubble
到那时你应该已经准备好了。
哈勃望远镜的使用
正如前面提到的,哈勃就像你最好的朋友,等待着热门八卦。它侦听本地主机上的 TCP 端口 9999
并显示信息。首先,只需通过以下方式在终端中启动它:
$ hubble
请注意,如果窗口不够大,您可能会收到错误消息。如果是这种情况,只需进入全屏模式即可。
从那里,按 Y
键创建一个新的配置文件。文件 config.coffee
应该位于您当前的目录中。这是哈勃的一个非常标准的配置方面。简而言之,您可以修改标题、删除横幅或修改正在侦听的端口号。最高级的功能将在稍后解释,届时它们在上下文中会更有意义。
哈勃最有趣的方面是你可以与它通信的方式。有两种方法:通过 HTTP 发布信息,或者告诉 Hubble 自己查询。为了直接发布信息,我喜欢使用 curl
,这是一个非常有用的程序。语法如下:
$ curl --data "column=[column #]&label=[label to display]&value=[value to display]" [address]
用一种不太抽象的方式来说,
$ curl --data "column=0&label=Coffee&value=5" http://localhost:9999/
将显示这个:

从那里,您可以使用以下语法递减或递增该值:
$ curl --data "column=0&label=Coffee&value=increment" http://localhost:9999/
或者甚至通过以下方式设置阈值:
$ curl --data "column=0&label=Coffee&value=6&high=5" http://localhost:9999/

请注意,一旦该值超过该阈值,文本颜色将更改为 config.coffee 文件中指定的颜色,如下所示:
high: 'red'
显示数据的第二种方法是让哈勃查询数据本身。这是通过使用以下语法向其发送一次来完成的:
$ curl http://localhost:9999
-d column=[column #]
-d label="[label name]"
-d poll_url="[URL to poll]"
-d poll_seconds=[number of seconds between polls]
-d poll_failed="[message to display if failed]"
-d poll_method="[how to parse the data]"
例如,这将是:
$ curl http://localhost:9999
-d column=0
-d label="Name"
-d poll_url="https://api.github.com/users/jaymedavis"
-d poll_seconds=10
-d poll_failed="Bummer :("
-d poll_method="json_value:^.[0].name"
这会在第一列的标签 Name
下显示哈勃望远镜创建者的姓名。请注意,查询每 10
秒执行一次,并返回一个 JSON 文件。 Hubble可以解析JSON,并用正确的解析方法返回标签name
下的值。

一般来说,Hubble 可以解析 JSON 文件,甚至可以计算数组中元素的数量。从那时起,您就可以发挥创造力并使用您最喜欢的 API。
最后但并非最不重要的哈勃功能是,您可以显示多个屏幕。换句话说,通过按特定键加载不同的仪表板。要设置另一个屏幕,请使用以下语法:
$ curl --data "column=0&label=Coffee&value=5&screen=[key to press to see the second screen]" http://localhost:9999/
例如:
$ curl --data "column=0&label=Coffee&value=5&screen=h" http://localhost:9999/
在单独的屏幕上显示另一个咖啡标签,您可以通过按 h
显示该标签。
最后,一旦您将所有信息很好地传播并显示在仪表板中,您就可以通过以下方式将配置保存到脚本文件:
$ curl --data "filename=[coffee script name]" http://localhost:9999/save
并通过以下方式加载它:
$ hubble [coffe script name]
总而言之,我真的很喜欢哈勃。拥有仪表板的想法并不适合所有人,并且需要相当多的配置和创造力才能使其发挥作用,但结果总是与努力相称。唯一需要改进的功能是哈勃根据时间切换屏幕的本地方式。换句话说,例如,每分钟在屏幕之间自动切换。无论如何,这是一个很棒的项目,从那里我只能引导您访问该项目的官方 GitHub 页面。感谢开发人员。
您对哈勃有何看法?是不是太复杂了?你愿意投入一些时间吗?如果是这样,您的仪表板是什么样子的?让我们在评论中知道。