Какие команды UNIX поддерживают цветной вывод?

Мне нравится использовать команды UNIX / bash, поддерживающие цветной вывод. Следовательно, у меня есть несколько псевдонимов, которые автоматически включают цветной вывод команд, которые, как я знаю, поддерживают эту опцию. Однако я уверен, что существуют сотни команд, поддерживающих цветной вывод - я хотел бы знать, что они из себя представляют.

В моем ~/.bash_aliases файле:

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

Что еще там? Есть ли где-нибудь список всех команд, поддерживающих цветной вывод? Или, еще лучше, какую-нибудь команду для поиска моих локальных страниц руководства и выбора соответствующих имён команд.


person DavidWinterbottom    schedule 19.02.2009    source источник
comment
Строго говоря, это программы GNU (AFIAK). И как все мы знаем: GNU - это не Unix!   -  person MighMoS    schedule 19.02.2009
comment
Я думаю, вы имеете в виду более двух цветов? :-)   -  person D A Vincent    schedule 08.06.2017


Ответы (5)


Почему бы тебе не попробовать:

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>) для поиска текста. Когда закончите со страницей руководства, просто выйдите, и поиск продолжится.

person paxdiablo    schedule 19.02.2009
comment
В моей системе используется строчная буква k. Но я обычно пользуюсь по поводу. - person Dennis Williamson; 22.04.2009
comment
Деннис, я думаю, что строчная буква k ищет только заголовки, а не весь текст. - person paxdiablo; 22.04.2009

Быстрый поиск в Google также обнаруживает grc и _ 2_, который можно использовать для раскрашивания любого произвольного текста или команды. Не уверен, насколько хорошо они работают. Я обязательно собираюсь попробовать их сейчас, когда я их нашел.

А, вот и мы. grc использует /etc/grc.conf файл, чтобы раскрасить данную команду в зависимости от того, какому регулярному выражению она соответствует. Быстрый grep моего (Ubuntu 8.10) /etc/grc.conf показывает, что в настоящее время он поддерживает:

[~]$ 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 раскрашенным по умолчанию.

person David Dean    schedule 19.02.2009
comment
grc имел вспомогательный сценарий: grcat. Вот пример окраски всех заглавных букв в красный цвет. Шаг 1: Настройте файл конфигурации: printf "regexp=[A-Z]\ncolours=red\n" > ~/.grc/red-caps Шаг 2; Используйте это: echo Hello World | grcat red-caps - person Peter.O; 01.11.2011
comment
Я использую grcat, и он мне очень нравится. - person Sridhar Sarnobat; 25.08.2017

Я очень люблю раскрашивать свою подсказку, чтобы она выделялась. Полезная статья на эту тему доступна здесь .

person David Dean    schedule 19.02.2009

Этот демонстрационный сценарий bash окрашивает каталоги в красный цвет в большинстве терминалов - безусловно, работает в xterms и cygwin под Windows. Вы можете адаптировать цвета, возясь с escape-кодами - Google для 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
person Community    schedule 19.02.2009

При просмотре журналов вам может понравиться tail -f /var/log/messages | loco цветной вывод.

Есть снимок экрана на loco и другие примеры на http://www.linuxhaxor.net/2008/01/02/perl-script-to-add-nice-colors-to-your-varlogmessages-file

person Philip Durbin    schedule 21.03.2009
comment
Обе эти ссылки у меня не работают, может ли кто-нибудь еще проверить? - person paxdiablo; 09.02.2013