-
-
Save IceCodeNew/7ba4b1f60ef3bf576703df796835bde9 to your computer and use it in GitHub Desktop.
K4YT3X Server/Community zshrc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # K4YT3X Public Server zshrc | |
| # Version 2020.01.13 | |
| # Licensed under the GNU General Public License Version 3 (GNU GPL v3), | |
| # available at: https://www.gnu.org/licenses/gpl-3.0.txt | |
| # (C) 2018-2020 K4YT3X | |
| # Gist Page: https://gist.github.com/k4yt3x/3b41a1a65f5d3087133e449793eb8858 | |
| # =========================== Global Variables | |
| # Add path for user with sudo | |
| export PATH=$PATH:/sbin | |
| # =========================== Aliases | |
| # Enhanced built-in commands | |
| alias a2='aria2c -x10' | |
| alias abs='realpath -e' | |
| alias c='clear' | |
| alias cl='cd && clear' | |
| alias clean='cat /dev/null > ~/.zsh_history' | |
| alias diffwatch='watch -n0 -d' | |
| alias get='wget --continue --tries=1 --connect-timeout=60 --read-timeout=300 --directory-prefix . --no-directories --no-background --progress=dot:default' | |
| alias ip6='ip -6' | |
| alias ipa='ip a | egrep --color=never -o "^[0-9]+: ([a-z0-9])+[0-9]*|.*link/(ether|loopback) ([a-zA-Z0-9]{2}:){5}[a-zA-Z0-9]{2}|.*inet ([0-9]{1,3}.){3}([0-9]{1,3}/[0-9]{1,2})|.*inet6 (([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/[0-9]{1,3}" | sed "s/link\/ether/Ethernet:/g" | sed "s/inet6/IPv6:/g" | sed "s/inet/IPv4:/g"' | |
| alias reload='exec "$SHELL"' | |
| # systemctl shortcuts | |
| alias start='sudo systemctl start' | |
| alias stop='sudo systemctl stop' | |
| alias restart='sudo systemctl restart' | |
| alias status='systemctl status' | |
| alias enable='sudo systemctl enable' | |
| alias disable='sudo systemctl disable' | |
| # Misc | |
| alias addkey='sudo apt-key adv --keyserver=hkp://keys.gnupg.net --recv' | |
| alias ccat='pygmentize -g' | |
| alias egrep='egrep --color' | |
| alias grep='egrep --color' | |
| alias ll='ls -l' | |
| alias sudo='sudo ' # preserve aliases when using sudo | |
| # Verbose output | |
| alias rm='rm -v' | |
| alias mv='mv -v' | |
| alias cp='cp -v' | |
| alias ln='ln -v' | |
| alias ssh='ssh -v' | |
| alias sftp='sftp -v' | |
| alias scp='scp -v' | |
| alias ping='ping -O' | |
| alias ping4='ping4 -O' | |
| alias ping6='ping6 -O' | |
| # Express edit | |
| alias vih='vim ~/.zsh_history' | |
| alias viz='vim ~/.zshrc' | |
| alias viv='vim ~/.vimrc' | |
| alias vir='sudo vim /etc/resolv.conf' | |
| # delete logs | |
| alias purge-histories='rm ~/.msf4/history ~/.cache/radare2/history ~/.bash_history ~/.python_history' | |
| alias purge-x='rm ~/.xfce4-session.verbose-log ~/.xfce4-session.verbose-log.last ~/.xsession-errors ~/.xsession-errors.old' | |
| # Pip update all | |
| alias pip2-update="python -m pip install -U pip && python -m pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 sudo python -m pip install -U" | |
| alias pip3-update="python3 -m pip install -U pip && python3 -m pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 sudo python3 -m pip install -U" | |
| # alias pip2-update="pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 sudo pip install -U" | |
| # alias pip3-update="pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 sudo pip3 install -U" | |
| # update sources.list | |
| alias update-sources='sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup && sudo curl https://files.flexio.org/.tools/sources.list -o /etc/apt/sources.list' | |
| # Services shortcut | |
| alias start-tftpd="sudo atftpd --daemon --no-fork --port 69 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /srv/tftp" | |
| # =========================== Custom Functions | |
| function ipinfo() { | |
| # If -s argument given await for stream input | |
| # otherwise query the first argument | |
| # If $1 is empty query current IP address | |
| if [[ $1 = "-s" ]] ; then | |
| /usr/bin/env python3 -c "import json,requests;print('\n'.join(['{0:15}{1}'.format(k.upper(), v) for k,v in json.loads(requests.get('https://ipinfo.io/$(cat /dev/stdin)').content).items()]))" | |
| else | |
| /usr/bin/env python3 -c "import json,requests;print('\n'.join(['{0:15}{1}'.format(k.upper(), v) for k,v in json.loads(requests.get('https://ipinfo.io/$1').content).items()]))" | |
| fi | |
| } | |
| # Update zshrc from server | |
| function update-zshrc() { | |
| curl https://gist.github.com/k4yt3x/3b41a1a65f5d3087133e449793eb8858/raw -o ~/.zshrc | |
| # If current shell is zsh, restart shell | |
| if [ '/usr/bin/zsh' = "$SHELL" ] || [ '/bin/zsh' = "$SHELL" ] ; then | |
| exec "$SHELL" | |
| fi | |
| } | |
| # =========================== Check Requirements | |
| # Antigen: https://github.com/zsh-users/antigen | |
| ANTIGEN="$HOME/.local/bin/antigen.zsh" | |
| # Install antigen.zsh if not exist | |
| if [ ! -f "$ANTIGEN" ]; then | |
| echo "Installing antigen ..." | |
| [ ! -d "$HOME/.local" ] && mkdir -p "$HOME/.local" 2> /dev/null | |
| [ ! -d "$HOME/.local/bin" ] && mkdir -p "$HOME/.local/bin" 2> /dev/null | |
| [ ! -f "$HOME/.z" ] && touch "$HOME/.z" | |
| URL="http://git.io/antigen" | |
| TMPFILE="/tmp/antigen.zsh" | |
| if [ -x "$(which curl)" ]; then | |
| curl -L "$URL" -o "$TMPFILE" | |
| elif [ -x "$(which wget)" ]; then | |
| wget "$URL" -O "$TMPFILE" | |
| else | |
| echo "ERROR: please install curl or wget before installation !!" | |
| exit | |
| fi | |
| if [ ! $? -eq 0 ]; then | |
| echo "\nERROR: downloading antigen.zsh ($URL) failed !!" | |
| exit | |
| fi; | |
| echo "move $TMPFILE to $ANTIGEN" | |
| mv "$TMPFILE" "$ANTIGEN" | |
| fi | |
| # Check git | |
| if ! [ -x "$(which git)" ]; then | |
| echo "ERROR: Please install git" | |
| exit | |
| fi | |
| # =========================== Initialize Antigen and Plugins | |
| # command prompt | |
| # blue prompt for root | |
| a=$(id|awk -F\( '{print $1}') | |
| if [ "$a" = "uid=0" ] | |
| then | |
| # for root | |
| export PS1='%F{240}[%*] %F{33}%n%F{white}%#%F{240}%m%F{blue}[%~]%F{white}> ' | |
| else | |
| # for other users | |
| export PS1='%F{240}[%*] %F{11}%n%F{white}%#%F{240}%m%F{yellow}[%~]%F{white}> ' | |
| fi | |
| # Enable 256 color to make auto-suggestions look nice | |
| export TERM="xterm-256color" | |
| # Load local bash/zsh compatible settings | |
| _INIT_SH_NOFUN=1 | |
| [ -f "$HOME/.local/etc/init.sh" ] && source "$HOME/.local/etc/init.sh" | |
| # exit for non-interactive shell | |
| [[ $- != *i* ]] && return | |
| # WSL (aka Bash for Windows) doesn't work well with BG_NICE | |
| [ -d "/mnt/c" ] && [[ "$(uname -a)" == *Microsoft* ]] && unsetopt BG_NICE | |
| # Initialize antigen | |
| source "$ANTIGEN" | |
| # Initialize oh-my-zsh | |
| antigen use oh-my-zsh | |
| # default bundles | |
| # visit https://github.com/unixorn/awesome-zsh-plugins | |
| antigen bundle git | |
| # antigen bundle heroku | |
| antigen bundle pip | |
| antigen bundle svn-fast-info | |
| # antigen bundle command-not-find | |
| antigen bundle colorize | |
| antigen bundle github | |
| antigen bundle python | |
| antigen bundle rupa/z z.sh | |
| # antigen bundle z | |
| antigen bundle zsh-users/zsh-autosuggestions | |
| antigen bundle zsh-users/zsh-completions | |
| # antigen bundle supercrabtree/k | |
| antigen bundle Vifon/deer | |
| # uncomment the line below to enable theme | |
| #antigen theme bureau | |
| # check login shell | |
| if [[ -o login ]]; then | |
| [ -f "$HOME/.local/etc/login.sh" ] && source "$HOME/.local/etc/login.sh" | |
| [ -f "$HOME/.local/etc/login.zsh" ] && source "$HOME/.local/etc/login.zsh" | |
| fi | |
| # syntax color definition | |
| ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) | |
| typeset -A ZSH_HIGHLIGHT_STYLES | |
| # ZSH_HIGHLIGHT_STYLES[command]=fg=white,bold | |
| # ZSH_HIGHLIGHT_STYLES[alias]='fg=magenta,bold' | |
| ZSH_HIGHLIGHT_STYLES[default]=none | |
| ZSH_HIGHLIGHT_STYLES[unknown-token]=fg=009 | |
| ZSH_HIGHLIGHT_STYLES[reserved-word]=fg=009,standout | |
| ZSH_HIGHLIGHT_STYLES[alias]=fg=cyan,bold | |
| ZSH_HIGHLIGHT_STYLES[builtin]=fg=cyan,bold | |
| ZSH_HIGHLIGHT_STYLES[function]=fg=cyan,bold | |
| ZSH_HIGHLIGHT_STYLES[command]=fg=white,bold | |
| ZSH_HIGHLIGHT_STYLES[precommand]=fg=white,underline | |
| ZSH_HIGHLIGHT_STYLES[commandseparator]=none | |
| ZSH_HIGHLIGHT_STYLES[hashed-command]=fg=009 | |
| ZSH_HIGHLIGHT_STYLES[path]=fg=214,underline | |
| ZSH_HIGHLIGHT_STYLES[globbing]=fg=063 | |
| ZSH_HIGHLIGHT_STYLES[history-expansion]=fg=white,underline | |
| ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=none | |
| ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=none | |
| ZSH_HIGHLIGHT_STYLES[back-quoted-argument]=none | |
| ZSH_HIGHLIGHT_STYLES[single-quoted-argument]=fg=063 | |
| ZSH_HIGHLIGHT_STYLES[double-quoted-argument]=fg=063 | |
| ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]=fg=009 | |
| ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]=fg=009 | |
| ZSH_HIGHLIGHT_STYLES[assign]=none | |
| # load local config | |
| [ -f "$HOME/.local/etc/config.zsh" ] && source "$HOME/.local/etc/config.zsh" | |
| [ -f "$HOME/.local/etc/local.zsh" ] && source "$HOME/.local/etc/local.zsh" | |
| # enable syntax highlighting | |
| antigen bundle zsh-users/zsh-syntax-highlighting | |
| antigen apply | |
| # setup for deer | |
| autoload -U deer | |
| zle -N deer | |
| # default keymap | |
| bindkey -s '\ee' 'vim\n' | |
| bindkey '\eh' backward-char | |
| bindkey '\el' forward-char | |
| bindkey '\ej' down-line-or-history | |
| bindkey '\ek' up-line-or-history | |
| # bindkey '\eu' undo | |
| bindkey '\eH' backward-word | |
| bindkey '\eL' forward-word | |
| bindkey '\eJ' beginning-of-line | |
| bindkey '\eK' end-of-line | |
| bindkey -s '\eo' 'cd ..\n' | |
| bindkey -s '\e;' 'll\n' | |
| bindkey '\e[1;3D' backward-word | |
| bindkey '\e[1;3C' forward-word | |
| bindkey '\e[1;3A' beginning-of-line | |
| bindkey '\e[1;3B' end-of-line | |
| bindkey '\ev' deer | |
| # options | |
| unsetopt correct_all | |
| setopt BANG_HIST # Treat the '!' character specially during expansion. | |
| setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits. | |
| setopt SHARE_HISTORY # Share history between all sessions. | |
| setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history. | |
| setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again. | |
| setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate. | |
| setopt HIST_FIND_NO_DUPS # Do not display a line previously found. | |
| setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space. | |
| setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file. | |
| setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry. | |
| setopt HIST_VERIFY # Don't execute immediately upon history expansion. | |
| # =========================== File and Configuration Sourcing | |
| # source function.sh if it exists | |
| [ -f "$HOME/.local/etc/function.sh" ] && . "$HOME/.local/etc/function.sh" | |
| # ignore complition | |
| zstyle ':completion:*:complete:-command-:*:*' ignored-patterns '*.pdf|*.exe|*.dll' | |
| zstyle ':completion:*:*sh:*:' tag-order files | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment