【问题标题】:What UNIX commands support coloured output?哪些 UNIX 命令支持彩色输出?
【发布时间】:2010-10-08 11:44:18
【问题描述】:

我喜欢使用支持彩色输出的 UNIX/bash 命令。因此,我定义了一些别名,它们会自动启用我知道支持此选项的命令的彩色输出。但是,我确信有数百个支持彩色输出的命令 - 我想知道它们是什么。

我的~/.bash_aliases 文件中的文件是:

ls --color=auto
grep --color
phpunit --ansi

还有什么?是否有支持彩色输出的所有命令的列表?或者更好的是,一些命令用于搜索我的本地手册页并提取适当的命令名称。

【问题讨论】:

  • 严格来说,这些是 GNU 程序 (AFIAK)。众所周知:GNU 不是 Unix!
  • 我猜你的意思不止两种颜色? :-)

标签: bash unix shell colors ls-colors


【解决方案1】:

你为什么不试试:

man -K 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

$

在每个单独的手册页中,您可以使用常规搜索方法(例如,/color<ENTER>)来查找文本。完成手册页后,只需退出,它将继续搜索。

【讨论】:

  • 我的系统使用小写的 k。但我通常使用 apropos。
  • Dennis,我认为小写的 k 只是搜索标题,而不是全文。
【解决方案2】:

我非常喜欢给我的提示上色以使其脱颖而出。 here 有一篇关于这类事情的有用文章。

【讨论】:

    【解决方案3】:

    谷歌搜索一下还可以找到grcgrcat,它们可用于为任意文本或命令着色。但不确定它们的工作情况如何。既然我找到了它们,我肯定会尝试一下。

    啊,我们开始吧。 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。这是将所有大写字母都涂成红色的示例。第一步:设置配置文件:printf "regexp=[A-Z]\ncolours=red\n" > ~/.grc/red-caps 第二步;使用它:echo Hello World | grcat red-caps
    • 我使用grcat,非常喜欢。
    【解决方案4】:

    这个演示 bash 脚本在大多数终端中将目录涂成红色 - 当然适用于 Windows 下的 xterms 和 cygwin。您可以通过摆弄转义码来调整颜色 - Google for LS_COLOR 获取颜色代码列表:

    #!/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
    

    【讨论】:

      【解决方案5】:

      查看日志时,您可能会喜欢 tail -f /var/log/messages | loco 的彩色输出。

      loco 网站上有一个 screenshothttp://www.linuxhaxor.net/2008/01/02/perl-script-to-add-nice-colors-to-your-varlogmessages-file 有更多示例

      【讨论】:

      • 这两个链接对我来说都坏了,其他人可以检查吗?
      猜你喜欢
      • 2011-11-05
      • 2021-04-20
      • 2014-01-21
      • 2012-06-26
      • 2019-08-17
      • 2019-09-14
      • 2011-07-11
      • 2013-09-13
      • 1970-01-01
      相关资源
      最近更新 更多