Скрипт быстрого просмотра толстого лога :) снизу mcview и кодировки
Создано: 02-06-2009 17:54:11 изменено: 18-12-2009 20:39:15  Метки: nano highlight bash

Выбор консольного редактора - дело весьма отвественное. Некоторым нравится vim, кому-то mcedit, мне приглянулся nano. Вот только подсветка синтаксиса шелл-скриптов по умолчанию у него весьма бедная. Вот пример моего файла подсветки, слегка переделаного:


egrep -v ''(^#|^$)'' ~/.nanorc
set autoindent
set brackets ""'')>]}"
set historylog
set matchbrackets "(<[{)>]}"
set noconvert
set suspend
include "/usr/share/nano/nanorc.nanorc"
include "/usr/share/nano/c.nanorc"
include "/usr/share/nano/html.nanorc"
include "/usr/share/nano/tex.nanorc"
include "/usr/share/nano/mutt.nanorc"
include "/usr/share/nano/patch.nanorc"
include "/usr/share/nano/man.nanorc"
include "/usr/share/nano/groff.nanorc"
include "/usr/share/nano/perl.nanorc"
include "/usr/share/nano/python.nanorc"
include "/usr/share/nano/ruby.nanorc"
include "/usr/share/nano/java.nanorc"
include "/usr/share/nano/asm.nanorc"
include "~/.sh.nanorc"
include "/usr/share/nano/pov.nanorc"


cat ~/.sh.nanorc
##
# расширение
syntax "sh" "\.sh$"
# устройства
color brightblue "(/dev/audio|/dev/dsp|/dev/mixed|/dev/null|/dev/stderr|/dev/stdin|/dev/stdout|/dev/zero)\>"
# названия функций
icolor brightmagenta "^[0-9A-Z_]+\(\)"
# скобки и разделители
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
# опции
color green "-[Ldefgruwx]\>"
# опции test
color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>;"
# ключевые слова
color brightred "\<(red|gpg|md5sum|openssl|ssh)\>;"
# ключевые слова (одна строка - надо удалять переносы)
color brightyellow "\<(alias|bg|break|case|clear|continue|declare|done|do|elif|else|esac|
eval|exec|exit|export|fg|fi|for|if|in|let|read|return|select|set|shift|source|then|trap|
umask|unset|until|wait|while)\>"
# переменные
icolor brightgreen "\$\{?[0-9A-Z_!@#$*?-]+\}?"
# ключевые слова (одна строка - надо удалять переносы)
color cyan "\<(apt-get|ar|arch|ash|awk|basename|bash|bg_backup|bg_restore|bsh|bzip|bzip2|
cam|cat|cd|cdda2wav|chgrp|chmod|chown|cmp|col|compress|cp|cpio|cpp|csh|curl|cut|date|dd|
df|dialog|diff|dirname|dmesg|dnsdomainname|doexec|domainname|dpkg|dpkg-buildpackage|
dpkg-scanpackages|dpkg-scansources|echo|ed|editor|egrep|ex|fakeroot|false|fdformat|
fetchmail|fgrep|find|formail|free|freeze|fsconf|gawk|gcc|gdb|grep|gunzip|gzip|ha|hostname|
igawk|insmod|ipcalc|iptables|jpegtopnm|kill|ksh|lame|less|lharc|lilo|linestart|linuxconf|
linux_logo|ln|locale|logger|login|lpdconf|ls|lynx|mail|man|mc|mcedit|mcview|mimedecode|
mkdir|mkdirhier|mkdosfs|mke2fs|mkfs.ext2|mkfs.ext3|mkfs.minix|mkfs.msdos|mkinitrd|mknod|
mktemp|modprobe|more|mount|mozilla|mp3info|msgfmt|mt|munpack|mutt|mv|netconf|netstat|nice|
nisdomainname|nm|patch|pinfo|ping|pnmscale|ppmtoxpm|procmail|ps|pwd|rar|red|remadmin|rename|
rm|rmdir|rmmod|rplay|rpm|rpm2cpio|sa-learn|sed|set|setserial|sh|sleep|sort|spamassassin|spamc|
spamd|ssmtp|strace|stty|su|sync|taper|tar|tcpdump|tcsh|tempfile|test|time|tnef|touch|tr|true|
tune2fs|umount|uname|unarj|uniq|unzip|uptime|userconf|usleep|vi|view|vim|wc|wget|whiptail|
wvWare|xconf|Xdialog|xgettext|xmessage|xmodmap|xterm|ypdomainname|zcat|zgv|zip|zoo|zsh)\>"
# текст в кавычках
color green ""(\\.|[^"])*"" "''(\\.|[^''])*''"
# комменты
color magenta "(^|[[:space:]])#.*$"
# конец пункта case
color brightred "\;\;"
# пробелы в конце строки
color ,green "[[:space:]]+$"

если нет расширения *.sh у файла, то вызывать так:
nano -Ysh /etc/init.d/gdm

2484 просмотров комментировать

Скрипт быстрого просмотра толстого лога :) снизу mcview и кодировки