439 lines
12 KiB
439 lines
12 KiB
#!/usr/bin/env bash |
|
|
|
|
|
git() { |
|
if [[ $@ == "push origin master" ]]; then |
|
echo "nope" |
|
else |
|
command git "$@" |
|
fi |
|
} |
|
|
|
|
|
# get rid of stupid annoying badges |
|
# --------------------------------- |
|
alias clearbadges='defaults write com.apple.systempreferences AttentionPrefBundleIDs 0 && killall Dock' |
|
|
|
|
|
# lazy af |
|
# ------- |
|
alias mk='make' |
|
alias smk='snakemake' |
|
alias smake='snakemake' |
|
alias py='python3' |
|
alias ipy='ipython --pylab' |
|
alias ip="curl -4 icanhazip.com" |
|
alias ipaddr="curl -4 icanhazip.com" |
|
|
|
# uuid generator |
|
alias uuid="uuidgen" |
|
|
|
# python stuff |
|
# ------------ |
|
# https://unix.stackexchange.com/a/459586 |
|
alias vp="[ -d vp ] || virtualenv -p python3 vp && source vp/bin/activate" |
|
if [[ "${HOSTNAME}" == "aptos" ]]; then |
|
alias vpp="[ -d vpp ] || virtualenv --python ${HOME}/.pyenv/versions/pypy3.9-7.3.9/bin/pypy3 vpp && source vpp/bin/activate" |
|
else |
|
alias vpp="[ -d vpp ] || virtualenv -p pypy3 vpp && source vpp/bin/activate" |
|
fi |
|
|
|
# one-letter aliases |
|
# --------------- |
|
alias h='echo ""; echo $HOSTNAME; echo ""' |
|
alias p='echo -e ${PATH//:/\\n}' |
|
alias e='exit' |
|
alias u='cd ..' |
|
alias v='vim' |
|
|
|
|
|
|
|
# utility wrappers |
|
# --------------- |
|
alias pp='python setup.py build && python setup.py install' |
|
alias sha1='openssl sha1' |
|
alias du='du -kh' |
|
alias dh='dh -kTh' |
|
alias pc='pelican content' |
|
alias lsop='lsof -nP +c 15 | /usr/bin/grep LISTEN' |
|
|
|
|
|
|
|
|
|
# don't clobber |
|
# ----------------- |
|
alias rm='rm -i' |
|
alias cp='cp -i' |
|
alias mv='mv -i' |
|
|
|
|
|
|
|
|
|
|
|
# ls aliases |
|
# -------------------- |
|
# Detect which `ls` flavor is in use |
|
|
|
LS=$(which ls) |
|
if $LS --color > /dev/null 2>&1; then # GNU `ls` |
|
colorflag="--color" |
|
export LS_COLORS='no=00:fi=00:di=01;31:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:' |
|
groupflag="--group-directories-first" |
|
else # macOS `ls` |
|
colorflag="-G" |
|
export LSCOLORS='BxBxhxDxfxhxhxhxhxcxcx' |
|
groupflag="--group-directories-first" |
|
fi |
|
|
|
|
|
|
|
alias ls="$LS -1 ${colorflag} ${groupflag}" |
|
alias sl='ls' |
|
|
|
|
|
|
|
# List all files colorized in long format |
|
alias l="$LS -lhAF ${colorflag}" |
|
alias ll="l" |
|
|
|
# List all files colorized in long format, including dot files |
|
alias la="l -a" |
|
|
|
# List only directories |
|
alias lsd="$LS -lF ${colorflag} | grep --color=never '^d'" |
|
|
|
|
|
alias lr='ls -r' # reverse |
|
alias llr='ll -r' # reverse |
|
|
|
alias lt='$LS -lhAFt -G' # time |
|
|
|
alias lt='ls -t' # time |
|
alias llt='ll -t' # time |
|
|
|
alias ltr='ls -tr' # reverse time |
|
alias lltr='ll -tr' # reverse time |
|
|
|
alias lk='ls -lSr' # by size (small to big) |
|
|
|
|
|
|
|
|
|
# clear |
|
# --------------- |
|
alias clc='clear; pwd' |
|
alias cl='clc; ll' |
|
alias cll='clear; ll' |
|
alias cls='clear; ls' |
|
alias lcs='clear; ls' |
|
alias csl='cls' |
|
alias cla='clear; la' |
|
alias c='clear' |
|
|
|
|
|
|
|
|
|
# socks proxy thru seawater for private wiki access |
|
# (use with foxyproxy, point to localhost:5778) |
|
# --------------- |
|
alias socks='ssh -D 5778 -p 5778 charles@charlesreid1.party -f -N' |
|
|
|
|
|
|
|
# tinc vpn |
|
# --------------- |
|
|
|
alias seawatervpn="seawatervpn" |
|
function seawatervpn() { |
|
ssh-agent > ~/ssh.file # env vars in ssh.file |
|
chmod +x ~/ssh.file # execute file |
|
~/ssh.file > /dev/null |
|
rm -f ~/ssh.file |
|
export IP="192.168.30.1" |
|
ssh -p 5778 -Y charles@${IP} # the actual ssh call |
|
} |
|
|
|
alias randalvpn="randalvpn" |
|
function randalvpn() { |
|
ssh-agent > ~/ssh.file # env vars in ssh.file |
|
chmod +x ~/ssh.file # execute file |
|
~/ssh.file > /dev/null |
|
rm -f ~/ssh.file |
|
export IP="192.168.30.10" |
|
ssh -p 5778 -Y charles@${IP} # the actual ssh call |
|
} |
|
|
|
alias mayavpn="mayavpn" |
|
function mayavpn() { |
|
ssh-agent > ~/ssh.file # env vars in ssh.file |
|
chmod +x ~/ssh.file # execute file |
|
~/ssh.file > /dev/null |
|
rm -f ~/ssh.file |
|
export IP="192.168.30.20" |
|
ssh -Y charles@${IP} # the actual ssh call |
|
} |
|
|
|
alias bearvpn="bearvpn" |
|
function bearvpn() { |
|
ssh-agent > ~/ssh.file # env vars in ssh.file |
|
chmod +x ~/ssh.file # execute file |
|
~/ssh.file > /dev/null |
|
rm -f ~/ssh.file |
|
export IP="192.168.30.40" |
|
ssh -p 5778 -Y charles@${IP} # the actual ssh call |
|
} |
|
|
|
alias emmettvpn="emmettvpn" |
|
function emmettvpn() { |
|
ssh-agent > ~/ssh.file # env vars in ssh.file |
|
chmod +x ~/ssh.file # execute file |
|
~/ssh.file > /dev/null |
|
rm -f ~/ssh.file |
|
export IP="192.168.30.55" |
|
ssh -p 5778 -Y charles@${IP} # the actual ssh call |
|
} |
|
|
|
# Local machines |
|
# --------------- |
|
|
|
alias randal="randal" |
|
function randal() { |
|
ssh-agent > ~/ssh.file # env vars in ssh.file |
|
chmod +x ~/ssh.file # execute file |
|
~/ssh.file > /dev/null |
|
rm -f ~/ssh.file |
|
export IP="192.168.0.10" |
|
ssh -p 5778 -Y charles@${IP} # the actual ssh call |
|
} |
|
|
|
# Remote machines |
|
# --------------- |
|
|
|
alias charles="charles" |
|
function charles() { |
|
ssh-agent > ~/ssh.file # env vars in ssh.file |
|
chmod +x ~/ssh.file # execute file |
|
~/ssh.file > /dev/null |
|
rm -f ~/ssh.file |
|
export IP="charlesreid1.com" |
|
ssh -p 5778 -Y charles@${IP} # the actual ssh call |
|
} |
|
|
|
alias bear="bear" |
|
function bear() { |
|
ssh-agent > ~/ssh.file # env vars in ssh.file |
|
chmod +x ~/ssh.file # execute file |
|
~/ssh.file > /dev/null |
|
rm -f ~/ssh.file |
|
export IP="173.255.249.79" |
|
ssh -p 5778 -Y charles@${IP} # the actual ssh call |
|
} |
|
|
|
alias emmett="emmett" |
|
function emmett() { |
|
ssh-agent > ~/ssh.file # env vars in ssh.file |
|
chmod +x ~/ssh.file # execute file |
|
~/ssh.file > /dev/null |
|
rm -f ~/ssh.file |
|
export IP="173.255.252.181" |
|
ssh -p 5778 -Y charles@${IP} # the actual ssh call |
|
} |
|
|
|
alias seawater="seawater" |
|
function seawater() { |
|
ssh-agent > ~/ssh.file # env vars in ssh.file |
|
chmod +x ~/ssh.file # execute file |
|
~/ssh.file > /dev/null |
|
rm -f ~/ssh.file |
|
export IP="charlesreid1.party" |
|
ssh -p 5778 -Y charles@${IP} # the actual ssh call |
|
} |
|
|
|
alias burro="burro" |
|
function burro() { |
|
ssh-agent > ~/ssh.file # env vars in ssh.file |
|
chmod +x ~/ssh.file # execute file |
|
~/ssh.file > /dev/null |
|
rm -f ~/ssh.file |
|
export IP="173.255.210.178" |
|
ssh -p 5778 -Y charles@${IP} # the actual ssh call |
|
} |
|
|
|
|
|
# tmux shortcuts |
|
# constructed with help from https://robots.thoughtbot.com/a-tmux-crash-course |
|
|
|
# tmux sessions |
|
# --------------- |
|
|
|
# tmux list sessions: tls = tmux list-sessions |
|
alias tls='tmux list-sessions' |
|
|
|
# tmux new session: tns [name] = tmux new session named [name] |
|
alias tns='tmux new -s' |
|
|
|
# tmux deatch session: td = tmux detach (detach current session) |
|
alias td='tmux detach' |
|
|
|
# tmux windows |
|
# --------------- |
|
|
|
# tmux list windows |
|
|
|
# tmux new window: tnw [name] = PREFIX + C |
|
alias tnw='tmux new-window' |
|
|
|
# tmux attach window |
|
# taw [number] |
|
# PREFIX + (0-9) |
|
alias taw='tmux select-window -t' |
|
|
|
# tmux rename window |
|
# trw [name] |
|
# PREFIX + , |
|
alias trw='tmux rename-window ' |
|
|
|
# tmux vertical split window |
|
# tvsp |
|
# PREFIX + " |
|
tvsp='tmux split-window' |
|
|
|
# tmux horizontal split window |
|
# thsp |
|
thsp='tmux split-window -h' |
|
|
|
|
|
|
|
|
|
# typo aliases |
|
# --------------- |
|
alias lll='ll' |
|
alias mdkir='mkdir' |
|
alias mdir='mkdir' |
|
alias celar='clear' |
|
alias cealr='clear' |
|
|
|
|
|
|
|
# cd |
|
# --------------- |
|
alias back='cd $OLDPWD' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#################### |
|
# modified mathias |
|
|
|
# Easier navigation: .., ..., ...., ....., ~ and - |
|
alias ..="cd .." |
|
alias ...="cd ../.." |
|
alias ....="cd ../../.." |
|
alias .....="cd ../../../.." |
|
alias ~="cd ~" # `cd` is probably faster to type though |
|
alias -- -="cd -" |
|
|
|
# Shortcuts |
|
alias d="cd ~/Desktop" |
|
alias g="git" |
|
alias gs="git status" |
|
alias h="history" |
|
|
|
#alias s="screen" |
|
|
|
# Always enable colored `grep` output |
|
# Note: `GREP_OPTIONS="--color=auto"` is deprecated, hence the alias usage. |
|
alias grep='grep -i --color=auto --exclude-dir=vp' |
|
alias fgrep='fgrep --color=auto' |
|
alias egrep='egrep --color=auto' |
|
|
|
# Get week number |
|
alias week='date +%V' |
|
|
|
# Stopwatch |
|
alias timer='echo "Timer started. Stop with Ctrl-D." && date && time cat && date' |
|
|
|
### # Get macOS Software Updates |
|
### #, and update installed Ruby gems, Homebrew, npm, and their installed packages |
|
### alias update='sudo softwareupdate -i -a; brew update; brew upgrade; brew cleanup' |
|
|
|
### # Google Chrome |
|
### alias chrome='/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome' |
|
### alias canary='/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary' |
|
|
|
# IP addresses |
|
alias localip="ipconfig getifaddr en0" |
|
alias ips="ifconfig -a | grep -o 'inet6\? \(addr:\)\?\s\?\(\(\([0-9]\+\.\)\{3\}[0-9]\+\)\|[a-fA-F0-9:]\+\)' | awk '{ sub(/inet6? (addr:)? ?/, \"\"); print }'" |
|
|
|
# Show active network interfaces |
|
alias ifactive="ifconfig | pcregrep -M -o '^[^\t:]+:([^\n]|\n\t)*status: active'" |
|
|
|
### # Flush Directory Service cache |
|
### alias flush="dscacheutil -flushcache && killall -HUP mDNSResponder" |
|
### |
|
### # Clean up LaunchServices to remove duplicates in the “Open With” menu |
|
### alias lscleanup="/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user && killall Finder" |
|
### |
|
### # Canonical hex dump; some systems have this symlinked |
|
### command -v hd > /dev/null || alias hd="hexdump -C" |
|
### |
|
### # macOS has no `md5sum`, so use `md5` as a fallback |
|
### command -v md5sum > /dev/null || alias md5sum="md5" |
|
### |
|
### # macOS has no `sha1sum`, so use `shasum` as a fallback |
|
### command -v sha1sum > /dev/null || alias sha1sum="shasum" |
|
### |
|
### # JavaScriptCore REPL |
|
### jscbin="/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc"; |
|
### [ -e "${jscbin}" ] && alias jsc="${jscbin}"; |
|
### unset jscbin; |
|
### |
|
### # Trim new lines and copy to clipboard |
|
### alias c="tr -d '\n' | pbcopy" |
|
### |
|
### # Recursively delete `.DS_Store` files |
|
### alias cleanup="find . -type f -name '*.DS_Store' -ls -delete" |
|
### |
|
### # Empty the Trash on all mounted volumes and the main HDD. |
|
### # Also, clear Apple’s System Logs to improve shell startup speed. |
|
### # Finally, clear download history from quarantine. https://mths.be/bum |
|
### alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl; sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'delete from LSQuarantineEvent'" |
|
### |
|
### # Show/hide hidden files in Finder |
|
### alias show="defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder" |
|
### alias hide="defaults write com.apple.finder AppleShowAllFiles -bool false && killall Finder" |
|
### |
|
### # Hide/show all desktop icons (useful when presenting) |
|
### alias hidedesktop="defaults write com.apple.finder CreateDesktop -bool false && killall Finder" |
|
### alias showdesktop="defaults write com.apple.finder CreateDesktop -bool true && killall Finder" |
|
### |
|
### # URL-encode strings |
|
### alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1]);"' |
|
### |
|
### # Merge PDF files |
|
### # Usage: `mergepdf -o output.pdf input{1,2,3}.pdf` |
|
### alias mergepdf='/System/Library/Automator/Combine\ PDF\ Pages.action/Contents/Resources/join.py' |
|
### |
|
### # Disable Spotlight |
|
### alias spotoff="sudo mdutil -a -i off" |
|
### # Enable Spotlight |
|
### alias spoton="sudo mdutil -a -i on" |
|
### |
|
### # PlistBuddy alias, because sometimes `defaults` just doesn’t cut it |
|
### alias plistbuddy="/usr/libexec/PlistBuddy" |
|
|
|
# Airport CLI alias |
|
alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport' |
|
|
|
# Lock the screen (when going AFK) |
|
alias afk="/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend" |
|
|
|
# Reload the shell (i.e. invoke as a login shell) |
|
alias reload="exec ${SHELL} -l" |
|
|
|
# Print each PATH entry on a separate line |
|
alias path='echo -e ${PATH//:/\\n}'
|
|
|