it-swarm-tr.com

Terminal ve Shell ortamınızı renklendirme?

Zamanımın çoğunu Unix ortamlarında çalışarak ve terminal emülatörlerini kullanarak geçiriyorum. Komut satırında renk kullanmaya çalışıyorum, çünkü renk çıktıyı daha kullanışlı ve sezgisel hale getiriyor.

Terminal ortamıma renk eklemek için hangi seçenekler var? Hangi hileleri kullanıyorsun? Hangi tuzaklarla karşılaştınız?

Ne yazık ki, renk desteği terminal türüne, işletim sistemine, TERM ayarına, yardımcı programa, buggy uygulamalarına vb.

Çok fazla denemeden sonra kurulumumdan bazı ipuçları:

  1. TERM=xterm-color, çoğu ana bilgisayarda desteklenir (ancak tümü değil).
  2. Farklı ana bilgisayarlar, farklı işletim sistemi sürümleri vb. Üzerinde çalışıyorum. MacOS X, Ubuntu Linux, RHEL/CentOS/Scientific Linux ve FreeBSD'den her şeyi kullanıyorum. Mümkünse işleri basit ve genel tutmaya çalışıyorum.
  3. Başka bir eğlence katmanı ekler GNU screen, kullanarak bir sürü iş yapmak.
  4. Birçok işletim sistemi dircolors ve varsayılan olarak ayarlar ve yüz farklı ana bilgisayarlarda bunu değiştirmek istemiyorum. Bu yüzden varsayılanlara sadık kalmaya çalışıyorum. Bunun yerine, terminalimin renk yapılandırmasını değiştirdim.
  5. Bazı nix komutları (ls, grep, less, vim) ve Bash Komut İstemi) için renk kullanın . Bu komutlar " ANSI çıkış dizileri " standardını kullanıyor gibi görünüyor. Örneğin:

    alias less='less --RAW-CONTROL-CHARS'
    export LS_OPTS='--color=auto'
    alias ls='ls ${LS_OPTS}'
    

Göndereceğim .bashrc ve kendi sorumu Jeopardy Style cevap.

267
Stefan Lasiewski

İşte yapabileceğiniz birkaç şey:

Editörler + Kod
Pek çok editör sözdizimi vurgulama desteğine sahip. vim ve emacs varsayılan olarak açıktır. Ayrıca nano altında etkinleştirebilirsiniz.

Ayrıca, komut satırı aracı olarak Pygments komutunu kullanarak terminaldeki vurgulama kodunu sözdizimi yapabilirsiniz.

grep
grep --color=auto Tüm karşılaşmaları vurgular. Ayrıca takma ad olmadan kalıcı hale getirmek için export GREP_OPTIONS='--color=auto' Kullanabilirsiniz. --color=always Kullanırsanız, borularda bile renk kullanır , bu da işleri karıştırır.

ls

ls --color=always

Tarafından belirtilen renkler:

export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33'

(ipucu: dircolors yardımcı olabilir)

PS1
PS1'inizi (Shell Prompt) renkleri kullanacak şekilde ayarlayabilirsiniz. Örneğin:

PS1='\e[33;1m\[email protected]\h: \e[31m\W\e[0m\$ '

Gibi bir PS1 üretecek:

[sarı] lucas @ ubuntu: [kırmızı] ~ [normal] $

Bununla gerçekten yaratıcı olabilirsiniz. Bir fikir olarak:

PS1='\e[s\e[0;0H\e[1;33m\h    \t\n\e[1;32mThis is my computer\e[u[\[email protected]\h:  \w]\$ '

Terminalinizin üstüne rastgele bilgiler içeren bir çubuk yerleştirir. (En iyi sonuçlar için alias clear="echo -e '\e[2J\n\n'" Kullanın.)

Kaçış Dizilerinden Kurtulmak

Bir şey istemediğinizde renk çıktısı sıkışmışsa, bu sed satırını kaçış dizilerini sıyırmak için kullanıyorum:

sed "s/\[^[[0-9;]*[a-zA-Z]//gi"

Daha otantik bir deneyim istiyorsanız, \e[8m İle başlayan ve uçbirime metni gizlemesini söyleyen satırlardan kurtulabilirsiniz. (Yaygın olarak desteklenmez.)

sed "s/^\[^[8m.*$//gi"

Ayrıca, bu ^ [s öğelerinin gerçek, değişmez ^ [s olması gerektiğini unutmayın. Bunları ^ V ^ [bash dilinde, yani Ctrl + VCtrl + [.

123
Lucas Jones

Ayrıca şunu kullanıyorum:

export TERM=xterm-color
export GREP_OPTIONS='--color=auto' GREP_COLOR='1;32'
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad

İsteminizi renklendirmeyi seviyorsanız, tanımlanan renk değişkenleri yararlı olabilir:

export COLOR_NC='\e[0m' # No Color
export COLOR_WHITE='\e[1;37m'
export COLOR_BLACK='\e[0;30m'
export COLOR_BLUE='\e[0;34m'
export COLOR_LIGHT_BLUE='\e[1;34m'
export COLOR_GREEN='\e[0;32m'
export COLOR_LIGHT_GREEN='\e[1;32m'
export COLOR_CYAN='\e[0;36m'
export COLOR_LIGHT_CYAN='\e[1;36m'
export COLOR_RED='\e[0;31m'
export COLOR_LIGHT_RED='\e[1;31m'
export COLOR_PURPLE='\e[0;35m'
export COLOR_LIGHT_PURPLE='\e[1;35m'
export COLOR_BROWN='\e[0;33m'
export COLOR_YELLOW='\e[1;33m'
export COLOR_GRAY='\e[0;30m'
export COLOR_LIGHT_GRAY='\e[0;37m'

Ve sonra İstemim şöyle bir şeydir:

case $TERM in
     xterm*|rxvt*)
         local TITLEBAR='\[\033]0;\u ${NEW_PWD}\007\]'
          ;;
     *)
         local TITLEBAR=""
          ;;
    esac

local UC=$COLOR_WHITE               # user's color
[ $UID -eq "0" ] && UC=$COLOR_RED   # root's color

PS1="$TITLEBAR\n\[${UC}\]\u \[${COLOR_LIGHT_BLUE}\]\${PWD} \[${COLOR_BLACK}\]\$(vcprompt) \n\[${COLOR_LIGHT_GREEN}\]→\[${COLOR_NC}\] "  

$ (vcprompt), ~/sbin dosyamda geçerli yolla ilgili sürüm kontrol bilgilerini yazdıran bir python komut dosyası çağırıyor. Mercurial, Git, Svn, Cvs, vb. desteği içerir. betiğin kaynak burada vardır.

Bash Prompt screenshot

Komut İstemi yapılandırmamın tam kaynak değeri:

86
Kris

grep ve ls'den daha önce bahsedilmişti, eğer daha fazla renk kontrol etmek istiyorsanız Generic Coloriser , ilk amacı günlük dosyalarını renklendirmekti, ancak kutu ayrıca ping, traceroute, gcc, make, netstat, diff, last, ldap ve cvs.

Normal ifadeleri biliyorsanız kolayca genişletilebilir. Listeye ps ve nmap ekledim (grc içine girerseniz, bu iki araç için .conf dosyalarını paylaşmaktan memnuniyet duyarız)

(Btw, synaptic, pacman yoluyla yüklemek ve benzer şekilde "grc" yi aramak için daha iyi şansınız olabilir)

18
Sygo

Yıllar boyunca .bashrc'mi hem OSX hem de Ubuntu üzerinde çalıştım.
Ayrıca, kompakt durum ifadeleriyle boyutu 28 satıra indirdim.
Bununla PS1 İstemim şöyle görünüyor: enter image description here

zaman kırmızı, yeşil kullanıcı adı, açık mavi makine adı, koyu mavi pwd ve sarı git dalı.

Benim PS1 İstemi özelliği:

  • git şubesini gösterir!
  • uzun dizin yolları (6 öğeden fazla), ilk 3 ve alt 3 dizinleri o zamanlar arasında _ ile göstermek için 'kırpılır' (LOCATION pwd sed kısmı).
  • i̇stemi her zaman solda olacak şekilde satır sonunda geri dönün!

.bashrc Dosyamdaki ilgili satırlar:

git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; }
Host='\033[02;36m\]\h'; Host=' '$Host
TIME='\033[01;31m\]\t \033[01;32m\]'
LOCATION=' \033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"`'
BRANCH=' \033[00;33m\]$(git_branch)\[\033[00m\]\n\$ '
PS1=$TIME$USER$Host$LOCATION$BRANCH
PS2='\[\033[01;36m\]>'

Mevcut olduğunda renkleri olan ve olmadığında hata olmayan (yani OSX) için:

ls --color=al > /dev/null 2>&1 && alias ls='ls -F --color=al' || alias ls='ls -G'
12
Michael Durrant

adam sayfalarının renkleri ( daha fazla ayrıntı ):

function _colorman() {
  env \
    LESS_TERMCAP_mb=$(printf "\e[1;35m") \
    LESS_TERMCAP_md=$(printf "\e[1;34m") \
    LESS_TERMCAP_me=$(printf "\e[0m") \
    LESS_TERMCAP_se=$(printf "\e[0m") \
    LESS_TERMCAP_so=$(printf "\e[7;40m") \
    LESS_TERMCAP_ue=$(printf "\e[0m") \
    LESS_TERMCAP_us=$(printf "\e[1;33m") \
      "[email protected]"
}
function man() { _colorman man "[email protected]"; }
function perldoc() { command perldoc -n less "[email protected]" |man -l -; }

grep (1;32 parlak yeşil, diğer renkler için buradaki diğer gönderilere bakın):

GREP_OPTS='--color=auto'      # for aliases since $GREP_OPTIONS is deprecated
GREP_COLOR='1;32'             # (legacy) bright green rather than default red
GREP_COLORS="ms=$GREP_COLOR"  # (new) Matching text in Selected line = green
alias   grep='grep $GREP_OPTS'
alias egrep='egrep $GREP_OPTS'
alias fgrep='fgrep $GREP_OPTS'

GNU ls için daha fazla renk:

# use the config at ~/.dircolors if it exists, otherwise generate anew
eval "$( dircolors --sh $(ls -d ~/.dircolors 2>/dev/null) )"

# Usage: _ls_colors_add BASE NEW [NEW...]
# Have LS color given NEW extensions the way BASE extension is colored
_ls_colors_add() {
  local BASE_COLOR="${LS_COLORS##*:?.$1=}" NEW
  if [ "$LS_COLORS" != "$BASE_COLOR" ]; then
    BASE_COLOR="${BASE_COLOR%%:*}"
    shift
    for NEW in "[email protected]"; do
      if [ "$LS_COLORS" = "${LS_COLORS#*.$NEW=}" ]; then
        LS_COLORS="${LS_COLORS%%:}:*.$NEW=$BASE_COLOR:"
      fi
    done
  fi
  export LS_COLORS
}

_ls_colors_add Zip jar xpi            # archives
_ls_colors_add jpg ico JPG PNG webp   # images
_ls_colors_add ogg opus               # audio (opus now included by default)

CLICOLOR=1   # BSD auto-color trigger (like  ls -G  but for everything)
if ls -ld --color=auto / >/dev/null 2>&1
  then alias ls="ls -ph --color=auto"
  else alias ls="ls -ph"
fi

grc ( Generic Colouriser ) yükleyin ve takma adlarınıza ekleyin:

# using this as a variable allows easier calling down lower
export GRC='grc -es --colour=auto'

# loop through known commands plus all those with named conf files
for cmd in g++ head ld ping6 tail traceroute6 `locate grc/conf.`; do
  cmd="${cmd##*grc/conf.}"  # we want just the command
  # if the command exists, alias it to pass through grc
  type "$cmd" >/dev/null 2>&1 && alias "$cmd"="$GRC $cmd"
done

# This needs run-time detection. We even fake the 'command not found' error.
configure() {
  if [[ -x ./configure ]]; then
    colourify ./configure "[email protected]"
  else
    echo "configure: command not found" >&2
    return 127
  fi
}

# GRC plus LS awesomeness (assumes you have an alias for ls)
unalias ll 2>/dev/null
if ls -ld --color=always / >/dev/null 2>&1; then GNU_LS="--color=always"; fi

ll() {
  if [[ -t 1 ]] || [[ -n "$CLICOLOR_FORCE" ]]
    then colourify ls -l $GNU_LS "[email protected]"
    else ls -l "[email protected]"
  fi
}

Renkler diff : Bir işlev için çok fazla içerik, bir komut dosyası kullanın ve rc dosyanızda diğer adı kullanın (grc yüklediyseniz gereksizdir) ):

#!/usr/bin/Perl
use strict;
use warnings;

open (DIFF, "-|", "diff", @ARGV) or die $!;

my $ydiff = 1;
while (<DIFF>) {
  if (not -t 1) {
    print;
    next;
  }
  chomp;
  $ydiff = 0 if /^[ <>\@+-]/ or ($. == 1 && /^\d+[a-z]{1,5}\d+$/);
  my $color = "";
  if (! $ydiff && /^[\@+-<>]/) {
    $color = (/^[<-](?!--$)/ ? 1 : /^[+>]/ ? 2 : 5);
  } elsif ($ydiff && /\t {6}([<|>])(?:\t|$)/) {
    $color = ($1 eq "<" ? 1 : $1 eq ">" ? 2 : 4);
  }
  $color ? printf ("\e[1;3%dm%s\e[0;0m\n",$color,$_) : print "$_\n";
}
close DIFF;

bash İstemi için renkler:

# Shorten home dir, cygwin drives, paths that are too long
if [ -d /cygdrive ] && uname -a |grep -qi cygwin; then CYGWIN_OS=1; fi
function PSWD() {
  local p="$*" space A B cols="${COLUMNS:-`tput cols 2>/dev/null || echo 80`}"
  p="${p/$HOME/\~}"         # shrink home down to a tilde
  if [ -n "$CYGWIN_OS" ] && [ "${p#/cygdrive/?/}" != "$p" ]; then
    p="${p:10:1}:${p:11}"   # /cygdrive/c/hi -> c:/hi
  fi
  space="$((${#USER}+${#HOSTNAME}+6))"  # width w/out the path
  if [ "$cols" -lt 60 ]; then echo -n "$N "; space=-29; p="$p$N\b"; fi
  if [ "$cols" -lt "$((space+${#p}+20))" ]; then # < 20 chars for the command
    A=$(( (cols-20-space)/4 ))      # a quarter of the space (-20 for cmd)
    if [ $A -lt 4 ]; then A=4; fi   # 4+ chars from beginning
    B=$(( cols-20-space-A*2 ))      # half (plus rounding) of the space
    if [ $B -lt 8 ]; then B=8; fi   # 8+ chars from end
    p="${p:0:$A}..${p: -$B}"
  fi
  echo "$p"
}

PSC() { echo -ne "\[\033[${1:-0;38}m\]"; }
PR="0;32"       # default color used in Prompt is green
if [ "$(id -u)" = 0 ]; then
    Sudo=41     # root is red background
  Elif [ "$USER" != "${Sudo_USER:-$USER}" ]; then
    Sudo=31     # not root, not self: red text
  else Sudo="$PR"   # standard user color
fi
Prompt_COMMAND='[ $? = 0 ] && PS1=${PS1[1]} || PS1=${PS1[2]}'
PSbase="$(PSC $Sudo)\u$(PSC $PR)@\h $(PSC 33)\$(PSWD \w)"
PS1[1]="$PSbase$(PSC $PR)\$ $(PSC)"
PS1[2]="$PSbase$(PSC  31)\$ $(PSC)"
PS1="${PS1[1]}"
unset Sudo PR PSbase

demo of bash Prompt

9
Adam Katz

Kalın/renkli bir Bilgi İstemi ayarlayın. cyberciti.biz ve BashFAQ

# 'tput bold' will work regardless of the foreground and background colors.
# Place the tput output into variables, so they are only execd once.
bold=$(tput bold) # This could also be a color.
reset=$(tput sgr0)
export PS1="\[email protected]\[$bold\]\h\[$reset\]:\w \$ "

Ayrıca, yaygın olarak desteklenen ve gobbledygook karakterlerini eski ortamlarda (hatta FreeBSD4!) Yazdırmayan ve TERM = vt100, xterm, xterm-color ise iyi çalışıyor gibi görünen renk ayarlarını bulmayı başardım. (Çoğu kısım için). .Bashrc'den:

# Set some options, based on the OS
OS=`uname -s` 

case "$OS" in
    "SunOS" ) 
        # Solaris ls doesn't allow color, so use special characters
        LS_OPTS='-F'
        alias  ls='ls ${LS_OPTS}'
        ;;
    "Linux" )
        # GNU ls supports colors!
        # See dircolors to customize colors
        export LS_OPTS='--color=auto' 
        alias  ls='ls ${LS_OPTS}'

        # Get color support for 'less'
        export LESS="--RAW-CONTROL-CHARS"

        # Use colors for less, man, etc.
        [[ -f ~/.LESS_TERMCAP ]] && . ~/.LESS_TERMCAP

        export GREP_OPTIONS="--color=auto"

        ;;
    "Darwin"|"FreeBSD")

        # Most FreeBSD & Apple Darwin supports colors
        export CLICOLOR=true
        # Get color support for 'less'
        export LESS="--RAW-CONTROL-CHARS"

        # Use colors for less, man, etc.
        [[ -f ~/.LESS_TERMCAP ]] && . ~/.LESS_TERMCAP

        export GREP_OPTIONS="--color=auto"
        ;;
    * ) 
        echo "Unknown OS [$OS]"
        ;;
