Creating a Hyperlink from Command Line Output on a Terminal
The Command Hostnamectl, When Executed with No Argument, Will Dump a Bunch of Information to the Terminal. One of That Is the Operating System Line as Shown in...
The command hostnamectl, when executed with no argument, will dump a bunch of information to the terminal. One of that is the Operating System line as shown in the sample output below:
$ 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
However, the output "Ubuntu 21.10" is underlined like a hyperlink and when you Ctrl+click, it will open a web browser with the following link address: .
How is this accomplished? What are the terminal commands (escape sequences?) that I need to output from a text based program or script to create such a hyperlink on the terminal?
1 Answer
This information was not present in Ask Ubuntu, but I found the answer in another site:
The escape sequence to create the above link is:
printf '\e]8;; 21.10\e]8;;\e\\\n'
The general format is:
The hyperlink open sequence starts with
- the
\e]8escape sequence (ESC, ], and 8), - the params,
- the target URI, and
- the closing
\e\escape sequence (ESC and \)
where params is optional: \e]8;params;URI\e\\
Then comes the content that will be painted as hyperlink.
The hyperlink is closed with the same escape sequence, omitting params and the URI, but keeping the separators: \e]8;;\e\\
As a bonus to this answer, I suggest you use the following alias in your ~/.bash_aliases file:
alias ll="LC_COLLATE=C ls --hyperlink=auto --group-directories-first --color=auto -alF"
Here, the --hyperlink argument will direct the ls command to automatically create hyperlinks for file names on terminal output, so that when they are Ctrl+clicked they will open in Nautilus or the associated application.