iax icon

.bash_aliases

iax | PRO | 10/20/23 02:55:36 AM UTC (Edited) | 0 ⭐ | 643 👁️ | Never ⏰ | []
Bash |

12.19 KB

|

None

|

0 👍

/

0 👎

#!/bin/bash
# Source  it: . <(curl -sL bit.ly/30ZJST0 | tr -d "\r") # https://pastebin.com/raw/TbamnpNy
# Install it: curl -sL bit.ly/30ZJST0 | tr -d "\r" > ~/.bash_aliases && . ~/.bash_aliases; grep -q '\. ~/.bash_aliases' ~/.bashrc || echo '[[ -f ~/.bash_aliases ]] && . ~/.bash_aliases' >> ~/.bashrc
 
# echo '[ "$USER" == "root" -a "$SUDO_USER" == "jopina" ] && . ~/.profile' >> ~/.bashrc
# "&:?:??:[bf]g:[ \t]*:cd -:exit:pwd:clear:date:* --help:* -h:*sudo -S*"
export HISTIGNORE="[bf]g:[ \t]*:ll:ls:cd -:exit:pwd:clear:date:*sudo -S*"
export HISTTIMEFORMAT="%h %d %H:%M:%S> "
export HISTCONTROL=ignoredups
export EDITOR=vim
# Navigation
alias cd-='cd -'
alias cd..='cd ..'
alias ..='cd ..'
alias ...='cd ../../'
alias .2='cd ../../'
alias .3='cd ../../../'
alias .4='cd ../../../../'
alias .5='cd ../../../../../'
alias cd='f(){ \cd "$@"; grep -q "^$PWD$" ~/.cd_history &>/dev/null || echo "$PWD" >> ~/.cd_history; };f'
alias cs='f(){ [ -z "$1" ] && cat -n ~/.cd_history | sort -k2 || cat -n ~/.cd_history | grep -i "$1"; };f'
alias c='f(){ [ -n "$1" ] && \cd $(sed "$1!d" ~/.cd_history ) || echo -e "Error, provide a number\n$(cs)"; };f'
alias cd!='f(){ [ -d "$1" ] && cd "$1" || cd $(dirname "$1"); };f'
# LS
alias ls='ls --color=auto'
alias l.='ls -d .*'
alias ll='ls -halF'
alias lz='ll -Z'
alias la='ls -A'
#alias l='ls -CF'
# Core
alias rm='rm -Iv'
alias rmd='rm -rIv'
alias rmd\!='rm -rfv'
# Handy
alias sudo='sudo ' #to get aliases to work with sudo
alias _='\sudo su'
alias _2='/usr/local/bin/sudo su'
alias ai='yum install -y'
alias ar='yum remove -y'
alias al='repoquery -qa --repoid='
alias a='alternatives --list | column -t'
alias l='last | head -20 | grep -E "^|reboot|root"'
alias lu='last | cut -d" " -f1 | sort -u | grep -E "^|reboot|root"'
#alias t='tail -f'
alias t.='f(){ tree -a --dirsfirst -C -L "${1:-2}"; };f'
alias tx='f(){ tar tvf "$1" | grep -q " \./" && eval "_d=${1%.*}; echo \"mkdir -v $_d; tar xvf $1 -C $_d\"" || tar xvf "$1"; };f'
alias h='f(){ [ -z "$1" ] && history || history | grep -i "$1"; };f'
alias hc='history -c;> ~/.bash_history;echo "history cleared."'
alias p='f(){ [ -z "$1" ] && ps -ef || ps -ef | grep -v grep | grep -i "$1"; };f'
alias p\!='ps -eo pid,ppid,comm,cmd,%mem,%cpu --sort=-%mem | head -5'
alias mkcd='f(){ mkdir "$1" && cd $_ };f'
alias map="xargs -n1"
alias m='f(){ [ -z "$1" ] && findmnt -veo TARGET,SOURCE,FSTYPE || findmnt -veo TARGET,SOURCE,FSTYPE | grep -i "$1"; };f'
alias mnt='f(){ [ -z "$1" ] && \mount | awk '"'"'{print $3,$1}'"'"' | column -t | sort -k1 || \mount | grep -i "$1"; };f'
alias mem='awk '"'"'$3=="kB"{if ($2>1024**2){$2=$2/1024**2;$3="GB";} else if ($2>1024){$2=$2/1024;$3="MB";}} 1'"'"' /proc/meminfo | column -t'
alias n='f(){ [ -z "$1" ] && \netstat -tuanp || \netstat -tuanp | grep -i "$1"; };f'
alias np='n | awk '"'"'{print $4}'"'"' | cut -d: -f2 | sort -n | grep -v ^$'
alias i='f(){ [ -z "$1" ] && iptables -nL --line-numbers || iptables -nL --line-numbers | grep -i "$1"; };f'
alias in='f(){ [ -z "$1" ] && iptables -t nat -nL --line-numbers || iptables -t nat -nL --line-numbers | grep -i "$1"; };f'
alias j='f(){ [ -z "$1" ] && journalctl -xe -o cat || journalctl -u "$1" -o cat; };f'
        # [0]emerg [1]alert [2]crit [3]err [4]warning [5]notice [6]info [7]debug
alias je='f(){ [ -z "$1" ] && journalctl -p err || journalctl -p err -u "$1"; };f'
alias jo='jobs -l'
if /bin/pidof systemd &> /dev/null || /sbin/pidof systemd &> /dev/null; then
  [[ "$USER" = 'root' ]] && _sudo_cmd='' || _sudo_cmd='sudo '
  alias s='f(){ [ -z "$1" ] && systemctl -t service --no-pager || systemctl -t service --no-pager --plain | awk "BEGIN {OFS=\"=\"}/$1/{print \$1,\$2,\$3,\$4}"| column -ts= | grep -E "$1|$"; };f'
  alias s.="${_sudo_cmd}systemctl start"
  alias s-="${_sudo_cmd}systemctl stop"
  alias s,="${_sudo_cmd}systemctl restart"
  alias se="${_sudo_cmd}systemctl enable"
  alias sd="${_sudo_cmd}systemctl disable"
  alias s\?="${_sudo_cmd}systemctl status"
  alias sr="echo 'daemon-reload...'; ${_sudo_cmd}systemctl daemon-reload"
else
  alias s='f(){ [ -z "$1" ] && service --status-all || service --status-all | grep -i "$1"; };f'
  alias s.='f(){ [ -z "$1" ] && echo I need a name || service $1 start; };f'
  alias s-='f(){ [ -z "$1" ] && echo I need a name || service $1 stop; };f'
  alias s,='f(){ [ -z "$1" ] && echo I need a name || service $1 restart; };f'
  alias se='f(){ [ -z "$1" ] && echo I need a name || chkconfig $1 on; };f'
  alias sd='f(){ [ -z "$1" ] && echo I need a name || chkconfig $1 off; };f'
  alias s\?='f(){ [ -z "$1" ] && echo I need a name || service $1 status; };f'
  alias sr='f(){ [ -z "$1" ] && echo I need a name || service $1 reload; };f'
fi
alias k\!='kill -9'
alias f='firewall-cmd'
alias fw='f(){ [ -z "$1" ] && sudo iptables -L --line-numbers || sudo iptables -L --line-numbers | grep -i "$1"; };f'
alias fw\!='f(){ [ -z "$1" ] && sudo iptables -L -n -v --line-numbers || sudo iptables -L -n -v --line-numbers | grep -i "$1"; };f'
alias fws='iptables-save > /etc/sysconfig/iptables && echo "/etc/sysconfig/iptables saved. (make sure iptables-services is installed)"'
alias sys='f(){ [ -z "$1" ] && sysctl -a || sysctl -a | grep -i "$1"; };f'
alias u='f(){ [ -z "$1" ] && awk -F: '"'"'{print $1"+"$3"+"$4"+"$5}'"'"' /etc/passwd | column -t -s+ | sort -k2 -n || grep -i "$1" /etc/passwd; };f'
alias g='f(){ [ -z "$1" ] && column -t -s: /etc/group | sort -k3 -n || grep -i "$1" /etc/group; };f'
alias g\!='getent group | awk -F: '"'"'{print $1,$3}'"'"' | column -t | sort -nk2'
alias gf='join -j1 <(seq 999) <(awk -F: "{print \$3,\$1}" /etc/group | sort -n) -a1'
alias e='f(){ [ -z "$1" ] && env || env | grep -i "$1"; };f'
alias y='f(){ [ -z "$1" ] && yum list installed || yum list installed | grep -i "$1"; };f'
alias df='df -Th -x tmpfs -x overlay -x devtmpfs'
alias df\!='df -P | cut -d" " -f 2- | column -t'
alias du.='du -sch .[!.]* * 2>/dev/null'
alias dug='du -h .[!.]* * 2>/dev/null | grep G'
alias dum='du -h .[!.]* * 2>/dev/null | grep M'
alias duroot='cd /;du -sch --exclude={scratch,doceng,home,dev,proc,mnt,run,net} * 2>/dev/null'
alias fb='find . -mount -size +1G -type f -exec ls -lh "{}" \; 2>/dev/null'
alias cpmod='f(){ chmod -v $(stat -c %a "$1") "$2"; };f'
alias cpown='f(){ chown -v $(stat -c %U:%G "$1") "$2"; };f'
alias ti='_a="www.microsoft.com"; echo "curl ${_a}..."; curl "$_a"'
alias tc='f(){ tar -czvf "$1.tar.gz" -C "$1" . };f'
alias tx='tar -xfv'
alias tx\!='f(){ tar xfv "$1" -C . --strip-components 1 };f'
alias direxec='find . -type d -exec chmod a+x {} \;'
alias rmlastln="sed -i '$ d'"
# loop
alias iloop='f(){ t="$1"; shift; while true; do date +%T|tr -d "\n"; eval "$@"; sleep "$t"; echo " ok"; done; };f'
# Others
alias grep='grep --color=auto'
# Editor
which vim &> /dev/null && alias vi='vim'
alias vim\!='sudo -E vim'
# Tmux
alias ta='tmux a -t'
alias tl='tmux ls'
# Docker
alias d='docker'
alias d\?='d inspect'
alias di='f(){ [ -z "$1" ] && docker images || docker inspect "$1"|jq; };f'
alias dc='d ps -a | sed -re "s/(Up\s\S+\s\S+)/$(tput setaf 2)\1$(tput sgr0)/g" -e "s/(.*Exited.*|.*Dead.*)/$(tput setaf 1)\1$(tput sgr0)/g"'
alias dc\!='d ps -a --format "{{.ID}}|{{.Status}}|{{.Image}}|{{ printf \"%.50s\" .Names}}" | column -s"|" -t'
alias ds='d service'
alias d.='d start'
alias d,='d restart'
alias d-='d stop'
alias dn='d network'
alias dw='d swarm'
alias dpru='d system prune -af'
alias dnames='docker ps -a --format "{{.Names}}" | sort'
alias de='f(){ docker exec -ti "$1" /bin/bash; };f'
alias dv='d version'
alias dl='f(){ docker logs "$1" -f; };f'
alias drm-='d ps -qf STATUS=exited -f STATUS=created | xargs -t docker rm -f'
alias drmi='di -qf dangling=true | xargs -t docker rmi -f'
alias drm\!='d ps -aq | xargs -t docker rm -f'
alias drmi\!='d images -q | xargs -t docker rmi -f'
# Kube
alias k='kubectl'
alias kc='k create -f'
alias ki='k cluster-info'
alias ks='k -n kube-system'
alias kd='k describe'
#Misc
alias proxy0='for k in http_proxy https_proxy ftp_proxy socks_proxy no_proxy; do unset ${k} ${k^^}; done;'
alias proxy1='f(){ [ -n "$1" ] && for k in http_proxy https_proxy; do export ${k}="${k%_*}://$1"; export ${k^^}="${k%_*}://$1"; done || echo "No value given"; };f'
alias proxyn='f(){ [ -z "$1" ] && echo -e "${no_proxy//,/\\n}" || { export no_proxy="$1,$no_proxy"; export NO_PROXY="$no_proxy"; } };f'
alias proxyn\!='export no_proxy=localhost,127.0.0.1,$(hostname -I | awk '"'"'{$1=$1}1'"'"' OFS=","),$(hostname -d) && export NO_PROXY="$no_proxy"'
alias httpd='f(){ python3 -m http.server ${1:-5000}; };f'
alias pubip="dig +short myip.opendns.com @resolver1.opendns.com"
alias d64='f(){ echo -n "$1" | base64 -d && echo; };f'
alias e64='f(){ echo -n "$1" | base64; };f'
 
