Skip to content

Instantly share code, notes, and snippets.

@logicaroma
Created August 14, 2013 23:17
Show Gist options
  • Save logicaroma/6236720 to your computer and use it in GitHub Desktop.
Save logicaroma/6236720 to your computer and use it in GitHub Desktop.
alias shortcuts for osx and git terminal commands

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 ~/Documents/Dropbox" alias dl="cd ~/Downloads" alias dt="cd ~/Desktop" alias p="cd ~/Projects" alias g="git" alias h="history" alias j="jobs" alias v="vim" alias m="mate ." alias s="subl ." alias o="open" alias oo="open ."

Detect which ls flavor is in use

if ls --color > /dev/null 2>&1; then # GNU ls colorflag="--color" else # OS X ls colorflag="-G" fi

List all files colorized in long format

alias l="ls -lF ${colorflag}"

List all files colorized in long format, including dot files

alias la="ls -laF ${colorflag}"

List only directories

alias lsd='ls -lF ${colorflag} | grep "^d"'

Always use color output for ls

alias ls="command ls ${colorflag}" export LS_COLORS='no=00:fi=00:di=01;34: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:'

Enable aliases to be sudo’ed

alias sudo='sudo '

Gzip-enabled curl

alias gurl='curl --compressed'

Get week number

alias week='date +%V'

Stopwatch

alias timer='echo "Timer started. Stop with Ctrl-D." && date && time cat && date'

Get OS X 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; npm update npm -g; npm update -g; sudo gem update'

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 && 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"

View HTTP traffic

alias sniff="sudo ngrep -d 'en1' -t '^(GET|POST) ' 'tcp and port 80'" alias httpdump="sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E "Host: .|GET /.""

Canonical hex dump; some systems have this symlinked

command -v hd > /dev/null || alias hd="hexdump -C"

OS X has no md5sum, so use md5 as a fallback

command -v md5sum > /dev/null || alias md5sum="md5"

OS X has no sha1sum, so use shasum as a fallback

command -v sha1sum > /dev/null || alias sha1sum="shasum"

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"

ROT13-encode text. Works for decoding, too! ;)

alias rot13='tr a-zA-Z n-za-mN-ZA-M'

Empty the Trash on all mounted volumes and the main HDD

Also, clear Apple’s System Logs to improve shell startup speed

alias emptytrash="sudo rm -rfv /Volumes//.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/.asl"

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"

Ring the terminal bell, and put a badge on Terminal.app’s Dock icon

(useful when executing time-consuming commands)

alias badge="tput bel"

Intuitive map function

For example, to list all directories that contain a certain file:

find . -name .gitattributes | map dirname

alias map="xargs -n1"

One of @janmoesen’s ProTip™s

for method in GET HEAD POST PUT DELETE TRACE OPTIONS; do alias "$method"="lwp-request -m '$method'" done

Make Grunt print stack traces by default

command -v grunt > /dev/null && alias grunt="grunt --stack"

Stuff I never really use but cannot delete either because of http://xkcd.com/530/

alias stfu="osascript -e 'set volume output muted true'" alias pumpitup="osascript -e 'set volume 7'" alias hax="growlnotify -a 'Activity Monitor' 'System error' -m 'WTF R U DOIN'"

.gitconfig

View abbreviated SHA, description, and history graph of the latest 20 commits

l = log --pretty=oneline -n 20 --graph --abbrev-commit

View the current working tree status using the short format

s = status -s

Show the diff between the latest commit and the current state

d = !"git diff-index --quiet HEAD -- || clear; git --no-pager diff --patch-with-stat"

git di $number shows the diff between the state $number revisions ago and the current state

di = !"d() { git diff --patch-with-stat HEAD~$1; }; git diff-index --quiet HEAD -- || clear; d"

Pull in remote changes for the current repository and all its submodules

p = !"git pull; git submodule foreach git pull origin master"

Clone a repository including all submodules

c = clone --recursive

Commit all changes

ca = !git add -A && git commit -av

Switch to a branch, creating it if necessary

go = checkout -B

Show verbose output about tags, branches or remotes

tags = tag -l
branches = branch -a
remotes = remote -v

Credit an author on the latest commit

credit = "!f() { git commit --amend --author \"$1 <$2>\" -C HEAD; }; f"

Interactive rebase with the given number of latest commits

reb = "!r() { git rebase -i HEAD~$1; }; r"

log-fancy = log HEAD^^ --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(cyan)<%an>%Creset' --abbrev-commit --date=relative log-fancy-changelog = log --graph --pretty=format:'%C(yellow)%h%C(reset) %C(red)- %an%C(reset) - %C(white)%s%C(reset) %C(bold yellow)%d%C(reset) %C(green)(%ar)%C(reset)' --abbrev-commit --date=short --format=%B > CHANGELOG.txt log-fancy-me = !UN=$(git config user.name)&& git log --author=""$UN"" --pretty=format:'%h %cd %s' --date=short log-changelog = log --graph --decorate --pretty=oneline --no-merges --format=%B > CHANGELOG.TXT

changelog = !sh -c 'git log $1...$2  --pretty=format:\"%s [view commit](http://github.com/$3/$4/commit/%H) \"' -

mylog = log $1...$2  --pretty=format:\"%s [view commit](http://github.com/$3/$4/commit/%H) \"- --graph --decorate --no-merges --format=%B > CHANGELOG.txt
lg = log --graph --format=format:'%C(yellow)%h%C(reset) %C(red)- %an%C(reset) - %C(white)%s%C(reset) %C(bold yellow)%d%C(reset) %C(green)(%ar)%C(reset)' --abbrev-commit --date=short

.aliases [OSX]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment