# 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 ""