#!/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 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