Last active
October 22, 2019 15:56
-
-
Save pgaref/fc5ee6c75f11e0c5f509c40641e3a5ea to your computer and use it in GitHub Desktop.
Custom bash profile for MacOS
This file contains 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
################## | |
### ALIASES ### | |
################## | |
# git command autocompletion script | |
source ~/.git-completion.bash | |
source ~/.git-prompt.sh | |
source ~/.profile | |
# git commamands simplified | |
alias gst='git status' | |
alias gco='git checkout' | |
alias gci='git commit' | |
alias grb='git rebase' | |
alias gbr='git branch' | |
alias gad='git add -A' | |
alias gpl='git pull' | |
alias gpu='git push' | |
alias glg='git log --date-order --all --graph --format="%C(green)%h%Creset %C(yellow)%an%Creset %C(blue bold)%ar%Creset %C(red bold)%d%Creset%s"' | |
alias glg2='git log --date-order --all --graph --name-status --format="%C(green)%H%Creset %C(yellow)%an%Creset %C(blue bold)%ar%Creset %C(red bold)%d%Creset%s"' | |
# ls alias for color-mode | |
alias lh='ls -lhaG' | |
# lock computer | |
alias lock='/System/Library/CoreServices/"Menu Extras"/User.menu/Contents/Resources/CGSession -suspend' | |
# up 'n' folders | |
alias ..='cd ..' | |
alias ...='cd ../..' | |
alias ....='cd ../../..' | |
alias .....='cd ../../../..' | |
# simple ip | |
alias ip='ifconfig | grep "inet " | grep -v 127.0.0.1 | cut -d\ -f2' | |
# more details | |
alias ip1="ifconfig -a | perl -nle'/(\d+\.\d+\.\d+\.\d+)/ && print $1'" | |
# grep with color | |
alias grep='grep --color=auto' | |
# proxy tunnel | |
#alias proxy='ssh -D XXXX -p XXXX USER@DOMAIN' | |
# ssh home | |
#alias sshome='ssh -p XXXX USER@DOMAIN' | |
# processes | |
#alias ps='ps -ax' | |
# refresh shell | |
alias reload='source ~/.bash_profile' | |
############################### | |
### ENVIRONMENTAL VARIABLES ### | |
############################### | |
# Add homebrew sbin to PATH variable | |
export PATH="$PATH:/usr/local/bin/" | |
export PATH=$PATH:/usr/local/sbin | |
# Set Default Editor (change 'Nano' to the editor of your choice) | |
# ------------------------------------------------------------ | |
export EDITOR=/usr/bin/nano | |
# Set default blocksize for ls, df, du | |
# from this: http://hints.macworld.com/comment.php?mode=view&cid=24491 | |
# ------------------------------------------------------------ | |
export BLOCKSIZE=1k | |
# --------------------------- | |
# 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"; } | |
# --------------------------- | |
# PROCESS MANAGEMENT | |
# --------------------------- | |
# findPid: find out the pid of a specified process | |
# ----------------------------------------------------- | |
# Note that the command name can be specified via a regex | |
# E.g. findPid '/d$/' finds pids of all processes with names ending in 'd' | |
# Without the 'sudo' it will only find processes of the current user | |
# ----------------------------------------------------- | |
findPid () { lsof -t -c "$@" ; } | |
# memHogsTop, memHogsPs: Find memory hogs | |
# ----------------------------------------------------- | |
alias memHogsTop='top -l 1 -o rsize | head -20' | |
alias memHogsPs='ps wwaxm -o pid,stat,vsize,rss,time,command | head -10' | |
# cpuHogs: Find CPU hogs | |
# ----------------------------------------------------- | |
alias cpu_hogs='ps wwaxr -o pid,stat,%cpu,time,command | head -10' | |
# topForever: Continual 'top' listing (every 10 seconds) | |
# ----------------------------------------------------- | |
alias topForever='top -l 9999999 -s 10 -o cpu' | |
# ttop: Recommended 'top' invocation to minimize resources | |
# ------------------------------------------------------------ | |
# Taken from this macosxhints article | |
# http://www.macosxhints.com/article.php?story=20060816123853639 | |
# ------------------------------------------------------------ | |
alias ttop="top -R -F -s 10 -o rsize" | |
# my_ps: List processes owned by my user: | |
# ------------------------------------------------------------ | |
my_ps() { ps $@ -u $USER -o pid,%cpu,%mem,start,time,bsdtime,command ; } | |
# --------------------------- | |
# NETWORKING | |
# --------------------------- | |
alias myip='curl ipv4.icanhazip.com' # myip: Public facing IP Address | |
alias netCons='lsof -i' # netCons: Show all open TCP/IP sockets | |
alias flushDNS='dscacheutil -flushcache' # 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() { | |
RED='\033[0;31m' | |
NC='\033[0m' # No Color | |
echo -e "\nYou are logged on ${RED}$HOSTNAME" | |
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 | |
} | |
# Show dirty state in prompt when in Git repos | |
export GIT_PS1_SHOWDIRTYSTATE=1 | |
# Change prompt | |
PS1_OLD=${PS1} | |
export CLICOLOR=1 | |
export LSCOLORS=GxFxCxDxBxegedabagaced | |
export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \[\033[1;92m\]$(__git_ps1 "(%s)")\[\033[0m\]$ ' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment