我喜欢使用支持彩色输出的UNIX/bash命令。因此,我定义了一些别名,可以自动启用我知道支持此选项的命令的彩色输出。然而,我相信有数百个命令支持彩色输出 - 我想知道它们是什么。
在我的~/.bash_aliases
文件中包含以下内容:
ls --color=auto
grep --color
phpunit --ansi
还有什么其他的命令支持彩色输出吗?是否有一个列出所有支持彩色输出命令的列表?或者更好的是,是否有一种命令可以在我的本地man页面中进行搜索并提取相应的命令名称。
我喜欢使用支持彩色输出的UNIX/bash命令。因此,我定义了一些别名,可以自动启用我知道支持此选项的命令的彩色输出。然而,我相信有数百个命令支持彩色输出 - 我想知道它们是什么。
在我的~/.bash_aliases
文件中包含以下内容:
ls --color=auto
grep --color
phpunit --ansi
还有什么其他的命令支持彩色输出吗?是否有一个列出所有支持彩色输出命令的列表?或者更好的是,是否有一种命令可以在我的本地man页面中进行搜索并提取相应的命令名称。
为什么不尝试以下方法:
man -K color
这应该在所有手册页(内容而非标题)中搜索单词"color"。
对于每个手册页,它会询问您是否要打开和查看页面:
$ man -K color
/usr/share/man/mann/Widget.n.gz? [ynq] y
/usr/share/man/mann/usual.n.gz? [ynq] y
/usr/share/man/mann/Toplevel.n.gz? [ynq] n
/usr/share/man/mann/itk.n.gz? [ynq] n
/usr/share/man/mann/Archetype.n.gz? [ynq] n
/usr/share/man/man8/squid.8.gz? [ynq] n
/usr/share/man/man7/Xprint.7.gz? [ynq]
/usr/share/man/man7/X.7.gz? [ynq]
/usr/share/man/man7/urxvt.7.gz? [ynq]
/usr/share/man/man7/term.7.gz? [ynq] q
$
在每个单独的 man 页面中,您可以使用正常的搜索方法(例如,/color<ENTER>
)来查找文本。完成 man 页面后,只需退出即可继续搜索。
grc
和grcat
,它们可以用于着色任意文本或命令。不确定它们的工作效果如何,但我肯定会尝试一下找到它们。
啊,我们来了。grc
使用/etc/grc.conf
文件根据其匹配的正则表达式对给定命令进行着色。我的(Ubuntu 8.10)/etc/grc.conf
快速grep发现它目前支持:
[~]$ less /etc/grc.conf | grep '^#'
# anything to do with irc
# log file
# ping command
# traceroute command
# gcc command
# make command
# netstat command
# diff command
# last command
# ldap tools
# cvs command
但我相信你可以为其他你感兴趣的程序添加自己的颜色设置。
使用grc
非常简单,只需在您想要着色的命令之前输入它(比如说diff
):
grc diff foo.txt bar.txt
你可以使用alias diff='grc diff'
来使默认的diff
带有颜色。
grc
有一个辅助脚本:grcat
。以下是将所有大写字母标记为红色的示例。步骤1:设置配置文件:printf "regexp=[A-Z]\ncolours=red\n" > ~/.grc/red-caps
。步骤2:使用它:echo Hello World | grcat red-caps
。 - Peter.Ogrcat
并且非常喜欢它。 - Sridhar Sarnobat#!/bin/bash
color_red()
{
echo -e "\033[01;31m$1\033[00m"
}
for FILE in $*
do
if test -d $FILE
then
color_red $FILE
else
echo $FILE
fi
done
当查看日志时,您可能会喜欢 tail -f /var/log/messages | loco
以获得着色的输出。
在 loco 网站上有一个screenshot,更多示例请访问http://www.linuxhaxor.net/2008/01/02/perl-script-to-add-nice-colors-to-your-varlogmessages-file