Где-то неделю назад познакомился с этой зашибенной командной оболочкой. Сделал chsh -s /bin/zsh видать надолго 8)
zsh - замечательная командная оболочка, основной фишкой которой является развитый алгоритм автодополнения, притом - удобно расширяемый. Вобщем - в отличии от bash, zsh более направлена в сторону эффективной и быстрой работы с командной строкой.
Но в ней присутствовал один неприятный момент - в xterm криво работающие клавиши "Home", "End", я это исправил, вобщем - всё написано в конфиге
Общесистемный конфиг для zsh
/etc/zsh/zshrc
#
# /etc/zsh/zshrc by NETZMB
#
# прототип:
# http://www.freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety&
#
#
# менюобразная подсветка вариантов окончаний
#
zmodload zsh/complist
zstyle ':completion:*' menu yes select
#
# чтобы видеть все процессы для kill или killall
#
zstyle ':completion:*:processes' command 'ps -xuf'
zstyle ':completion:*:processes' sort false
zstyle ':completion:*:processes-names' command 'ps xho command'
#
# Настройка приглашения оболочки
# тема приглашения
#
autoload promptinit
promptinit
prompt gentoo
#
# Автодополнение имени хоста для SSH
#
if [ -e $HOME/.ssh/known_hosts ] ; then
hosts=(${${${(f)"$(<$HOME/.ssh/known_hosts)"}%%\ *}%%,*})
zstyle ':completion:*:hosts' hosts $hosts
fi
#
# Установка нормального поведения клавиш Delete, Home, End и т.д.:
#
case $TERM in
#
# для системной консоли (/dev/tty*)
#
linux|screen|screen.linux)
bindkey "^[[2~" yank
bindkey "^[[3~" delete-char
bindkey "^[[5~" up-line-or-history
bindkey "^[[6~" down-line-or-history
bindkey "^[[1~" beginning-of-line
bindkey "^[[4~" end-of-line
bindkey "^[e" expand-cmd-path # C-e for expanding path of typed command
bindkey "^[[A" up-line-or-search # up arrow for back-history-search
bindkey "^[[B" down-line-or-search # down arrow for fwd-history-search
bindkey " " magic-space # do history expansion on space
;;
#
# для X-терминалов
#
*xterm*|rxvt|(dt|k|E)term)
bindkey "^[[2~" yank
bindkey "^[[3~" delete-char
bindkey "^[[5~" up-line-or-history
bindkey "^[[6~" down-line-or-history
bindkey "^[[H" beginning-of-line # Клавиша Home
bindkey "^[[F" end-of-line # Клавиша End
bindkey "^E" expand-cmd-path # C-e добавляет к набираемой команде её
# абсолютный путь
# т.е. например, ls заменяется на /bin/ls.
# Действует аналогично команде `which ls`
bindkey "^[[A" up-line-or-search # Стрелка-вверх, пройтись назад по
# истории введённых команд
bindkey "^[[B" down-line-or-search # Стрелка-вверх, пройтись вперёд по
# истории введённых команд
bindkey " " magic-space ## do history expansion on space
;;
esac
# Примечание: если, скажем, в KDE для konsole
# выбрать тип Linux console, необходимости
# во второй секции нет.
#
# Убираем повторяющиеся каталоги из путей подстановки файлов
# при автодополнениях
#
typeset -U path cdpath fpath manpath
# Список хостов, к которым будет применяться автодополнение
# при наборе в командной строке
# Например, как аргументов браузера или ftp-клиента (см. man zstyle)
hosts=('hostname' sky.eth.net modem.eth.net ap1.eth.net wf-vaio.neb.net)
# Число команд, сохраняемых в файл истории введеных команд (HISTFILE)
SAVEHIST=500
# Чucлo koмaнg, coxpaняeмыx в сеансе
HISTSIZE=500
# максимальный размер стека каталогов
DIRSTACKSIZE=20
#
# Опции истории команд:
# Дописывание файла истрии
setopt APPEND_HISTORY
# Игнopupoвaть вce пoвтopeнuя команд
setopt HIST_IGNORE_ALL_DUPS
# Игнopupoвать лишние пpoбeлы
setopt HIST_IGNORE_SPACE
# Удалять из файла истории пустые строки
setopt HIST_REDUCE_BLANKS
Личные настройки пользователя zsh:
~/zshrc
#
# ~/zshrc by NETZMB
#
# включаем подстветку типов файлов для ls и делаем команду "ls"
# более "говорливой"
#
alias ls='ls --color'
alias cp='cp --verbose'
#
# Устанавливаем личные лимиты использования ресурсов компьютера
# дабы предотвратить заполнение системных каталогов ненужными
# файлами дампов аварийно завершившихся программ, а также предотвратить
# неконтролируемое потребление ресурсов компа кривой программой, или даже
# предупредить локальную DDoS атаку
#
limit stack 8192 # лимит объёма памяти, выделеной под стек.
# помогает от переполнения стека
limit core 0 # Выключаем запись файлов-дампов упавших программ
umask 022 # Установка атрибутов доступа для вновь создаваемых файлов
# В данном случае - rw-r--r--
#
# Каталоги, именованные для быстрого доступа к ним по короткой метке
# (например, здесь - вместо того, чтобы набирать
# /var/local/misc/dosemu-root/root/src/sto-ed/bin/tex, можно просто написать
# ~prc )
#
hash -d prc=/var/local/misc/dosemu-root/root/src/sto-ed/bin/tex
И ещё - если Вы в момент набора команды нажали клавишу Escape, то командная строка zsh начинает себя вести как редактор vi. Вобщем, если это Вам не нужно, то просто нажмите Ctrl+C, после чего zsh вернёт Вам контроль над историей ком. строки и проч.
Советую почитать, даже если вы не использовали zsh ранее (мой конфиг частично был содран оттуда) :Советы по настройке zsh
PS: пока это то, на что хватило времени написать. Остальное - чуть позже
пʼятниця, 16 травня 2008 р.
zsh forever
Підписатися на:
Дописати коментарі (Atom)
4 коментарі:
Немного исправил и причесал выставленные конфиги, в частности - исправил /etc/zsh/zshrc для норм. работы с клавишами в системной консоли через screen.
А также - багацько мелких стилистических поправок.
PS: коплю скриншоты работы, возможно вскоре появится краткое введение в zsh
а краткое введение давай, почитаемс
2 bak1an
Обязательно! Покаместь разгребусь с наплывшей работой и залабаю
Добавил проверку на наличие файла с хостами ssh, т.к. при отсутствующем файле .ssh/known_hosts скрипт /etc/zsh/zshrc не выполнялся до конца.
В общем, FIXED
Дописати коментар