尺寸

尺寸

如何操作:在 Gnome 终端中添加下划线、粗体、斜体、删除线和颜色?

大胆的

斜体

强调

罢工 很热

颜色

background

font<(如果你不知道的话,它是单声道的)

尺寸

答案1

ANSI/VT100 终端和终端仿真器不仅能够显示黑白文本,还可以通过转义序列显示彩色和格式化文本。这些序列由转义字符(通常用“^[”或“Esc”表示)和随后的一些其他字符组成:“Esc[FormatCodem”。

在 Bash 中,可以使用以下语法获取该字符:

\e
\033
\x1B

在此处输入图片描述

命令(方便复制粘贴):

echo -e "\e[1mbold\e[0m"
echo -e "\e[3mitalic\e[0m"
echo -e "\e[3m\e[1mbold italic\e[0m"
echo -e "\e[4munderline\e[0m"
echo -e "\e[9mstrikethrough\e[0m"
echo -e "\e[31mHello World\e[0m"
echo -e "\x1B[31mHello World\e[0m"

来源(包括所有类型的前景/背景颜色代码):http://misc.flogisoft.com/bash/tip_colors_and_formatting

答案2

GNOME Terminal 3.28(VTE 0.52)在 Ubuntu 18.04 LTS 中首次亮相,增加了对更多样式的支持,包括 Kitty 中看到的卷曲和彩色下划线,Konsole 中看到的上划线,以及最后大家最喜爱或最讨厌的闪烁属性。

GNOME Terminal 3.52(VTE 0.76)在 Ubuntu 24.04 LTS 中首次亮相,用点线和虚线下划线扩展了列表。

只要 VTE 至少为上述版本,这些也可以在任何其他基于 VTE 的终端仿真器(例如 Tilix、Terminator、Xfce4 Terminal、Guake 等)中自动运行。

以下是标准转义序列以及 GNOME 终端 (VTE) 附加序列的列表。请注意,对于每个打开序列,我还仅显示该属性的关闭序列,而不是通用的\e[m\e[0m禁用所有特殊模式的序列。

echo -e '\e[1mbold\e[22m'
echo -e '\e[2mdim\e[22m'
echo -e '\e[3mitalic\e[23m'
echo -e '\e[4munderline\e[24m'
echo -e '\e[4:1mthis is also underline (since 0.52)\e[4:0m'
echo -e '\e[21mdouble underline (since 0.52)\e[24m'
echo -e '\e[4:2mthis is also double underline (since 0.52)\e[4:0m'
echo -e '\e[4:3mcurly underline (since 0.52)\e[4:0m'
echo -e '\e[4:4mdotted underline (since 0.76)\e[4:0m'
echo -e '\e[4:5mdashed underline (since 0.76)\e[4:0m'
echo -e '\e[5mblink (since 0.52)\e[25m'
echo -e '\e[7mreverse\e[27m'
echo -e '\e[8minvisible\e[28m <- invisible (but copy-pasteable)'
echo -e '\e[9mstrikethrough\e[29m'
echo -e '\e[53moverline (since 0.52)\e[55m'

echo -e '\e[31mred\e[39m'
echo -e '\e[91mbright red\e[39m'
echo -e '\e[38:5:42m256-color, de jure standard (ITU-T T.416)\e[39m'
echo -e '\e[38;5;42m256-color, de facto standard (commonly used)\e[39m'
echo -e '\e[38:2::240:143:104mtruecolor, de jure standard (ITU-T T.416) (since 0.52)\e[39m'
echo -e '\e[38:2:240:143:104mtruecolor, rarely used incorrect format (might be removed at some point)\e[39m'
echo -e '\e[38;2;240;143;104mtruecolor, de facto standard (commonly used)\e[39m'

echo -e '\e[46mcyan background\e[49m'
echo -e '\e[106mbright cyan background\e[49m'
echo -e '\e[48:5:42m256-color background, de jure standard (ITU-T T.416)\e[49m'
echo -e '\e[48;5;42m256-color background, de facto standard (commonly used)\e[49m'
echo -e '\e[48:2::240:143:104mtruecolor background, de jure standard (ITU-T T.416) (since 0.52)\e[49m'
echo -e '\e[48:2:240:143:104mtruecolor background, rarely used incorrect format (might be removed at some point)\e[49m'
echo -e '\e[48;2;240;143;104mtruecolor background, de facto standard (commonly used)\e[49m'

echo -e '\e[21m\e[58:5:42m256-color underline (since 0.52)\e[59m\e[24m'
echo -e '\e[21m\e[58;5;42m256-color underline (since 0.52)\e[59m\e[24m'
echo -e '\e[4:3m\e[58:2::240:143:104mtruecolor underline (since 0.52) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58:2:240:143:104mtruecolor underline (since 0.52) (might be removed at some point) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58;2;240;143;104mtruecolor underline (since 0.52) (*)\e[59m\e[4:0m'

(*)下划线的真彩色值稍微近似。

有一点奇怪,不太适合这张图片,因为它更多的是一种功能而不是一种风格,但可能值得在这里提一下,那就是超级链接与 iTerm2 共同设计的支持,自 GNOME Terminal 3.26(VTE 0.50)起可用:

echo -e '\e]8;;http://askubuntu.com\e\\hyperlink (since 0.50)\e]8;;\e\\'

以下是展示结果的屏幕截图: 在 GNOME 终端 3.52 中渲染

答案3

为了扩展Sylvain的答案,有一些辅助功能:

ansi()          { echo -e "\e[${1}m${*:2}\e[0m"; }
bold()          { ansi 1 "$@"; }
italic()        { ansi 3 "$@"; }
underline()     { ansi 4 "$@"; }
strikethrough() { ansi 9 "$@"; }
red()           { ansi 31 "$@"; }

然后

在此处输入图片描述

答案4

将这些硬编码序列替换为:

tput smul # set underline
tput rmul # remove underline

tput smso # set bold on
tput rmso # remove bold

tput setaf 1 #red
tput setaf 2 #green
...
tput cup 0 0 # move to pos 0,0

有关这些命令的完整描述,请参阅“man terminfo”和“man tput”。

例子 :

function f_help
{
  c_green=$(tput  setaf 2      2>/dev/null)
  c_reset=$(tput  sgr0         2>/dev/null)
  c_bold=$(tput smso           2>/dev/null)
  echo "${c_bold}DESCRIPTION${c_reset} : .... ${c_green}My green text${c_reset}My plain text"
}

相关内容