命令hostnamectl
在没有参数的情况下执行时会将一堆信息转储到终端。其中之一是Operating System
以下示例输出中显示的行:
$ hostnamectl
Static hostname: xxxxxx
Icon name: computer-laptop
Chassis: laptop
Machine ID: e8..43
Boot ID: 7b..2a
Operating System: Ubuntu 21.10
Kernel: Linux 5.13.0-28-generic
Architecture: x86-64
Hardware Vendor: XXXXXX
Hardware Model: XXXXXX
但是,输出“ Ubuntu 21.10
”像超链接一样带有下划线,当您Ctrl+click 时,它将打开一个网络浏览器,其中包含以下链接地址:https://ubuntu.com/
。
这是如何实现的?终端命令是什么(转义序列?)我需要从基于文本的程序或脚本输出才能在终端上创建这样的超链接?
答案1
此信息不存在询问 Ubuntu,但我在另一个网站上找到了答案:https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
这转义序列创建上述链接的方法是:
printf '\e]8;;https://ubuntu.com/\e\\Ubuntu 21.10\e]8;;\e\\\n'
一般格式为:
- 超链接开放序列以。。开始
- 这
\e]8
转义序列(ESC,], 和8), - 这参数,
- 这目标 URI, 和
- 结束
\e\
转义序列(ESC和\)
其中params
是可选的: \e]8;params;URI\e\\
然后是内容它将被描绘为超链接。
超链接是关闭使用相同的转义序列(如步骤 1 中所示),但省略参数和URI,但保留分隔符:
\e]8;;\e\\
作为这个答案的奖励,我建议您在文件中使用以下别名~/.bash_aliases
:
alias ll="LC_COLLATE=C ls --hyperlink=auto --group-directories-first --color=auto -alF"
这里,--hyperlink
参数将指示ls
命令自动创建超链接用于终端输出的文件名,这样当Ctrl单击它们时,它们将在鹦鹉螺或相关应用程序。