color console

Изображение пользователя ramok.

Подсветка потока ошибок в zsh

Tags: •  •  • 

Часто сообщения об ошибках теряются в общем потоке вывода данных, и их хотелось бы как нибуть выделять. Тут опять пригодятся глобальные алиасы zsh.

Добавим в ~/.zshrc

autoload colors # подключим цвета
colors

alias -g  HE='2>>( sed -ue "s/.*/$fg_bold[red]&$reset_color/" 1>&2 )' # Highlight Errors

После перезагрузки zsh у нас появится глобальный алиас HE который можно использовать на ряду с другими фильтрами. Алиас запускает в фоне sed который подсвечивает строки, и перенаправляет ему в на выход стандартный поток ошибок

Пример работы: мы хотим найти в /etc все файлы в названии которых есть zsh и при этом подсветить в каких каталогах поиск не удался.

Пояснения: строка

$ find /etc HE GI zsh

Развернется в
find /etc 2>>( sed -ue "s/.*/$fg_bold[red]&$reset_color/" 1>&2 ) | grep -i zsh

Глобальный алиас GI описан здесь.
Подсведка результатов grep описана здесь

BUGS: алиас запускает асинхронный процесс подсведки цветов, что обозначает что подсвеченые ошибки могут выводится не синхронно с потоком стандартного вывода.

PS
Для пользователей bash существует полезный скрипт по подсвечиванию потока ошибок для программы переденной как параметр.

Изображение пользователя ramok.

Просмотр diff из потока в цвете

Tags: •  •  •  •  •  •  •  • 

Часто приходится смотреть diff не из файла, а из потока, например сформированный командой cvs diff или svn diff. Удобно в таком случае просматривать в цвете в vim, не записывая в файл, а прямо в потоке.

наример:
svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/kdelibs/kdecore/
cd kdecore
svn diff -r 181258:183456 kglobalaccel_x11.cpp | vim -

diff покажется красиво раскрашенным Ж:-)

PS

подсветка текста в консоли

Tags: •  •  •  •  •  •  •  • 
Иногда хочется пропустить текст через такой фильтр, как grep, но чтобы он только подсветил совпадения, а не вырезал строки с ними. Можно использовать вот такую функцию, которую безболезненно можно добавить в ваш конфигурационный файл оболочки:
function hilight 
{ 
        ESC=`echo -e "\033"` 

        COLORON="$ESC[1;33m" 
        COLOROFF="$ESC[1;0m" 

        if [ -z "$1" ] ; then 
                echo "Usage: hilight 'regex' [file1 file2 ...]" 1>&2; 
                return 1 
        fi 

        REGEX="$1" 
        shift 

        sed -e "s/${REGEX}/${COLORON}&${COLOROFF}/g" $* 
}
Изображение пользователя alexu.

Цветной gcc, make, и diff

Tags: •  •  •  • 

раз уж пошел разговор о цветах, то установив цветные фантики, можно также установить цветной gcc, make, и diff.
устанавливается пакетами:

colorgcc, colormake, colordiff

вызывается тоже с аналогичными именами. Мануалы пакетов содержат информацию о том, как перенастроить систему на использование данных оберток по умолчанию.

Изображение пользователя ramok.

Цветной вывод команд в консоли

Tags: •  • 

Устали от черно серого терминала(вариант: черно зеленого Ж:-)? Можно порадовать себя всевозможными способами в буквальном смысле разукрасить свою жизнь в консоли. Но как обычно этого может быть мало, и как всегда найдется человек доведший идею до мараз^W логического конца Ж:-)

Этот набор врапперов над более чем 80 самыми расспространенными программами(df, ping, gcc... так же наиболее часто используемыми файлами /etc/fstab, /var/log/messages...) который разукрашивает вывод этих команд в косоли. Читаем дальше...

Как раскрасить приглашения bash

Tags: •  •  •  •  • 
Заносится в ~/.bashrc. При выполнении su root меняются цвета.
COLOR1="\[\033[0;36m\]"
COLOR2="\[\033[0;33m\]"
COLOR3="\[\033[0;38m\]"
COLOR4="\[\033[0;32m\]"

if [ "$UID" = 0 ]; then
    # I am root
    COLOR2="\[\033[0;31m\]"
    PS1="$COLOR1[$COLOR1\u$COLOR2@$COLOR1\h$COLOR2:$COLOR4\W$COLOR1]$COLOR2# $COLOR3"
else
    PS1="$COLOR1[$COLOR1\u$COLOR2@$COLOR1\h$COLOR2:$COLOR4\W$COLOR1]$COLOR2\$ $COLOR3"
fi
Изображение пользователя ramok.

расцветка имен файлов при автодолнении в zsh

Tags: •  •  •  •  •  • 

добавте в ~/.zshrc

eval `dircolors`
zstyle ':completion:*:default' list-colors "${(s.:.)LS_COLORS}"

теперь например при
$ cd /[TAB]
выведутся варианты имен файлов в цвете

цвета будут такие же как и при ls --color

если хотите настроить свои цвета то читаем
man dircolors
man 5 dir_colors

Вот более портируемый вариант, который будет работать и в *BSD системах где dircolors нет
[code]
if which dircolors > /dev/null; then
eval `dircolors`
else
LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:"
LS_COLORS="${LS_COLORS}or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:"
LS_COLORS="${LS_COLORS}*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:"

Изображение пользователя ramok.

подсветка результатов работы grep

Tags: •  •  •  • 
GNU grep имеет удобную возможность подсвечивать цветом найденный паттерн добавте это в ~/.bashrc или ~/.zshrc
GREP_OPTIONS='--color=auto'
#GREP_COLOR='5;38' #мигающий
GREP_COLOR='1;33' #ярко-желный на черном
export GREP_OPTIONS GREP_COLOR

ls | less в цвете

Tags: •  •  • 

Чтобы содержимое большого каталога показывалось в цвете и при использовании less, можно воспользоваться следующей командой: ls --color | less -R.

Пояснение: --color нужно чтобы ls включило поддержку цвета несмотря на то, что его stdout - не терминал. Опция -R заставляет less не перехватывать ESC-последовательности, управляющие цветом, а передавать их дальше, так что они обрабатываются драйвером консоли и приводят к правильному результату.

PS. Можно создать соответствующий скрипт или, например, функцию в bash:

l() { ls --color "$@" | less -R; }

Тогда можно вызывать l -l для получения ls -l в цвете с прокруткой.

alias и функции, как средство настройки оболочки по себя

Tags: •  •  •  •  • 

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

RSS-материал