Profile:
# Better `ls`
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
alias ls='ls -p'
# Better `grep`
export GREP_OPTIONS='--color=auto'
# brew install prc
# Colorized `traceroute`, `tail`, `head` (requires prepending command with `grc`)
source "`brew --prefix`/etc/grc.bashrc"
# Case-insensitive globbing (used in pathname expansion)
shopt -s nocaseglob
# Append to the Bash history file, rather than overwriting it
shopt -s histappend
# Autocorrect typos in path names when using `cd`
shopt -s cdspell
source `brew --prefix`/Library/Contributions/brew_bash_completion.sh
# Make Tab autocomplete regardless of filename case
set completion-ignore-case on
# List all matches in case multiple possible completions are possible
set show-all-if-ambiguous on
# Immediately add a trailing slash when autocompleting symlinks to directories
set mark-symlinked-directories on
# Add tab completion for SSH hostnames based on ~/.ssh/config, ignoring wildcards
[ -e "$HOME/.ssh/config" ] && complete -o "default" -o "nospace" -W "$(grep "^Host" ~/.ssh/config | grep -v "[?*]" | cut -d " " -f2)" scp sftp ssh
# IP addresses
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias localip="ipconfig getifaddr en1"
alias ips="ifconfig -a | grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\|[a-fA-F0-9:]\+\)' | sed -e 's/inet6* //'"
# Enhanced WHOIS lookups
alias whois="whois -h whois-servers.net"
# Flush Directory Service cache
alias flush="dscacheutil -flushcache"
# Don’t clear the screen after quitting a manual page
export MANPAGER="less -X"
# Make some commands not show up in history
export HISTIGNORE="ls:cd:cd -:pwd:exit:date:* --help"
# Automatically jump to your onelife directory from anywhere
alias onelife='cd ~/onelife'Mac plist settings (you can simply input each line into Terminal):
# Because Library is hidden by default:
chflags nohidden ~/Library
# Mountain Lion forces the fluid scrolling animation when you hit space or page-down. This change
# fixes that, but sometimes (as with the scroll behavior on Safari) the settings aren't applied globally.
defaults write NSGlobalDomain AppleScrollAnimationEnabled -bool false
# Hidden apps show translucently:
defaults write com.apple.dock showhidden -bool true
defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
# Make Safari’s search banners default to Contains instead of Starts With
defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false
# Enable the Develop menu and the Web Inspector in Safari
defaults write com.apple.Safari IncludeDevelopMenu -bool true
defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true
# Add a context menu item for showing the Web Inspector in web views
defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
# Disable the iTunes store link arrows
defaults write com.apple.iTunes show-store-link-arrows -bool false
# Enable Dashboard dev mode (allows keeping widgets on the desktop)
defaults write com.apple.dashboard devmode -bool true
# Enable the debug menu in Disk Utility
defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true
defaults write com.apple.DiskUtility advanced-image-options -bool true
# Re-enable backspace to go back in Safari, shift delete to forward.
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool YESTo help prevent running errant code on production, it's darn handy to change your terminal theme when opening an ssh connection. This involves adding two bash functions, and choosing a suitable terminal theme.
Create a new theme for the ssh connection (I called it "SSH-theme" and gave it a red background). My main theme is called "Visor"
Add these functions to ~/.bashrc (for whatever reason, mine is actually called ~/.profile)
function tabc {
NAME=$1; if [ -z "$NAME" ]; then NAME="Default"; fi
osascript -e "tell application "Terminal" to set current settings of front window to settings set "$NAME""
}
function ssh {
tabc "SSH-theme"
/usr/bin/ssh "$@"
tabc "Visor"
}