fdisk 输出为粗体但没有颜色

fdisk 输出为粗体但没有颜色

我有gentoo,urxvt终端并且fdisk不显示任何颜色,但它确实打印了一些行大胆的

在其他一些机器上,输出是彩色的

两台机器上的ls输出都是彩色的

如何让我的 fdisk 也有漂亮的颜色?

[ebuild   R    ] sys-apps/util-linux-2.26.2::gentoo  USE="cramfs ncurses nls pam python suid unicode -build -caps -fdformat (-selinux) -slang -static-libs -systemd {-test} -tty-helpers -udev" ABI_X86="32 (64) (-x32)" PYTHON_SINGLE_TARGET="python2_7 (-python3_3) -python3_4" PYTHON_TARGETS="python2_7 (-python3_3) -python3_4" 0 KiB 
[ebuild   R   ] sys-apps/coreutils-8.23::gentoo  USE="nls -acl -caps -gmp -multicall (-selinux) -static -vanilla -xattr" 0 KiB

答案1

您需要创建一个名为 的文件,/etc/terminal-colors.d/fdisk.scheme其中包含您想要的配色方案(或从另一台计算机复制它)。

你可能需要首先创建/etc/terminal-colors.d目录(我必须在我的 debian 机器上创建 - 直到现在我还不知道fdisk甚至有颜色选项......现在我知道了,我不想知道:-)

笔记:创建文件和目录需要以 root 身份(或使用 )完成sudo

例如,对于一个绝对丑陋、不可读的配色方案,你可以尝试:

header 33;41
help-title 34;43
warn 47;30
welcome 42;34

这在手册页中有记录fdisk(搜索颜色靠近底部的部分),以及在terminal-colors.d.手册fdisk页对颜色有这样的说法:

-L, --color[=when]

对输出进行着色。可选参数when可以是auto,neveralways。如果when省略该参数,则默认为auto。可以禁用颜色;对于当前内置默认值,请参阅 --help 输出。另请参阅颜色部分。

笔记:如果默认情况下禁用颜色,您可能还需要sudo touch /etc/terminal-colors.d/fdisk.enable

颜色

空文件可以禁用隐式着色/etc/terminal-colors.d/fdisk.disable

terminal-colors.d(5)有关着色配置的更多详细信息,请参阅。支持的逻辑颜色名称 fdisk 是:

header        The header of the output tables.
help-title    The help section titles.
warn          The warning messages.
welcome       The welcome message.

terminal-colors.d似乎是一个通用的、集中的位置,用于启用、禁用和/或指定各种命令行工具的颜色方案。它是该包中所有工具的一部分util-linux并被该包中的所有工具使用。它也可能(或可能没有)被其他工具采用。

我今天之前从未听说过它(这并不奇怪,我的终端上有花哨的颜色并不是我感兴趣的事情),但它可能已经存在多年了。

答案2

您可能喜欢以下自定义颜色输出fdisk -l

在此输入图像描述

来源:

### Add this to your .bashrc

# custom fdisk
# - add color when called with -l or -x
# - prepend sudo
function fdisk () {
  local green='\x1b[32m'
  local bold='\x1b[1m'
  local blue='\x1b[34m'
  local yellow='\x1b[33m'
  local reset='\x1b[0m'

  if [[ "$@" =~ -l|--list|-x|--list-details ]]; then
    command sudo fdisk --color=always "$@" | \
      sed -E -e 's/ ([0-9]+(\.[0-9]+)?)([A-Z]+) / '"${green}${bold}"'\1'"${reset}${green}"'\3'"${reset}"' /g' \
          -e 's/(^\/dev\/)([a-z0-9]+) /'"${blue}"'\1'"${reset}${bold}${blue}"'\2'"${reset}"' /g' \
          -e 's/(Disk )(\/dev\/)([a-z0-9]+): ([0-9]+(\.[0-9]+)?) ([[:alpha:]]+),/\1'"${reset}${blue}"'\2'"${reset}${bold}${blue}"'\3'"${reset}${bold}"': '"${green}${bold}"'\4'"${reset}${green}"'\6'"${reset}${bold}"',/g' \
          -e 's/(Disk model: )(.*)/\1'"${reset}${yellow}"'\2'"${reset}"'/g' \
          -e 's/(Disklabel type: )(.*)/\1'"${reset}${yellow}"'\2'"${reset}"'/g'
  else
    command sudo fdisk --color=always "$@"
  fi
}

相关内容