Buntes Terminal oder Konsole?


8

Ich liebe Farben in meiner Konsole und ich frage mich, ob es eine Möglichkeit gibt, ein Terminal (ich denke, nur eine Software kann das) dazu zu bringen, fast alles in Farben zu drucken. Natürlich gibt es die --color=autoDinge, aber es funktioniert für ein paar Befehle ( ls, grep...?). Was ich möchte, ist etwas viel bunteres, das auch für Befehle funktioniert, bei denen keine Farben verwendet werden. Ich weiß nicht, ob dies möglich ist.

Zum Beispiel gibt es MobaXTerm für Windows (so etwas wie Cygwin), das viel Farbe verwendet. Natürlich ist es nicht nur ein Terminal, sondern eine komplette Software (eine weitere Ebene) ... vielleicht ist es der einzige Weg, etwas ernsthaft zu kolorieren?

Jeder Hinweis wäre wirklich dankbar.



Danke Jungs für eure Antworten, aber das ist wirklich nicht das, wonach ich suche. Ich möchte etwas, das meine Gewohnheiten nicht ändern muss. Wie eine Terminalsoftware, die Farbe auf die Ausgabe anwendet ...
Guillaume Fenollar

1
Was ist mit einer Muschel? Schauen Sie sich fishdie freundliche interaktive Shell an .
Manatwork

Antworten:


6

Vielen Dank für alle Antworten, aber niemand hat meine Bedürfnisse erfüllt. Ich wollte etwas nicht aufdringliches, und ich fand es in cw. Dies ist eine schöne weiche, die Sie am Anfang Ihres Pfades hinzufügen müssen. Natürlich funktioniert es nicht mit jedem Befehl (nur den bereits definierten), aber das Ergebnis sieht sehr gut aus! Probieren Sie es aus, wenn Sie interessiert sind: http://freecode.com/projects/cw


3

Sie können hierfür auch Cope verwenden .

Cope ist ein Wrapper um Programme, die an ein Terminal ausgegeben werden, um ihnen Farbe für Nützlichkeit und Ästhetik zu verleihen und sie gleichzeitig auf Textebene gleich zu halten.

Vielen Dank für diese Lösung. Es ist fast dasselbe wie 'cw', außer dass cw, IMO, einfacher zu installieren ist. Aber es sind die gleichen Farben und fast die gleichen Felder hervorgehoben. Darüber hinaus hat cw fast hundert mögliche Befehle, während cope ~ 40 hat.
Guillaume Fenollar


1

Was ich oft getan habe, ist die Ausgabe von Befehlen oder Protokolldateien, die selbst keine Farbe verwenden, durch ein kleines Skript, das sie nach Regeln färbt, die mit bestimmten Texten übereinstimmen. Perl ist besonders gut darin.

Hier ist ein kleines Beispiel:

#!/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";
}

Speichern Sie dies als colourizeirgendwo in Ihrem PATH, chmod +xes und Sie können Dinge wie tun

command | colourize WARNING 31

Alle Zeilen mit WARNUNG werden rot gedruckt. Die Nummer 31 ist der ANSI-Farbcode für Rot.


0

Erstens könnte Sie dieses Skript in Bezug auf Farben im Allgemeinen interessieren. Es funktioniert gut in der Konsole (in einem Terminal wird die Registerkartenbreite nicht richtig eingestellt).

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

Zweitens können Sie mit ls viel mehr als nur tun --color=auto. Aber es erfordert einige Arbeit, um alles zu klären. Ich habe ein Skript geschrieben, um das Verständnis zu erleichtern und Dateien (basierend auf ihren Erweiterungen) systematisch einzufärben.

Wenn es zu lang ist, um eingefügt zu werden, lesen Sie es hier .

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

Es gibt einen schönen Blog-Beitrag über das Kolorieren des Terminals . Abgesehen von der Verwendung der integrierten Farbunterstützung in verschiedenen empfohlenen Werkzeugen grcwird der generische Farbgeber verwendet . Wenn Sie auf einem Debian-basierten System arbeiten, können Sie es über installieren

sudo apt-get install grc

Sie können dann einen Befehl geben, den Sie als Argument einfärben möchten grc, z

grc head /var/log/syslog

Dies hängt davon ab, dass die Konfiguration in /etc/grc.conf eine geeignete Konfigurationsdatei zum Färben auswählen kann head /var/log/syslog. In diesem Fall funktioniert es, weil in /etc/grc.conf Zeilen vorhanden sind, die grcauf die richtige Konfigurationsdatei verweisen, dh conf.log.

Wenn man einer bestimmten Ausgabe eine bestimmte Konfigurationsdatei aufzwingen möchte, kann man grcatz

git diff | grcat conf.diff

git diffDies färbt die Ausgabe von mit der Konfigurationsdatei conf.diff. Die Konfigurationsdateien, die ich erwähnt habe, sind Standarddateien, die mit den Paketen geliefert werden, aber man kann natürlich eigene Konfigurationen vornehmen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.