Цветной терминал или консоль?

8

Мне нравятся цвета в моей консоли, и мне интересно, есть ли способ получить терминал (я полагаю, что это может сделать только программное обеспечение), печатая почти все в цветах. Конечно, есть --color=autoвещи, но это работает для нескольких команд ( ls, grep...?). То, что я хотел бы, это что-то более красочное, которое работает также для команд, которые не предназначены для использования цветов, я не знаю, возможно ли это.

Например, есть MobaXTerm для Windows (что-то вроде Cygwin), которая использует много цветов. Конечно, это не только терминал, но и полное программное обеспечение (еще один уровень) ... может быть, это единственный способ получить что-то серьезно раскрашенное?

Любая подсказка будет очень цениться.

Гийом Феноллар
источник
Спасибо, ребята, за ваши ответы, но это не то, что я ищу. Я хотел бы что-то, что не должно изменить мои привычки. Как терминальное программное обеспечение, которое применяет цвет к выходу ...
Гийом Феноллар
1
Как насчет оболочки? Взгляните fish, на дружественную интерактивную оболочку .
manatwork

Ответы:

6

Спасибо ребята за все ответы, но никто не соответствовал моим потребностям. Я хотел что-то ненавязчивое, и я нашел это в cw. Это хороший софт, который нужно добавить в начале вашей PATH. Поэтому, конечно, он не работает с каждой командой (только с уже определенными), но результат выглядит очень хорошо! Проверьте это, если вы заинтересованы: http://freecode.com/projects/cw

Гийом Феноллар
источник
3

Вы также можете использовать справиться с этим.

cope - это оболочка для программ, которые выводят на терминал, чтобы придать им цвет для удобства и эстетики, при этом сохраняя их на уровне текста.
jasonwryan
источник
Спасибо за это решение. Это почти то же самое, что и cw, за исключением того, что, IMO, cw проще в установке. Но это те же цвета и почти одинаковые поля. Более того, у cw есть почти сотня возможных команд, а у cpe ~ 40.
Гийом Феноллар
1

Что-то, что я часто делал, это направлял вывод команд или файлов журналов, которые сами не используют цвет, через небольшой скрипт, который раскрашивает их в соответствии с правилами, соответствующими определенному тексту. Perl особенно хорош в этом.

Вот маленький пример:

#!/usr/bin/perl -n

BEGIN {
  $exp = shift @ARGV;
  $color = shift @ARGV;
  die "Use: colourize regexp colour" unless $color;
}

if (/$exp/) {
  print"\e[${color}m";
}

print;

if (/$exp/) {
  print "\e[0m";
}

Сохраните это как colourizeгде-то в вашем PATH, chmod +xэто, и вы можете делать такие вещи, как

command | colourize WARNING 31

чтобы все строки, содержащие ПРЕДУПРЕЖДЕНИЕ, были напечатаны красным цветом. Число 31 - код цвета ANSI для красного.

Бристоль
источник
0

Во-первых, что касается цветов в целом, этот скрипт может вас заинтересовать. Он отлично работает в консоли (в терминале ширина вкладки не установлена ​​правильно).

#!/bin/bash

setterm -regtabs 4
Color_names="bla red gre yel blu mag cya whi"
Color_arr=($Color_names)

tput setaf 4
tput setab 7
echo -n "            normal             "
tput sgr0

echo -n " "

tput setaf 7
tput setab 4   
echo "            bright             "

tput sgr0
for cmd in sgr0 bold
do
    tput $cmd
    for m in 0 1 2 3 4 5 6 7
    do
        tput setaf $m
        echo -n ${Color_arr[$m]}" "
    done
done
echo

tput sgr0
cat /sys/module/vt/parameters/default_red \
    /sys/module/vt/parameters/default_grn \
    /sys/module/vt/parameters/default_blu | sed s/,0/", "/g | \
    sed s/^0/" "/g | \
    tr "," "\t"

Во-вторых, вы можете сделать с Ls гораздо больше, чем просто --color=auto. Но это требует некоторой работы, чтобы разобраться во всем. Я написал скрипт для облегчения понимания, а также для раскрашивания файлов (на основе их расширений) на систематической основе.

Если это слишком долго для вставки, проверьте это здесь .

#!/bin/bash

# must be sourced

# see `man dircolors`
# in particular `dircolors -p > coldb.txt` (-p, --print-database)

# attributes
# 00 = none
# 01 = bold (bright)
# 04 = underscore (white; disables color code)
# 05 = blink (gray background)
# 07 = reverse (color as background)
# 08 = concealed (doesn't do anything)

# colors
R='00;31' # red
G='00;32' # green
Y='00;33' # yellow (brown in my console)
B='00;34' # blue
M='00;35' # magenta
C='00;36' # cyan
W='00;37' # white

# bold (bright)
BR='01;31' # red
BG='01;32' # green
BY='01;33' # yellow
BB='01;34' # blue
BM='01;35' # magenta
BC='01;36' # cyan
BW='01;37' # white

# for di (below) and possible some others
BL='00;30' # black
GR='01;30' # gray

# background
BGBL='40' # blue
BGRE='41' # red
BGGR='42' # green
BGYE='43' # yellow
BGBL='44' # blue
BGMA='45' # magenta
BGCY='46' # cyan
BGWH='47' # white

RS="rs=0"         # reset
DI="di=$BB"       # directory
LN="ln=$C"        # link
MH="mh=00"        # multihardlink (file with more than one link)
PI="pi=$BY;$BGBL" # pipe (FIFO)
SO="so=$BM"       # socket
DO="do=$BM"       # door
BD="bd=$BY;$GBBL" # block device driver
CD="cd=$BY;$BGBL" # character device driver
OR="or=$BR"       # symlink to nonexistent (or non-stat'able) file
SU="su=$W;$BGRE"  # file that is setuid (u+s)
SG="sg=$BL;$BGYE" # file that is setgid (g+s)
CA="ca=$BL;$BGRE" # file with capability
TW="tw=$BL;$BGGR" # dir that is sticky and other-writable (+t,o+w)
OW="ow=$BB;$BGGR" # dir that is other-writable (o+w) and not sticky
ST="st=$BW;$BGBL" # sticky bit dir (+t) and not other-writable
EX="ex=$BG"       # file with execute permission

ARCHIVE="*.tar=$BR:*.tgz=$BR:*.arj=$BR:*.taz=$BR:*.lzh=$BR:*.lzma=$BR:*.tlz=$BR:*.txz=$BR:*.zip=$BR:*.z=$BR:*.Z=$BR:*.dz=$BR:*.gz=$BR:*.lz=$BR:*.xz=$BR:*.bz2=$BR:*.bz=$BR:*.tbz=$BR:*.tbz2=$BR:*.tz=$BR:*.deb=$BR:*.rpm=$BR:*.jar=$BR:*.war=$BR:*.ear=$BR:*.sar=$BR:*.rar=$BR:*.ace=$BR:*.zoo=$BR:*.cpio=$BR:*.7z=$BR:*.rz=$BR"
IMAGE="*.jpg=$BM:*.jpeg=$BM:*.gif=$BM:*.bmp=$BM:*.pbm=$BM:*.pgm=$BM:*.ppm=$BM:*.tga=$BM:*.xbm=$BM:*.xpm=$BM:*.tif=$BM:*.tiff=$BM:*.png=$BM:*.svg=$BM:*.svgz=$BM:*.mng=$BM:*.pcx=$BM"
MOVIE="*.mov=$M:*.mpg=$M:*.mpeg=$M:*.m2v=$M:*.mkv=$M:*.webm=$M:*.ogm=$M:*.mp4=$M:*.m4v=$M:*.mp4v=$M:*.vob=$M:*.qt=$M:*.nuv=$M:*.wmv=$M:*.asf=$M:*.rm=$M:*.rmvb=$M:*.flc=$M:*.avi=$M:*.fli=$M:*.flv=$M:*.gl=$M:*.dl=$M:*.xcf=$M:*.xwd=$M:*.yuv=$M:*.cgm=$M:*.emf=$M:*.axv=$M:*.anx=$M:*.ogv=$M:*.ogx=$M"
AUDIO="*.aac=$BM:*.au=$BM:*.flac=$BM:*.mid=$BM:*.midi=$BM:*.mka=$BM:*.mp3=$BM:*.mpc=$BM:*.ogg=$BM:*.ra=$BM:*.wav=$BM:*.axa=$BM:*.oga=$BM:*.spx=$BM:*.xspf=$BM:"
SOURCE="*.el=$BC:*.c=$BC:*.cpp=$BC"
TEXT="*.txt=$BW"
PDF="*.pdf=$R"
WEB="*.html=$Y:*.htm=$Y:*.css=$W;$BGMA"

TYPES="$ARCHIVE:$IMAGE:$MOVIE:$AUDIO:$SOURCE:$TEXT:$PDF:$WEB"

LS_COLORS="$RS:$DI:$LN:$MH:$PI:$SO:$DO:$BD:$CD:$OR:$SU:$SG:$CA:$TW:$OW:$ST:$EX:"$TYPES

export LS_COLORS
Эмануэль Берг
источник
0

Есть хороший пост в блоге о раскрашивании терминала . За исключением использования встроенной поддержки цвета в различных инструментах, которые он рекомендует grc, Generic Colouriser . Если вы работаете в системе на основе Debian, вы можете установить ее через

sudo apt-get install grc

Затем вы можете использовать команду дать, которую вы хотите раскрасить в качестве аргумента grc, например:

grc head /var/log/syslog

Это зависит от конфигурации в /etc/grc.conf, позволяющей выбрать правильный файл конфигурации для раскрашивания head /var/log/syslog. В этом случае это работает, потому что в /etc/grc.conf есть строки, которые указывают grcна правильный файл конфигурации, т.е. conf.log.

Если кто-то хочет принудительно настроить конкретный файл конфигурации на конкретный выход, можно использовать grcat, например,

git diff | grcat conf.diff

который раскрашивает вывод git diffс помощью файла конфигурации conf.diff. Файлы конфигурации, которые я упомянул, являются файлами по умолчанию, которые поставляются вместе с пакетами, но, очевидно, можно создавать собственные конфигурации.

Н.Н.
источник