Skip to content

Instantly share code, notes, and snippets.

@vitorbritto
Last active August 30, 2023 09:03
Show Gist options
  • Save vitorbritto/8927171 to your computer and use it in GitHub Desktop.
Save vitorbritto/8927171 to your computer and use it in GitHub Desktop.
dotfiles - bash alias
#!/bin/bash
# ------------------------------------------------------------------------------
# | System |
# ------------------------------------------------------------------------------
# Navigation
# -------------------
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias ~="cd ~" # `cd` is probably faster to type though
alias -- -="cd -"
# Network
# -------------------
# IP addresses
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias ips="ifconfig -a | grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\|[a-fA-F0-9:]\+\)' | sed -e 's/inet6* //'"
alias localip="ipconfig getifaddr en1"
# Enhanced WHOIS lookups
alias whois="whois -h whois-servers.net"
# Shorctus
# -------------------
# Gzip-enabled `curl`
alias gurl='curl --compressed'
# 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 copythis="tr -d '\n' | pbcopy"
# Recursively delete `.DS_Store` files
alias cleanup="find . -type f -name '*.DS_Store' -ls -delete"
# 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'
# 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
# Lists
# -------------------
# 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 -l ${colorflag}"
# List all files colorized in long format, including dot files
alias la="ls -la ${colorflag}"
# List only directories
alias lsd='ls -l | grep "^d"'
# Always use color output for `ls`
if [[ "$OSTYPE" =~ ^darwin ]]; then
alias ls="command ls -G"
else
alias ls="command ls --color"
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:'
fi
# `cat` with beautiful colors. requires Pygments installed.
# sudo easy_install Pygments
alias c='pygmentize -O style=monokai -f console256 -g'
# ------------------------------------------------------------------------------
# | OS X |
# ------------------------------------------------------------------------------
# Set defaults again
alias setdefaults="bash ~/.forcefiles/bin/osxdefaults"
# 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'"
# Empty the trash, the main HDD and on all mounted volumes
# and clear Apple’s system logs to improve shell startup speed
alias emptytrash="sudo rm -frv /Volumes/*/.Trashes && \
sudo rm -frv ~/.Trash &&
sudo rm -frv /private/var/log/asl/*.asl"
# Hide/Show desktop icons
alias hidedesktopicons="defaults write com.apple.finder CreateDesktop -bool false && killall Finder"
alias showdesktopicons="defaults write com.apple.finder CreateDesktop -bool true && killall Finder"
# Hide/Show hidden files in Finder
alias hidehiddenfiles="defaults write com.apple.finder AppleShowAllFiles -bool false && killall Finder"
alias showhiddenfiles="defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder"
# Disable/Enable Spotlight
alias spotoff="sudo mdutil -a -i off"
alias spoton="sudo mdutil -a -i on"
# Shutdown the System
alias offline="sudo shutdown -h now"
# ------------------------------------------------------------------------------
# | Managment and Tasks |
# ------------------------------------------------------------------------------
# RVM
alias rubies="rvm list rubies"
alias gemsets="rvm gemset list"
alias rvmu18="rvm use 1.8.7"
alias rvmu19="rvm use 1.9.3"
alias rvmu20="rvm use 2.0.0"
alias rvmd18="rvm --default use 1.8.7"
alias rvmd19="rvm --default use 1.9.3"
alias rvmd20="rvm --default use 2.0.0"
# Bundler
alias bake="bundle exec rake"
alias migrate="bundle exec rake db:migrate"
# Rubygems
alias gemi="gem install --no-rdoc --no-ri"
# NPM
alias nu="npm update"
# Grunt
command -v grunt > /dev/null && alias grunt="grunt --stack" # Make Grunt print stack traces by default
# Bower
alias bowerup="npm update bower -g"
# Composer
alias compsu="composer self-update"
alias compup="composer update"
alias compi="composer install"
alias compcp="composer create-project"
alias compdu="composer dump-autoload"
# Homebrew
alias brewup="brew update && \
brew upgrade && \
brew cleanup"
# General Update
alias update="sudo softwareupdate --install --all && \
brewup && \
bowerup && \
npmup"
# ------------------------------------------------------------------------------
# | Development (based on my workflow) |
# ------------------------------------------------------------------------------
# Daily stuff
alias s='open -a "/Applications/Sublime Text 2.app"'
alias v='open -a "/Applications/MacVim.app"'
alias db="cd ~/Documents/Dropbox"
alias dl="cd ~/Downloads"
alias t="cd ~/temp"
alias s="cd ~/Sites"
alias h="history"
alias j="jobs"
alias o="open ."
alias nh="node --harmony"
# Search
alias howto="open http://stackoverflow.com/search?q= "
# Apache
# Moved some alias to apache() function
alias httpd="sudo nano -w /etc/apache2/httpd.conf"
alias vhost="sudo nano -w /etc/apache2/extra/httpd-vhosts.conf"
# Database
alias sqlstart="sudo /usr/local/mysql/support-files/mysql.server start"
alias sqlstop="sudo /usr/local/mysql/support-files/mysql.server stop"
alias pma="open http://localhost/~vitorbritto/phpmyadmin"
# Scripts
alias ahost="sudo ~/.forcefiles/scripts/virtualhost.sh"
alias dhost="sudo ~/.forcefiles/scripts/virtualhost.sh --delete"
alias vms="sudo ~/.forcefiles/scripts/installvms.sh"
alias up="bash ~/.forcefiles/bin/update"
alias bkp="bash ~/.forcefiles/bin/backup"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment