хочу сюди!
 

Наташа

49 років, телець, познайомиться з хлопцем у віці 44-53 років

Замітки з міткою «zsh»

Удобства zsh

Z shell, zsh — одна из современных командных оболочек UNIX, может использоваться как интерактивная оболочка, либо как мощный скриптовой интерпретатор. Zsh является расширенным bourne shell с большим количеством улучшений.

К использованию zsh меня привел поиск удобного авто заполнения и поиска по истории. На FreeBSD, используя tсsh, я мог набирать множиство команд, они записывались в историю. Но занимаясь администрированием, вводить одно и тоже днями напролет надоедает и отнимает время. В tсsh реализовал фишку, в командной строке набираю
>find
и при нажатии стрелки вверх мне пречисляются разные варианты которые начинаются на find, выбираю с нужными ключами и только меняю искомое слово (набрал >cp и листаеш переход в нужный каталог и так с любыми словами и буквами, очень удобно). В Debian, используя оболочку tсsh, не смог это реализовать, поэтому перешел на zsh. В ней удалось реализовать и эту функцию и монго других полезностей.

Устанавливается
> aptitude install zsh

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

[root|194]:/etc/zsh> ls
итого 48K
4,0K ./   12K ../  4,0K zlogin  4,0K zlogout  4,0K zprofile  4,0K zshenv   12K zshrc  4,0K zshrc_orig

[root|194]:/etc/zsh> cp zlogin /home/sasha/.zlogin
и так все остальные по аналогиии

[root|194]:/home/sasha>mv .zhistory
незабудте сменить владельца (вместо root)

Далее пример своего zshrc

[root|194]:/etc/zsh>vi zshrc

# my config --------------------------------------------------------------------------

# поиск в истории команд
autoload -U predict-on
zle -N predict-on
zle -N predict-off
bindkey "^X^Z" predict-on # C-x C-z
bindkey "^Z" predict-off # C-z
#----------------------------------------

# Path для поиска командой cd: то есть вместо cd $HOME/docs/editors/
# можно набирать просто cd editors
cdpath=(~/media ~/docs)

## Установка нормального поведения клавиш Delete, Home, End и т.д.:
case $TERM in
        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
;;
*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 "^[[7~" beginning-of-line
bindkey "^[[8~" 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
;;
esac
# Примечание: если, скажем, в KDE для konsole
# выбрать тип Linux console, необходимости
# во второй секции нет.

# Use hard limits, except for a smaller stack and no core dumps
unlimit
limit stack 8192
limit core 0
limit -s

# Установка alias'ов

alias df='df -h'
alias du='du -s * -h'
alias ls='ls -ashF --color=auto'
alias ll='ls -al --color=auto'
alias host='host -av'

### вывод только каталогов
alias lsd='ls -ld *(-/DN)'

alias grep='grep --color=auto'

# Ниже даны опции, относящиеся к функциям zsh,
# которыми собственно и определяется мощь этой оболочки
# Shell functions
setenv() { typeset -x "${1}${1:+=}${(@)argv[2,$#]}" }  # csh compatibility
freload() { while (( $# )); do; unfunction $1; autoload -U $1; shift; done }

# Where to look for autoloaded function definitions
fpath=($fpath ~/.zfunc)

# Autoload all shell functions from all directories in $fpath (following
# symlinks) that have the executable bit on (the executable bit is not
# necessary, but gives you an easy way to stop the autoloading of a
# particular shell function). $fpath should not be empty for this to work.
for func in $^fpath/*(N-.x:t); autoload $func

# automatically remove duplicates from these arrays
typeset -U path cdpath fpath manpath

# Указание путей к man-страницам.
manpath="/usr/man:/usr/share/man:/usr/local/man:/usr/X11R6/man:/opt/qt/doc"
export MANPATH

# Установка вида приглашения
#(я использую раскоментированый вариант, закоментированны другие, пробуйте, какой вам милее), а так же можите #переделать под себя как цвета, так и символы.

## Обычное приглащение вида ~%=>
## (каталог от домашнего - пользователь/root - стрелка)
#Простой
#PROMPT='%T [%n@%m]%~%:> '
#Цветной

#PROMPT=$'%{\e[0;37m%}%T %{\e[0;32m%}%n%{\e[0;31m%}@%{\e[0;37m%}%m%{\e[0;31m%}:%{\e[0;39m%}%~%{\e[1;33m%}>%{\e[0m%} '

#PROMPT=$'%{\e[1;33m%}%T %{\e[0;36m%}[%{\e[0;32m%}%n%{\e[1;31m%}&%{\e[0;37m%}%m%{\e[0;36m%}]%{\e[0;36m%}:%{\e[0;33m%}%~%{\e[0;36m%}>%{\e[0m%} '

PROMPT=$'%{\e[0;32m%}%T %{\e[0;36m%}[%{\e[0;36m%}%n%{\e[0;32m%}|%{\e[0;39m%}%m%{\e[0;36m%}]%{\e[0;32m%}:%{\e[0;39m%}%~%{\e[0;36m%}>%{\e[0m%} '


#PROMPT=$'%{\e[0;32m%}%T %{\e[0;36m%}[%{\e[0;36m%}%n%{\e[0;33m%}*%{\e[0m%}%m%{\e[0;36m%}]%{\e[0;36m%}:%{\e[0;39m%}%~%{\e[0;36m%}>%{\e[0m%} '

## Приглашения для второй линии мноргострочных команд (я не использую, но можите раскоментировать)
## вида #_строки>
#PROMPT2='%~%#=> '
#PROMPT2='%i%U> '


## Приглашение с правой стороны экрана вида (я не использую, но можите раскоментировать)
## 19:15 vc/5 (время - номер консоли)
#RPROMPT=' %T %y%b'
#RPROMPT=' %y'

# Переменные

## файл истории команд
## если не указан, история не будет сохраняться
## при выходе из сеанса
HISTFILE=~/.zhistory

## Число команд, сохраняемых в HISTFILE
SAVEHIST=5000

## Чucлo koмaнg, coxpaняeмыx в сеансе
HISTSIZE=5000
## Примечание:
## рекомендуются равные значения для
## SAVEHIST и HISTSIZE

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

# ----- TetriS -----

autoload -U tetris
zle -N tetris
bindkey ^T tetris

#-------------------

# ----------- Completion Styles ----------

# list of completers to use
zstyle ':completion:*::::' completer _expand _complete _ignored _approximate

# allow one error for every three characters typed in approximate completer
zstyle -e ':completion:*:approximate:*' max-errors
#    'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) numeric )'

# insert all expansions for expand completer
zstyle ':completion:*:expand:*' tag-order all-expansions

# formatting and messages
zstyle ':completion:*' verbose yes
zstyle ':completion:*:descriptions' format '%B%d%b'
zstyle ':completion:*:messages' format '%d'
zstyle ':completion:*:warnings' format 'No matches for: %d'
zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b'
zstyle ':completion:*' group-name ''

# match uppercase from lowercase
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'

# offer indexes before parameters in subscripts
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters

# command for process lists, the local web server details and host completion
#zstyle ':completion:*:processes' command 'ps -o pid,s,nice,stime,args'
#zstyle ':completion:*:urls' local 'www' '/var/www/htdocs' 'public_html'
zstyle '*' hosts $hosts


#unalias run-help
autoload run-help