You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

232 lines
6.2 KiB
Bash

#!/usr/bin/env bash
# vim:ts=4:sts=4:sw=4:et
#
# Author: Hari Sekhon
# Date: circa 2006 (forked from .bashrc)
#
# https://github.com/harisekhon/bash-tools
#
# License: see accompanying Hari Sekhon LICENSE file
#
# If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish
#
# https://www.linkedin.com/in/harisekhon
#
# ============================================================================ #
# G e n e r a l A l i a s e s
# ============================================================================ #
# manual local aliases
# shellcheck disable=SC1090
[ -f "$HOME/.aliases" ] && . "$HOME/.aliases"
export bashrc=~/.bashrc
# srcdir defined in .bashrc
# shellcheck disable=SC2154
export bashrc2="$srcdir/.bashrc"
alias r='. $bashrc'
alias bashrc='$EDITOR $bashrc && r'
alias bashrc2='$EDITOR $bashrc2 && r'
alias vimrc='$EDITOR ~/.vimrc'
alias screenrc='$EDITOR ~/.screenrc'
alias aliases='$EDITOR $bashd/aliases.sh'
alias ae=aliases
alias be=bashrc
alias be2=bashrc2
alias ve=vimrc
alias se=screenrc
# keep emacs with no window, use terminal, not X, otherwise I'd run xemacs...
#alias emacs="emacs -nw"
#em(){ emacs "$@" ; }
#alias em=emacs
#alias e=em
#xe(){ xemacs $@ & }
#alias x=xe
alias path="echo \$PATH | tr ':' '\n' | more"
alias paths=path
alias tmp="cd /tmp"
# not as compatible, better to call pypy explicitly or in #! line
#if command -v pypy &>/dev/null; then
# alias python=pypy
#fi
# shellcheck disable=SC2139
alias bt="cd $(dirname "${BASH_SOURCE[0]}")/.."
# shellcheck disable=SC2154
export bashd="$srcdir/.bash.d"
alias bashd='cd $bashd'
#alias cleanshell='exec env - bash --rcfile /dev/null'
alias cleanshell='exec env - bash --norc --noprofile'
alias newshell='exec bash'
alias rr='newshell'
alias record=script
alias l33tmode='welcome; retmode=on; echo l33tm0de on'
alias leetmode=l33tmode
alias hist=history
alias clhist='HISTSIZE=0; HISTSIZE=5000'
alias nohist='unset HISTFILE'
export LS_OPTIONS='-F'
if [ -n "${APPLE:-}" ]; then
export CLICOLOR=1 # equiv to using -G switch when calling
else
export LS_OPTIONS="$LS_OPTIONS --color=auto"
export PS_OPTIONS="$LS_OPTIONS -L"
fi
alias ls='ls $LS_OPTIONS'
# omit . and .. in listall with -A instead of -a
alias lA='ls -lA $LS_OPTIONS'
alias la='ls -la $LS_OPTIONS'
alias ll='ls -l $LS_OPTIONS'
alias lh='ls -lh $LS_OPTIONS'
alias lr='ls -ltrh $LS_OPTIONS'
alias cd..='cd ..'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
# use bare 'cd' instead, it's more standard
#alias ~='cd ~'
alias mv='mv -i'
alias cp='cp -i'
#alias rm='rm -i'
alias less='less -i'
alias l='less'
alias m='more'
alias vi='vim'
alias grep='grep --color=auto'
alias hosts='sudo $EDITOR /etc/hosts'
alias screen='screen -T $TERM'
#alias mt=multitail
#alias halt='shutdown -h now -P'
# my pytools github repo
alias ht='headtail.py'
# ============================================================================ #
# G i t H u b / B i t B u c k e t
# ============================================================================ #
export github="$HOME/github"
alias github='cd $github';
export bitbucket="$HOME/bitbucket"
alias bitbucket='cd $bitbucket'
alias bb=bitbucket
if [ -d "$github" ]; then
for x in "$github/"*; do
[ -d "$x" ] || continue
y="${x##*/}"
y="${y// /}"
z="${y//-/_}"
z="${z//./_}"
z="${z// /}"
export "$z"="$x"
# shellcheck disable=SC2139,SC2140
alias "$y"="sti $y; cd $github/$y"
done
fi
if [ -d "$bitbucket" ]; then
for x in "$bitbucket/"*; do
[ -d "$x" ] || continue
y=${x##*/}
z="${y//-/_}"
z="${z//./_}"
export "$z"="$x"
# shellcheck disable=SC2139,SC2140
alias "$y"="sti $y; cd $bitbucket/$y"
done
fi
# ============================================================================ #
alias a='ansible'
alias bc='bc -l'
alias chromekill='pkill -f "Google Chrome Helper"'
alias eclipse='~/eclipse/Eclipse.app/Contents/MacOS/eclipse';
alias visualvm='~/visualvm/bin/visualvm'
# for piping from grep
alias uniqfiles="sed 's/:.*//;/^[[:space:]]*$/d' | sort -u"
export etc=~/etc
alias etc='cd $etc'
alias distro='cat /etc/*release /etc/*version 2>/dev/null'
alias trace=traceroute
alias t='$EDITOR $HOME/tmp'
# causes more problems than it solves on a slow machine missing the prompt
#alias y=yes
alias t2='$EDITOR $HOME/tmp2'
alias t3='$EDITOR $HOME/tmp3'
alias tg='traceroute www.google.com'
#alias sec='ps -ef| grep -e arpwatc[h] -e swatc[h] -e scanlog[d]'
# using variable and single alias definition to work around my bash duplicate defs auto checks
if [ -n "$APPLE" ]; then
clipboard=pbcopy
else
clipboard=xclip
fi
# shellcheck disable=SC2139
alias clipboard="$clipboard"
alias clip=clipboard
unset -v clipboard
export lab=~/lab
alias lab='cd $lab'
alias jenkins_cli='java -jar ~/jenkins-cli.jar -s http://jenkins:8080'
alias backup_jenkins="rsync -av root@jenkins:/jenkins_backup/*.zip '~/jenkins_backup/'"
# Auto-alias uppercase directories in $HOME like Desktop and Downloads
#for dir in $(find "$HOME" -maxdepth 1 -name '[A-Z]*' -type d); do [ -d "$dir" ] && alias ${dir##*/}="cd '$dir'"; done
export downloads=~/Downloads
export down="$downloads"
alias down='cd "$downloads"'
export desktop=~/Desktop
export desk="$desktop"
alias desktop='cd "$desktop"'
alias desk=desktop
for v in ~/github/pytools/validate_*.py; do
z="${v##*/}"
z="${z#validate_}"
z="${z%.py}"
# needs to expand now for dynamic alias creation
# shellcheck disable=SC2139,SC2140
alias "v$z"="$v"
done
# in some environments I do ldap with Kerberos auth - see ldapsearch.sh script at top level which is more flexible with pre-tuned environment variables
#alias ldapsearch="ldapsearch -xW"
#alias ldapadd="ldapadd -xW"
#alias ldapmodify="ldapmodify -xW"
#alias ldapdelete="ldapdelete -xW"
#alias ldappasswd="ldappasswd -xW"
#alias ldapwhoami="ldapwhoami -xW"
#alias ldapvi="ldapvi -b dc=domain,dc=local -D cn=admin,dc=domain,dc=local"
alias fluxkeys='$EDITOR $HOME/.fluxbox/keys'
alias fke=fluxkeys
alias fluxmenu='$EDITOR $HOME/.fluxbox/mymenu'
alias fme=fluxmenu
alias mymenu=fluxmenu
alias menu=mymenu