Add zsh configuration sync system
- Add zshrc.template with full oh-my-zsh configuration - Add install-zsh-config.sh for complete installation - Add quick-install.sh for one-command installation - Add sync script for configuration updates - Include custom aliases and plugin configurations - Support for ansible, docker, terraform, kubernetes tools
This commit is contained in:
260
configuration/zsh/zshrc.template
Normal file
260
configuration/zsh/zshrc.template
Normal file
@@ -0,0 +1,260 @@
|
||||
# If you come from bash you might have to change your $PATH.
|
||||
# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH
|
||||
|
||||
# Path to your Oh My Zsh installation.
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
|
||||
# Set name of the theme to load --- if set to "random", it will
|
||||
# load a random theme each time Oh My Zsh is loaded, in which case,
|
||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
||||
ZSH_THEME="agnoster"
|
||||
|
||||
# Set list of themes to pick from when loading at random
|
||||
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
||||
# a theme from this variable instead of looking in $ZSH/themes/
|
||||
# If set to an empty array, this variable will have no effect.
|
||||
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
||||
|
||||
# Uncomment the following line to use case-sensitive completion.
|
||||
# CASE_SENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to use hyphen-insensitive completion.
|
||||
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||
# HYPHEN_INSENSITIVE="true"
|
||||
|
||||
# Uncomment one of the following lines to change the auto-update behavior
|
||||
# zstyle ':omz:update' mode disabled # disable automatic updates
|
||||
# zstyle ':omz:update' mode auto # update automatically without asking
|
||||
zstyle ':omz:update' mode reminder # just remind me to update when it's time
|
||||
|
||||
# Uncomment the following line to change how often to auto-update (in days).
|
||||
# zstyle ':omz:update' frequency 13
|
||||
|
||||
# Uncomment the following line if pasting URLs and other text is messed up.
|
||||
# DISABLE_MAGIC_FUNCTIONS="true"
|
||||
|
||||
# Uncomment the following line to disable colors in ls.
|
||||
# DISABLE_LS_COLORS="true"
|
||||
|
||||
# Uncomment the following line to disable auto-setting terminal title.
|
||||
# DISABLE_AUTO_TITLE="true"
|
||||
|
||||
# Uncomment the following line to enable command auto-correction.
|
||||
# ENABLE_CORRECTION="true"
|
||||
|
||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||
# You can also set it to another string to have that shown instead of the default red dots.
|
||||
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
|
||||
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
|
||||
# COMPLETION_WAITING_DOTS="true"
|
||||
|
||||
# Uncomment the following line if you want to disable marking untracked files
|
||||
# under VCS as dirty. This makes repository status check for large repositories
|
||||
# much, much faster.
|
||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||
|
||||
# Uncomment the following line if you want to change the command execution time
|
||||
# stamp shown in the history command output.
|
||||
# You can set one of the optional three formats:
|
||||
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||
# or set a custom format using the strftime function format specifications,
|
||||
# see 'man strftime' for details.
|
||||
# HIST_STAMPS="mm/dd/yyyy"
|
||||
|
||||
# Would you like to use another custom folder than $ZSH/custom?
|
||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||
|
||||
# Which plugins would you like to load?
|
||||
# Standard plugins can be found in $ZSH/plugins/
|
||||
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||
# Add wisely, as too many plugins slow down shell startup.
|
||||
plugins=(
|
||||
git
|
||||
docker
|
||||
docker-compose
|
||||
ansible
|
||||
terraform
|
||||
kubectl
|
||||
helm
|
||||
aws
|
||||
gcloud
|
||||
zsh-autosuggestions
|
||||
zsh-syntax-highlighting
|
||||
zsh-completions
|
||||
colored-man-pages
|
||||
command-not-found
|
||||
extract
|
||||
history-substring-search
|
||||
sudo
|
||||
systemd
|
||||
tmux
|
||||
vscode
|
||||
web-search
|
||||
z
|
||||
)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# User configuration
|
||||
|
||||
# export MANPATH="/usr/local/man:$MANPATH"
|
||||
|
||||
# You may need to manually set your language environment
|
||||
# export LANG=en_US.UTF-8
|
||||
|
||||
# Preferred editor for local and remote sessions
|
||||
if [[ -n $SSH_CONNECTION ]]; then
|
||||
export EDITOR='vim'
|
||||
else
|
||||
export EDITOR='vim'
|
||||
fi
|
||||
|
||||
# Compilation flags
|
||||
# export ARCHFLAGS="-arch $(uname -m)"
|
||||
|
||||
# =============================================================================
|
||||
# CUSTOM CONFIGURATION FOR MANAGEMENT SYSTEM
|
||||
# =============================================================================
|
||||
|
||||
# Load proxy configuration if exists
|
||||
if [[ -f /root/mgmt/configuration/proxy.env ]]; then
|
||||
source /root/mgmt/configuration/proxy.env
|
||||
fi
|
||||
|
||||
# Project management aliases
|
||||
alias mgmt='cd /root/mgmt'
|
||||
alias mgmt-status='cd /root/mgmt && ./mgmt.sh status'
|
||||
alias mgmt-deploy='cd /root/mgmt && ./mgmt.sh deploy'
|
||||
alias mgmt-cleanup='cd /root/mgmt && ./mgmt.sh cleanup'
|
||||
|
||||
# Ansible aliases
|
||||
alias ansible-check='cd /root/mgmt/configuration && ansible-playbook --syntax-check'
|
||||
alias ansible-deploy='cd /root/mgmt/configuration && ansible-playbook -i inventories/production/inventory.ini'
|
||||
alias ansible-ping='cd /root/mgmt/configuration && ansible -i inventories/production/inventory.ini all -m ping'
|
||||
|
||||
# OpenTofu/Terraform aliases
|
||||
alias tofu-init='cd /root/mgmt/tofu/environments/dev && tofu init'
|
||||
alias tofu-plan='cd /root/mgmt/tofu/environments/dev && tofu plan -var-file="terraform.tfvars"'
|
||||
alias tofu-apply='cd /root/mgmt/tofu/environments/dev && tofu apply -var-file="terraform.tfvars"'
|
||||
alias tofu-destroy='cd /root/mgmt/tofu/environments/dev && tofu destroy -var-file="terraform.tfvars"'
|
||||
alias tofu-output='cd /root/mgmt/tofu/environments/dev && tofu output'
|
||||
|
||||
# Docker aliases
|
||||
alias d='docker'
|
||||
alias dc='docker-compose'
|
||||
alias dps='docker ps'
|
||||
alias dpsa='docker ps -a'
|
||||
alias di='docker images'
|
||||
alias dex='docker exec -it'
|
||||
alias dlog='docker logs -f'
|
||||
alias dstop='docker stop'
|
||||
alias dstart='docker start'
|
||||
alias drm='docker rm'
|
||||
alias drmi='docker rmi'
|
||||
alias dclean='docker system prune -f'
|
||||
|
||||
# Docker Swarm aliases
|
||||
alias dswarm='docker swarm'
|
||||
alias dstack='docker stack'
|
||||
alias dservice='docker service'
|
||||
alias dnode='docker node'
|
||||
alias dnetwork='docker network'
|
||||
alias dsecret='docker secret'
|
||||
alias dconfig='docker config'
|
||||
|
||||
# Kubernetes aliases
|
||||
alias k='kubectl'
|
||||
alias kgp='kubectl get pods'
|
||||
alias kgs='kubectl get services'
|
||||
alias kgd='kubectl get deployments'
|
||||
alias kgn='kubectl get nodes'
|
||||
alias kdp='kubectl describe pod'
|
||||
alias kds='kubectl describe service'
|
||||
alias kdd='kubectl describe deployment'
|
||||
alias kaf='kubectl apply -f'
|
||||
alias kdf='kubectl delete -f'
|
||||
alias kl='kubectl logs -f'
|
||||
|
||||
# Git aliases
|
||||
alias gs='git status'
|
||||
alias ga='git add'
|
||||
alias gc='git commit'
|
||||
alias gp='git push'
|
||||
alias gl='git pull'
|
||||
alias gd='git diff'
|
||||
alias gb='git branch'
|
||||
alias gco='git checkout'
|
||||
alias gcom='git checkout main'
|
||||
alias gcod='git checkout develop'
|
||||
alias gst='git stash'
|
||||
alias gstp='git stash pop'
|
||||
|
||||
# System aliases
|
||||
alias ll='ls -alF'
|
||||
alias la='ls -A'
|
||||
alias l='ls -CF'
|
||||
alias ..='cd ..'
|
||||
alias ...='cd ../..'
|
||||
alias ....='cd ../../..'
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
|
||||
# Network aliases
|
||||
alias ports='netstat -tuln'
|
||||
alias myip='curl -s https://httpbin.org/ip | jq -r .origin'
|
||||
alias speedtest='curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3'
|
||||
|
||||
# Process aliases
|
||||
alias psg='ps aux | grep'
|
||||
alias top='htop'
|
||||
|
||||
# File operations
|
||||
alias cp='cp -i'
|
||||
alias mv='mv -i'
|
||||
alias rm='rm -i'
|
||||
alias mkdir='mkdir -pv'
|
||||
|
||||
# History configuration
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
HISTFILE=~/.zsh_history
|
||||
setopt HIST_VERIFY
|
||||
setopt SHARE_HISTORY
|
||||
setopt APPEND_HISTORY
|
||||
setopt INC_APPEND_HISTORY
|
||||
setopt HIST_IGNORE_DUPS
|
||||
setopt HIST_IGNORE_ALL_DUPS
|
||||
setopt HIST_REDUCE_BLANKS
|
||||
setopt HIST_IGNORE_SPACE
|
||||
|
||||
# Auto-completion configuration
|
||||
autoload -U compinit && compinit
|
||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
|
||||
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
||||
zstyle ':completion:*' menu select
|
||||
|
||||
# Key bindings
|
||||
bindkey '^[[A' history-substring-search-up
|
||||
bindkey '^[[B' history-substring-search-down
|
||||
bindkey '^[[1;5C' forward-word
|
||||
bindkey '^[[1;5D' backward-word
|
||||
|
||||
# Auto-suggestions configuration
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8'
|
||||
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
|
||||
|
||||
# Syntax highlighting configuration
|
||||
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor)
|
||||
|
||||
# Welcome message
|
||||
echo "🚀 Management System Shell Ready!"
|
||||
echo "📁 Project: /root/mgmt"
|
||||
echo "🔧 Available commands: mgmt-status, mgmt-deploy, mgmt-cleanup"
|
||||
echo "🐳 Docker: d, dc, dps, dex, dlog"
|
||||
echo "☸️ Kubernetes: k, kgp, kgs, kaf, kdf"
|
||||
echo "🏗️ OpenTofu: tofu-init, tofu-plan, tofu-apply"
|
||||
echo "⚙️ Ansible: ansible-check, ansible-deploy, ansible-ping"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user