Сегодня я хотел бы рассказать вам о такой shell оболочке как zsh. Мне эта оболочка нравится своим удобством и функциональностью, да и стандартный bash скучноват как то.
Устанавливается
apt-get install zsh
Cразу делаем его по умолчанию вашей оболочкой, заходим в /etc/passwd находим строчку с вашим логином и меняем /bin/bash на /bin/zsh
В домашнем нужно создать конфиг файлы. Я просто копировал из рутовых добавляя точку
cp /etc/zsh/zlogin /home/user/.zlogin
копировать нужно файлы приведённые ниже:

и так все остальные по аналогиии
меняем владельца вместо root для всех скопированных файлов
sudo chown user .zlogin
Постовой: В качестве обоев на рабочий стол идеально подойдёт фото пантеры.
Далее пример своего 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
Всё, работа сделана, теперь можете насладиться такими удобствами как набор команд сохранившихся в истории по первым буквам (добивать стрелками) и плюс раскрашенным приглашением, и еще много, много опций которые можно настроить индивидуально под свои вкусы.
К записи "ZSH как замена стандартному bash" пока нет комментариев