esac
8
Stefan Lasiewski

Ls komutu için renklerinizi ayarlamak için iyi bir araç var - http://geoff.greer.fm/lscolors/

5
Rob Cowell

Burada zaten söylenmemiş şeyler:

Derlemelerinizin çıktısını gcc ile renklendirmek için Johannes Schlüter tarafından colorgcc var

Günlükleri renklendirmek için çok kuyruklu

Herhangi bir stdout'u renklendirmek için bir araya getirdim xcol

xcol example

Ben şahsen xcol aracından kullanıyorum.

#normal=$(tput sgr0)                      # normal text
normal=$'\e[0m'                           # (works better sometimes)
bold=$(tput bold)                         # make colors bold/bright
red="$bold$(tput setaf 1)"                # bright red text
green=$(tput setaf 2)                     # dim green text
fawn=$(tput setaf 3); beige="$fawn"       # dark yellow text
yellow="$bold$fawn"                       # bright yellow text
darkblue=$(tput setaf 4)                  # dim blue text
blue="$bold$darkblue"                     # bright blue text
purple=$(tput setaf 5); Magenta="$purple" # Magenta text
pink="$bold$purple"                       # bright Magenta text
darkcyan=$(tput setaf 6)                  # dim cyan text
cyan="$bold$darkcyan"                     # bright cyan text
gray=$(tput setaf 7)                      # dim white text
darkgray="$bold"$(tput setaf 0)           # bold black = dark gray text
white="$bold$gray"                        # bright white text

Bu değişkenleri scriptlerimde böyle kullanıyorum

echo "${red}hello ${yellow}this is ${green}coloured${normal}"

Ben de bu küçük fonksiyonu colouredEcho (Stack Overflow üzerinde bulundu) gibi

function coloredEcho(){
    local exp=$1;
    local color=$2;
    if ! [[ $color =~ '^[0-9]$' ]] ; then
       case $(echo $color | tr '[:upper:]' '[:lower:]') in
        black) color=0 ;;
        red) color=1 ;;
        green) color=2 ;;
        yellow) color=3 ;;
        blue) color=4 ;;
        Magenta) color=5 ;;
        cyan) color=6 ;;
        white|*) color=7 ;; # white or invalid color
       esac
    fi
    tput setaf $color;
    echo $exp;
    tput sgr0;
}

coloredEcho "This text is green" green

Üzgünüz, daha fazla bağlantı yayınlanmasına izin verilmiyor

5
nachoparker

Kontrol etmenizi öneririm [~ # ~] zsh [~ # ~] ve eklentisi oh-my- Gördüğüm en güçlü konsol özelliklerinden birine sahip olan zsh . Bunlardan biri terminaliniz için tema seçmektir. Bu temamın bir örneğidir ... tty'de renkler çok sıcak değil ama bu resimdeki gibi aynılar ... Her şekilde seveceksiniz!

enter image description here

4
user92622

Diferansiyel çıktıyı renkli görüntülemek için colordiff kullanın.

Sudo apt-get install colordiff

Herhangi bir fark formatlı çıktıyı renklendirmeye ekleyin:

output of diff piped into colordiff

Bu, -y (Yan yana.) Gibi diff'nin alternatif formatlarından bazılarını içerir.

Alternatif olarak, bağımsız olarak çağrılırsa (içine herhangi bir şey konulmadan), 'fark' etrafında bir sargı görevi görür ve çıktıyı renklendirir. Bu yüzden benim .bashrc, colordiff 'diff' takma adı var.

# if colordiff is installed, use it
if type colordiff &>/dev/null ; then
    alias diff=colordiff
4
Jonathan Hartley

Komut İstemi'ni ayarlamak için bunu .bashrc dosyamda var.

#Set variables for foreground colors
fgRed=$(tput setaf 1)     ; fgGreen=$(tput setaf 2)  ; fgBlue=$(tput setaf 4)
fgMagenta=$(tput setaf 5) ; fgYellow=$(tput setaf 3) ; fgCyan=$(tput setaf 6)
fgWhite=$(tput setaf 7)   ; fgBlack=$(tput setaf 0)
#Set variables for background colors
bgRed=$(tput setab 1)     ; bgGreen=$(tput setab 2)  ; bgBlue=$(tput setab 4)
bgMagenta=$(tput setab 5) ; bgYellow=$(tput setab 3) ; bgCyan=$(tput setab 6)
bgWhite=$(tput setab 7)   ; bgBlack=$(tput setab 0)
#Set variables for font weight and text decoration
B=$(tput bold) ; U=$(tput smul) ; C=$(tput sgr0)
#NOTE: ${C} clears the current formatting

if [[ $USER = "root" ]]; then
  PS1="${B}${fgRed}\u${C}@\h(\s): ${fgGreen}\w${C} > "
else
  PS1="${B}${fgCyan}\u${C}@\h(\s): ${fgGreen}\w${C} > "
fi

Bu bana böyle bir şeye benzeyen bir İstem verir:

[email protected](bash): ~/bin >

Çalışma dizini yeşildir. Ve Shell'i Sudo ile çalıştırmadıkça kullanıcı adı kalın ve camgöbeği, bu durumda kullanıcı adı ("kök") kalın ve kırmızı görüntüler.

Ben şahsen biçimlendirme kontrol karakterleri değişkenlerde depolanan olması gibi çünkü istemi ayarlamak için kodu okuma yapar. Ayrıca İstemi düzenlemeyi çok daha kolay hale getirir.

tput kullanmamın nedeni, garip 033[01;31m\] dizileri. Ayrıca, bonus olarak, echo $PS1 İstemde, bu anlaşılmaz kontrol dizileri yerine renkler ile ham İstemi göreceksiniz.

3
Sildoreth

Kök ve kök olmayan Kabuk arasında kolayca ayrım yapmak için bazı metin süsleri (kalın). Zsh için:

if test $UID = 0
    then PS1="%B${PS1}%b "
fi

Bash için:

if test $UID = 0
    then PS1="\033[1m${PS1}\033[0m"
fi
3
Mischa Arefiev

Sadece aynı şeyi merak ettim. Kendi yaklaşımım var, ama alternatifler arıyorum.

Bash sarmalayıcıları program çağrılarının etrafına yazıyorum ve çıktılarını sed olsa da iletiyorum. sed hakkında ne gibi değişiklik ve hemen her satır yankı => fazla tamponlama olmasıdır. Ancak, sarılmış bir programa yapılan her çağrı için sed kodunun ayrıştırıldığını ve derlendiğini sevmiyorum.

Örneğin bu ip çıktısını renklendirmek için yaptığım şey:

#
# Colorcodes
#
NORMAL=`echo -e '\033[0m'`
RED=`echo -e '\033[31m'`
GREEN=`echo -e '\033[0;32m'`
LGREEN=`echo -e '\033[1;32m'`
BLUE=`echo -e '\033[0;34m'`
LBLUE=`echo -e '\033[1;34m'`
YELLOW=`echo -e '\033[0;33m'`


#
# command: ip
# highlight ip addresses, default route and interface names
#

IP4=$GREEN
IP6=$LBLUE
IFACE=${YELLOW}
DEFAULT_ROUTE=$LBLUE

IP_CMD=$(which ip)

function colored_ip()
{
${IP_CMD} [email protected] | sed \
    -e "s/inet [^ ]\+ /${IP4}&${NORMAL}/g"\
    -e "s/inet6 [^ ]\+ /${IP6}&${NORMAL}/g"\
    -e "s/^default via .*$/${DEFAULT_ROUTE}&${NORMAL}/"\
    -e "s/^\([0-9]\+: \+\)\([^ \t]\+\)/\1${IFACE}\2${NORMAL}/"
}

alias ip='colored_ip'
3
Bananguin

Cf'mi komut satırında dosya adı renklendirme için kullanabilirsiniz, bu borular aracılığıyla çalışan hızlı bir küçük awk tabanlı renklendirici - Truecolor sRGB'de dosya adlarını renklendirir.

Parlak renkli bir varsayılan yapılandırmaya sahiptir ve ls'den farklı olarak yeni renkler eklemek için performans cezası çekmez. (ls her özledim için LS_COLORS dizesinin tamamını taramalıdır).

https://github.com/AdamDanischewski/cf

cf usage

cf screenshot

2
A.Danischewski

Solarized'i faydalı buluyorum. Birçok uygulama için düzgün renklerle düzgün bir proje.

http://ethanschoonover.com/solarizedhttps://github.com/altercation/solarized

2
Vamsi

Komut çıktılarını renklendirmek için harika bir genel amaçlı Python aracı ' colout '

N grubu ile bir regex, ardından N renklerinin virgülle ayrılmış bir listesini verirsiniz. Bir grupla eşleşen tüm metinler ilgili renkte görüntülenir.

Örneğin, bazı test çıktılarına bakıyorsanız:

python -m unittest discover -v

Uncolored output of some Python unittests

o zaman ile ladin:

python -m unittest discover -v 2>&1 | colout '(.*ERROR$)|(.*FAIL$)|(\(.*\))' red,yellow,black bold

Colored output of some Python unittests

Normal ifademin üç gruba (parantez) ve ardından üç renge (ve isteğe bağlı olarak üç stile) sahip olduğunu görün, ancak tüm renkleri 'kalın' olarak ayarlamak için bir stenografi kullandım, böylece metni köşeli parantezlerle eşleşen 'siyah' grup , koyu gri olarak çıkıyor.)

