Last active
April 2, 2018 10:20
-
-
Save simplesessions/d8d5c07031f627e6bb8769fcd217ba9a to your computer and use it in GitHub Desktop.
Bash Profile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Some config taken from https://natelandau.com/my-mac-osx-bash_profile/ | |
# --------------------------------------------------------- | |
# GENERAL: Exports | |
# --------------------------------------------------------- | |
export CLICOLOR=1 # add colors to the output | |
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx # ^ | |
export EDITOR=/usr/bin/vim # default editor | |
export BLOCKSIZE=1k # set the blocksize for filesizes | |
# --------------------------------------------------------- | |
# GENERAL: Functions | |
# --------------------------------------------------------- | |
mcd () { mkdir -p "$1" && cd "$1"; } # mcd: Makes new Dir and jumps inside | |
trash () { command mv "$@" ~/.Trash ; } # trash: Moves a file to the MacOS trash | |
ql () { qlmanage -p "$*" >& /dev/null; } # ql: Opens any file in MacOS Quicklook Preview | |
# function for showing the git branch | |
parse_git_branch() { | |
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' | |
} | |
# --------------------------------------------------------- | |
# GENERAL: Aliases | |
# --------------------------------------------------------- | |
alias cp='cp -iv' # Preferred 'cp' implementation | |
alias mv='mv -iv' # Preferred 'mv' implementation | |
alias mkdir='mkdir -pv' # Preferred 'mkdir' implementation | |
alias ls='ls -FGlAhp' # Preferred 'ls' implementation | |
alias less='less -FSRXc' # Preferred 'less' implementation | |
cd() { builtin cd "$@"; ls; } # Always list directory contents upon 'cd' | |
alias cd..='cd ../' # Go back 1 directory level (for fast typers) | |
alias ..='cd ../' # Go back 1 directory level | |
alias ...='cd ../../' # Go back 2 directory levels | |
alias .3='cd ../../../' # Go back 3 directory levels | |
alias .4='cd ../../../../' # Go back 4 directory levels | |
alias .5='cd ../../../../../' # Go back 5 directory levels | |
alias .6='cd ../../../../../../' # Go back 6 directory levels | |
alias edit='subl' # edit: Opens any file in sublime editor | |
alias f='open -a Finder ./' # f: Opens current directory in MacOS Finder | |
alias ~="cd ~" # ~: Go Home | |
alias c='clear' # c: Clear terminal display | |
alias which='type -all' # which: Find executables | |
alias path='echo -e ${PATH//:/\\n}' # path: Echo all executable Paths | |
alias show_options='shopt' # Show_options: display bash options settings | |
alias fix_stty='stty sane' # fix_stty: Restore terminal settings when screwed up | |
alias cic='set completion-ignore-case On' # cic: Make tab-completion case-insensitive | |
alias DT='tee ~/Desktop/terminalOut.txt' # DT: Pipe content to file on MacOS Desktop | |
# lr: Full Recursive Directory Listing | |
alias lr='ls -R | grep ":$" | sed -e '\''s/:$//'\'' -e '\''s/[^-][^\/]*\//--/g'\'' -e '\''s/^/ /'\'' -e '\''s/-/|/'\'' | less' | |
# extract: Extract most know archives with one command | |
# --------------------------------------------------------- | |
extract () { | |
if [ -f $1 ] ; then | |
case $1 in | |
*.tar.bz2) tar xjf $1 ;; | |
*.tar.gz) tar xzf $1 ;; | |
*.bz2) bunzip2 $1 ;; | |
*.rar) unrar e $1 ;; | |
*.gz) gunzip $1 ;; | |
*.tar) tar xf $1 ;; | |
*.tbz2) tar xjf $1 ;; | |
*.tgz) tar xzf $1 ;; | |
*.zip) unzip $1 ;; | |
*.Z) uncompress $1 ;; | |
*.7z) 7z x $1 ;; | |
*) echo "'$1' cannot be extracted via extract()" ;; | |
esac | |
else | |
echo "'$1' is not a valid file" | |
fi | |
} | |
# --------------------------- | |
# SEARCHING | |
# --------------------------- | |
alias qfind="find . -name " # qfind: Quickly search for file | |
ff () { /usr/bin/find . -name "$@" ; } # ff: Find file under the current directory | |
ffs () { /usr/bin/find . -name "$@"'*' ; } # ffs: Find file whose name starts with a given string | |
ffe () { /usr/bin/find . -name '*'"$@" ; } # ffe: Find file whose name ends with a given string | |
# spotlight: Search for a file using MacOS Spotlight's metadata | |
spotlight () { mdfind "kMDItemDisplayName == '$@'wc"; } | |
# --------------------------- | |
# NETWORKING | |
# --------------------------- | |
alias myip='curl ipecho.net/plain ; echo' # myip: Public facing IP Address | |
alias netCons='lsof -i' # netCons: Show all open TCP/IP sockets | |
alias flushDNS='sudo killall -HUP mDNSResponder' # flushDNS: Flush out the DNS Cache | |
alias lsock='sudo /usr/sbin/lsof -i -P' # lsock: Display open sockets | |
alias lsockU='sudo /usr/sbin/lsof -nP | grep UDP' # lsockU: Display only open UDP sockets | |
alias lsockT='sudo /usr/sbin/lsof -nP | grep TCP' # lsockT: Display only open TCP sockets | |
alias ipInfo0='ipconfig getpacket en0' # ipInfo0: Get info on connections for en0 | |
alias ipInfo1='ipconfig getpacket en1' # ipInfo1: Get info on connections for en1 | |
alias openPorts='sudo lsof -i | grep LISTEN' # openPorts: All listening connections | |
alias showBlocked='sudo ipfw list' # showBlocked: All ipfw rules inc/ blocked IPs | |
# ii: display useful host related informaton | |
ii() { | |
echo -e "\nYou are logged on ${RED}$HOST" | |
echo -e "\nAdditionnal information:$NC " ; uname -a | |
echo -e "\n${RED}Users logged on:$NC " ; w -h | |
echo -e "\n${RED}Current date :$NC " ; date | |
echo -e "\n${RED}Machine stats :$NC " ; uptime | |
echo -e "\n${RED}Current network location :$NC " ; scselect | |
echo -e "\n${RED}Public facing IP Address :$NC " ;myip | |
#echo -e "\n${RED}DNS Configuration:$NC " ; scutil --dns | |
echo | |
} | |
# --------------------------- | |
# SYSTEM | |
# --------------------------- | |
# cleanupDS: Recursively delete .DS_Store files\ | |
alias cleanupDS="find . -type f -name '*.DS_Store' -ls -delete" | |
# finderShowHidden: Show hidden files in Finder | |
# finderHideHidden: Hide hidden files in Finder | |
alias finderShowHidden='defaults write com.apple.finder ShowAllFiles TRUE' | |
alias finderHideHidden='defaults write com.apple.finder ShowAllFiles FALSE' | |
# cleanupLS: Clean up LaunchServices to remove duplicates in the "Open With" menu | |
alias cleanupLS="/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user && killall Finder" | |
# Enable Git Completion | |
if [ -f $(brew --prefix)/etc/bash_completion ]; then | |
. $(brew --prefix)/etc/bash_completion | |
fi | |
# --------------------------- | |
# DEVELOPMENT | |
# --------------------------- | |
# my own aliases | |
alias b='bundle exec' | |
alias cap='bundle exec cap' | |
alias cslocal='bundle exec cap production sync:to_local' | |
alias gco='git checkout' | |
alias gp='git pull' | |
alias phps='php -S localhost:3000' | |
alias rbup='cd /Users/ckihe/.rbenv/plugins/ruby-build && git pull && cd -' | |
alias tf="terraform" | |
alias rs='bundle exec rails server --binding=0.0.0.0' | |
alias yui="yarn upgrade-interactive" | |
alias passgen='LC_ALL=C tr -dc "[:alpha:][:alnum:]" < /dev/urandom | head -c 20 | pbcopy' | |
# other paths | |
export NODE_PATH=/usr/local/lib/node_modules | |
export PATH="$PATH:`yarn global bin`" | |
export PATH="$HOME/.rbenv/bin:$PATH" | |
eval "$(rbenv init -)" | |
export HOMEBREW_GITHUB_API_TOKEN=__fill_in__ | |
export NODE_ENV=development | |
# add support for git auto completion | |
if [ -f $(brew --prefix)/etc/bash_completion ]; then | |
. $(brew --prefix)/etc/bash_completion | |
fi | |
# --------------------------- | |
# MISC | |
# --------------------------- | |
ssh-add ~/.ssh/id_rsa # Make sure the default ssh key is added as an identity | |
export PATH=$PATH:$HOME/bin # Add a bin directory to your user's home | |
# how bash shows the command prompt | |
PS1="\[\033[1;33m\]\W\[\033[00m\]\[\033[32m\]\$(parse_git_branch)\[\033[00m\] 🍖 " |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment