# Don't do anything if not running interactively [[ -z "$PS1" ]] && return # Keep plenty of history HISTFILESIZE=1000000 HISTSIZE=1000000 # Ignore duplicate commands and whitespace in history HISTCONTROL=ignoreboth # Keep the times of the commands in history HISTTIMEFORMAT='%F %T ' # Don't tell me about mail unset MAILCHECK shopt -u mailwarn # Autocorrect fudged paths in cd calls shopt -s cdspell &>/dev/null # Update the hash table properly shopt -s checkhash &>/dev/null # Warn me about stopped jobs when exiting shopt -s checkjobs &>/dev/null # Update columns and rows if window size changes shopt -s checkwinsize &>/dev/null # Put multi-line commands onto one line of history shopt -s cmdhist &>/dev/null # Expand globbing and variables for directory completion shopt -s direxpand &>/dev/null # Autocorrect fudged paths during completion shopt -s dirspell &>/dev/null # Include dotfiles in pattern matching shopt -s dotglob &>/dev/null # Enable advanced pattern matching shopt -s extglob &>/dev/null # Enable double-starring paths shopt -s globstar &>/dev/null # Append rather than overwrite Bash history shopt -s histappend &>/dev/null # Ignore me if I try to complete an empty line shopt -s no_empty_cmd_completion &>/dev/null # Never beep at me setterm -bfreq 0 &>/dev/null # Turn off annoying and useless flow control keys stty -ixon &>/dev/null # Use completion, if available [[ -e /etc/bash_completion ]] && source /etc/bash_completion # I always want a unified diff alias diff='diff -u' # I actually use ed now and then, go figure alias ed='ed -p:' # Make gdb shut up alias gdb='gdb -q' # Protect innocent MySQL databases from my stupidity alias mysql='mysql --safe-updates' # I always do this, and I hate slow train alias sl='ls' # Load any supplementary scripts if [[ -d "$HOME/.bashrc.d" ]] then for file in $HOME/.bashrc.d/* do source $file done fi