Ayrıca, 2>&1 Python çağırma sonuna kadar, çünkü unittest çıktı stderr üzerinde, bu yüzden onu colout içine boru böylece stdout transfer.

Bu genellikle kullanımı o kadar kolaydır ki kendimi sık sık anında yeni colout çağrıları oluştururken ve bunları komut satırı geçmişimden yeniden kullanır veya değiştiririm.

Tek dezavantajı, bağımsız bir yürütülebilir dosya değil = Python paket olarak geliyor), bu yüzden pip kullanarak yüklemeniz gerekir veya Sudo python setup.py install.

2
Jonathan Hartley

Komut dosyası çıktısının renklendirilmesine yardımcı olan bir projeyi de deneyebilirsiniz, buna kaynak forge'de adı verilen ScriptEchoColor: http://scriptechocolor.sourceforge.net/

ex .:

echoc "@{lr}text output in light red"
echoc "@{bLGu}text outpus in blue, light green background and underlined"
echoc "you @{lr} can @{bLGu} mix @{-a} it all too"
echoc -x "ls" #executes ls command and colorizes it automatically to be easy to be seen

Otomatik renkler yapılandırılabilir.

Bu onunla yapılan bir örnektir: enter image description here

2
Aquarius Power

renk sarmalayıcı kullanıyorum.

cw, GNU/linux'daki yaygın unix tabanlı komutlar için müdahaleci olmayan gerçek zamanlı ANSI renk sarmalayıcıdır. cw, yürütülmekte olan komutların ortamını simüle etmek için tasarlanmıştır, böylece bir kişi Kabuğunda 'du', 'df', 'ping' vb. yazarsa, çıkışı bir tanıma göre gerçek zamanlı olarak otomatik olarak renklendirir istenen renk biçimini içeren dosya. cw, joker karakter renklendirme, tokenleştirilmiş renklendirme, üstbilgi/altbilgi, vaka senaryosu renklendirme, komut satırı bağımlı tanım renklendirme desteğine sahiptir ve önceden hazırlanmış 50'den fazla tanım dosyası içerir.

Neredeyse sorunsuz, ama bir kez interaktif Shell ps bir boru ps karşılaştırarak farklı çıktı döndürür bulundu.

1
user3132194

vim'nızı benim gibi renkli yapmak istiyorsanız, iki adımı izlemenizi öneririm:

  1. bu bağlantıyı izleyerek özelliği nasıl açacağınızı öğrenin: vi veya vim'de renk sözdizimi vurgulamayı aç .

bağlantıdaki önemli adımlar:

  1. ~/.Vimrc dosyasını şu komutu yazarak düzenleyin: vi ~/.vimrc

  2. Aşağıdaki seçeneği ekleyin: sözdizimi açık

  3. Dosyayı kaydedip kapatın

  4. Vim komutunu çalıştırarak test edin: vim foo.sh

  1. beğendiğiniz bir renk şeması bulun ve kullanın. Kullandığım şema: kullandığım şema