alias tb='nc termbin.com 9999'
alias pbp='f(){ curl -s https://pastebin.com/raw/$1 | tr -d "\r"; };f'
alias pbn='f(){ curl -s https://pastebin.com/raw/85621Cnz | tr -d "\r"; };f'
alias exe='f(){ _x=~/.iax/shortscripts.sh; [ -f $_x ] && eval $(sed "$1!d" $_x) || echo "File $_x not found."; };f'
alias path='f(){ [ -z "$1" ] && echo -e "${PATH//:/\\n}" | nl || echo -e "${PATH//:/\\n}" | nl | grep -i "$1"; };f'
alias path+='f(){ [ -z "$1" ] && _p="$PWD" || _p="$1"; [[ -d "$_p" ]] && { [[ ":$PATH:" =~ ":$_p:" ]] && echo "$_p already exists." || { export PATH="$_p:$PATH";echo "$_p Added."; }; } || echo "Err, $_p not found."; };f'
alias path-='f(){ [ -z "$1" ] && echo "Err, parameter missing" || { echo "Removing: $1" && export PATH=$(echo $PATH | sed s,:"$1",,); }; };f'
alias rlink='echo "mkdir -p $(pwd)";echo "cd $(pwd)";ls -la | sed -rn "s/.* ([a-zA-Z0-9\._-]*) -> ([a-zA-Z0-9/\._-]*)/ln -s \2 \1/p"'
alias pdfpwd='f(){ _p="$1"; shift; for file in "$@"; do qpdf --password="$_p" --decrypt --verbose "$file" "new $file"; done; };f'
 
alias httptext="lynx -dump"
repeat() { while :; do $@ && return; sleep 30; done }
 
transfer() {
if [ $# -eq 0 ]; then echo -e "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"; return 1; fi
tmpfile=$( mktemp -t transferXXX );
if tty -s; then basefile=$(basename "$1" | sed -e 's/[^a-zA-Z0-9._-]/-/g'); curl --progress-bar --upload-file "$1" "https://transfer.sh/$basefile" >> $tmpfile; else curl --progress-bar --upload-file "-" "https://transfer.sh/$1" >> $tmpfile ; fi; cat $tmpfile; rm -f $tmpfile &>/dev/null; }
 
# https://hub.docker.com/repository/docker/iax7/testapi
# docker run -n testapi -p 1000:8000 -d iax7/testapi
_getline_url='adc01eak.us.oracle.com:10003/doc'
gl() { curl -s "$_getline_url" | awk NR==${1:-1}; }
pl() { [ $# -ge 1 -a -f "$1" ] && in="$1" || in="-"; curl -XPOST "$_getline_url" --data-binary @$in; }
 
echo $PATH | grep -E "(:|^)/sbin" >/dev/null || PATH="/sbin:$PATH" # Oracle's VMS Fix
 
# Service AUTOCOMPLETE
_ser(){ cur="${COMP_WORDS[COMP_CWORD]}"; opts="$(systemctl -t service -a --no-pager --no-legend | cut -d. -f1 | tr $'\n' ' ')"; COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ); }
complete -F _ser s.
complete -F _ser s-
complete -F _ser s,
complete -F _ser se
complete -F _ser sd
complete -F _ser s\?
 
# Colored Less
export LESS_TERMCAP_mb=$'\e[1;32m'
export LESS_TERMCAP_md=$'\e[1;32m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[01;33m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;4;31m'
 
### ARCHIVE EXTRACTION ###
# https://gitlab.com/dwt1/dotfiles/blob/master/.bashrc
# usage: ex <file>
ex ()
{
  if [ -f $1 ] ; then
    case $1 in
      *.tar.bz2|*.tbz2) tar xjf $1   ;;
      *.tar.gz|*.tgz)   tar xzf $1   ;;
      *.bz2)            bunzip2 $1   ;;
      *.rar)            unrar x $1     ;;
      *.gz)             gunzip $1    ;;
      *.tar)            tar xf $1    ;;
      *.zip)            unzip $1     ;;
      *.Z)              uncompress $1;;
      *.7z)             7z x $1      ;;
      *)                echo "'$1' cannot be extracted via ex()" ;;
    esac
  else
    echo "'$1' is not a valid file"
  fi
}
 
# TMUX Session always on
#if [ -z "$TMUX" ]; then
#    tmux attach -t default || tmux new -s default
#fi
if [[ $0 = bash ]]; then
  [[ "$USER" = 'root' ]] && usr=1\;91 || usr=36
  let "i=$RANDOM % 256" # Random Host color
  PS1="\[\033[${usr}m\]\u\[\033[0m\]@\[\033[38;5;${i}m\]\h\[\033[00m\]:\[\033[94m\]\w\[\033[${usr}m\]\\$\[\033[0m\] "
fi
 

Comments