Выбор консольного редактора - дело весьма отвественное. Некоторым нравится 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