我有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
,never
或always
。如果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
}