0
ZhaoGang

Alçakgönüllülükle reklam vermek istiyorum son yayınım /ta veya textattr , bir kütüphane ve komut- İnsan tarafından okunabilir özellikleri ANSI kaçış kodlarına çevirerek programınızın terminal çıktısını güzelleştirmek için renk ve nitelik eklemeyi amaçlayan çizgi aracı.

Örneğin:

echo "The Git repo $(ta yellow)${CUR_REPO}$(ta off) is $(ta green)up-to-date$(ta off)"

veya daha da kısa:

echo "The Git repo $(ta y)${CUR_REPO}$(ta f) is $(ta g)up-to-date$(ta f)"

veya bir alternatif:

tawrite "The Git repo " @y ${CUR_REPO} @f " is " @g up-to-date @f "\n"

size şöyle bir şey verecektir:

enter image description here

Şu anda bu kütüphane C, C++, D ve Python) favori Shell'in komut satırı kullanımı dışında dört dilde kullanılabilir.

Diğer programların çıktılarını otomatik olarak renklendirmediğini unutmayın. Oldukça abstruse kodlarını hatırlamak zorunda değil yardımcı bir yardımcı programdır. Sadece açık renk adlarını veya hatırlanması kolay rgb cmyk w(hite) (of) f kısaltmalar.

Daha fazla bilgi için textattr repo adresini ziyaret edin.

0
jamadagni

Mac için aşağıdakileri belirtildiği gibi kullanabilirsiniz here

if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi
0
doesnt_matter

Eğer bash seçiminizse, tavsiye ederim oh-my-bash . Eğer zsh seçiminizse, tavsiye ederim oh-my-zsh . Her ikisi de terminalinizin renklendirilmesini ve farklı çıkışları destekler.

0
TimWirtjes