Zsh (Z Shell) — мощная командная оболочка, которая превосходит bash по функциональности и возможностям настройки. С правильной конфигурацией Zsh превращается из простого терминала в полноценную рабочую среду.
sudo pacman -S zsh
sudo apt install zsh
sudo dnf install zsh
Oh My Zsh — фреймворк для управления конфигурацией Zsh с сотнями плагинов и тем.
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Или через wget:
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
Самая популярная тема с мощными возможностями кастомизации:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
В ~/.zshrc:
ZSH_THEME="powerlevel10k/powerlevel10k"
Запустите конфигуратор:
p10k configure
Классическая тема с информацией о git-ветке:
ZSH_THEME="agnoster"
Простая и информативная тема:
ZSH_THEME="bira"
Тема по умолчанию, минималистичная:
ZSH_THEME="robbyrussell"
Встроенный плагин для работы с git:
plugins=(git)
Добавляет алиасы:
gst → git statusgco → git checkoutgcm → git commitgp → git pushАвтодополнение на основе истории:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
В ~/.zshrc:
plugins=(... zsh-autosuggestions)
Подсветка синтаксиса команд:
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
В ~/.zshrc:
plugins=(... zsh-syntax-highlighting)
Дополнительные автодополнения:
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:=~/.oh-my-zsh/custom}/plugins/zsh-completions
В ~/.zshrc:
plugins=(... zsh-completions)
Пример ~/.zshrc:
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# Theme
ZSH_THEME="powerlevel10k/powerlevel10k"
# Plugins
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
zsh-completions
docker
kubectl
npm
yarn
)
source $ZSH/oh-my-zsh.sh
# User configuration
export EDITOR='nano'
export LANG=en_US.UTF-8
# Алиасы
alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'
alias ..='cd ..'
alias ...='cd ../..'
alias grep='grep --color=auto'
# NVM (Node Version Manager)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# Pyenv (Python Version Manager)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
Добавьте в ~/.zshrc:
# Системные
alias update='sudo pacman -Syu'
alias install='sudo pacman -S'
alias remove='sudo pacman -Rns'
alias search='pacman -Ss'
# Git
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline'
# Docker
alias dps='docker ps'
alias di='docker images'
alias dex='docker exec -it'
# Navigational
alias home='cd ~'
alias documents='cd ~/Documents'
alias downloads='cd ~/Downloads'
# Разное
alias ip='ip addr show'
alias ports='netstat -tulanp'
alias weather='curl wttr.in'
Улучшенная история в ~/.zshrc:
# История команд
HISTSIZE=10000
SAVEHIST=10000
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_FIND_NO_DUPS
setopt SHARE_HISTORY
Используйте Ctrl+R для поиска по истории команд. Для ещё более быстрого поиска установите fzf:
sudo pacman -S fzf
Добавьте в ~/.zshrc:
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
Теперь используйте Ctrl+R для интерактивного поиска.
plugins=(... docker docker-compose)
plugins=(... kubectl)
plugins=(... npm yarn nvm)
plugins=(... python pip)
Отключите тяжёлые плагины или используйте zsh-defer для ленивой загрузки:
git clone https://github.com/romkatv/zsh-defer.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-defer
Убедитесь, что плагины установлены в правильной директории:
ls ~/.oh-my-zsh/custom/plugins/
Запустите Zsh без конфигурации для отладки:
zsh --no-rcs
.zshrc перед изменениямиАвтор: ordanax.github.io
Telegram: @linux4at
MAX: Присоединиться
Комментарии