Сегодня я хотел бы рассказать вам о такой 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

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

Понравилось? Поделись с друзьями!