Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ---------------------------------------------------------------------------
- #
- # Description: This file holds all my BASH configurations and aliases
- #
- # Sections:
- # 1. Environment Configuration
- # 2. Make Terminal Better (remapping defaults and adding functionality)
- # 3. File and Folder Management
- # 4. Searching
- # 5. Process Management
- # 6. Networking
- # 7. System Operations & Information
- # 8. Web Development
- # 9. Reminders & Notes
- #
- # ---------------------------------------------------------------------------
- function gi() { curl -L -s https://www.gitignore.io/api/$@ ;}
- function deploy() { fab $@ deploy;}
- function rm () { /bin/rm -i $@ ;}
- function kill9() { ps auxww | grep $@ | awk '{print $2}' | xargs kill -9 ;}
- function httpserver() { python -m SimpleHTTPServer $@ && open "http://127.0.0.1:$@";}
- function cat() { pygmentize -g $@ ; }
- function cd() { cd $@ && ls ; }
- function weather() { curl wttr.in/$@ ; }
- function heroku_db() { heroku config:get DATABASE_URL --app $@ | xargs open;}
- # -------------------------------
- # SERVERS
- # -------------------------------
- # -------------------------------
- # WORKSPACES / PROJECTS
- # -------------------------------
- # alias project="cd /Users/PycharmProjects/youbl-admin/frontend/ && git pull && sudo npm install && bower install && gulp serve"
- # -------------------------------
- # ALIASES
- # -------------------------------
- alias python_package='cookiecutter https://github.com/audreyr/cookiecutter-pypackage.git'
- alias e='. env/bin/activate'
- alias style='tox -e check-isort,check-flake8'
- alias v='vim'
- alias vrc='editor ~/.vimrc'
- alias vi='vim'
- alias ve='. .ve/bin/activate'
- alias lessc='/usr/local/bin/lessc'
- alias ga='g++ *.cpp && ./a.out'
- alias editor='vim'
- alias bash_profile='editor ~/.bash_profile && source ~/.bash_profile'
- alias rm="rm -i"
- alias speedtest='wget -O /dev/null http://speedtest.london.linode.com/100MB-london.bin'
- alias g='grep -nr'
- alias sopot='weather sopot'
- alias ascii_docs='man 7 ascii'
- # Setting PATH for Python 3.4
- # The orginal version is saved in .bash_profile.pysave
- PATH="/Library/Frameworks/Python.framework/Versions/3.4/bin:${PATH}"
- export PATH
- export PATH=/usr/local/bin:$PATH
- export PATH=/usr/local/bin/mongodb/bin/:$PATH
- export PATH=$PATH:/usr/local/sbin
- if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
- # export GOPATH=~/go
- # export PATH=$PATH:$GOPATH/bin
- # GIT
- parse_git_branch() {
- git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
- }
- if [ -f `brew --prefix`/etc/bash_completion ]; then
- . `brew --prefix`/etc/bash_completion
- fi
- # FZF IS ROCKSTAR
- fh() {
- eval $( ([ -n "$ZSH_NAME" ] && fc -l 1 || history) | fzf +s --tac | sed 's/ *[0-9]* *//')
- }
- fkill() {
- pid=$(ps -ef | sed 1d | fzf -m | awk '{print $2}')
- if [ "x$pid" != "x" ]
- then
- kill -${1:-9} $pid
- fi
- }
- fchrome() {
- local cols sep
- cols=$(( COLUMNS / 3 ))
- sep='{{::}}'
- # Copy History DB to circumvent the lock
- # - See http://stackoverflow.com/questions/8936878 for the file path
- cp -f ~/Library/Application\ Support/Google/Chrome/Default/History /tmp/h
- sqlite3 -separator $sep /tmp/h \
- "select substr(title, 1, $cols), url
- from urls order by last_visit_time desc" |
- awk -F $sep '{printf "%-'$cols's \x1b[36m%s\n", $1, $2}' |
- fzf --ansi --multi | sed 's#.*\(https*://\)#\1#' | xargs open
- }
- # COLORS
- # -------------------------------
- # 1. ENVIRONMENT CONFIGURATION
- # -------------------------------
- # Change Prompt
- # ------------------------------------------------------------
- export PS1="________________________________________________________________________________\n| \u \n| \w \$(parse_git_branch) \n| => "
- export PS2="| => "
- export PROMPT_COMMAND="history -a;((\$SECONDS % 10==0 ))&&eval \"\$AA_P\";echo -en \"\$PVE\";" \
- # Set Paths
- # ------------------------------------------------------------
- export PATH="$PATH:/usr/local/bin/"
- export PATH="/usr/local/git/bin:/sw/bin/:/usr/local/bin:/usr/local/:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
- # POSTGRES
- export PATH=/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH
- # 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
- # Add color to terminal
- # (this is all commented out as I use Mac Terminal Profiles)
- # from http://osxdaily.com/2012/02/21/add-color-to-the-terminal-in-mac-os-x/
- # ------------------------------------------------------------
- export CLICOLOR=1
- # -----------------------------
- # 2. MAKE TERMINAL BETTER
- # -----------------------------
- alias cp='cp -iv' # Preferred 'cp' implementation
- alias mv='mv -iv' # Preferred 'mv' implementation
- alias mkdir='mkdir -pv' # Preferred 'mkdir' implementation
- alias l='ls -FGlAhp' # Preferred 'ls' implementation
- alias ls='ls -GFh' # 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 subl="/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text"
- alias .6='cd ../../../../../../' # Go back 6 directory levels
- alias edit='editor $(fzf)' # 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
- 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
- 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'
- # mans: Search manpage given in agument '1' for term given in argument '2' (case insensitive)
- # displays paginated result with colored search terms and two lines surrounding each hit. Example: mans mplayer codec
- # --------------------------------------------------------------------
- mans () {
- man $1 | grep -iC2 --color=always $2 | less
- }
- # showa: to remind yourself of an alias (given some part of it)
- # ------------------------------------------------------------
- showa () { /usr/bin/grep --color=always -i -a1 $@ ~/Library/init/bash/aliases.bash | grep -v '^\s*$' | less -FSRXc ; }
- # -------------------------------
- # 3. FILE AND FOLDER MANAGEMENT
- # -------------------------------
- zipf () { zip -r "$1".zip "$1" ; } # zipf: To create a ZIP archive of a folder
- alias numFiles='echo $(ls -1 | wc -l)' # numFiles: Count of non-hidden files in current dir
- alias make1mb='mkfile 1m ./1MB.dat' # make1mb: Creates a file of 1mb size (all zeros)
- alias make5mb='mkfile 5m ./5MB.dat' # make5mb: Creates a file of 5mb size (all zeros)
- alias make10mb='mkfile 10m ./10MB.dat' # make10mb: Creates a file of 10mb size (all zeros)
- # cdf: 'Cd's to frontmost window of MacOS Finder
- # ------------------------------------------------------
- cdf () {
- currFolderPath=$( /usr/bin/osascript <<EOT
- tell application "Finder"
- try
- set currFolder to (folder of the front window as alias)
- on error
- set currFolder to (path to desktop folder as alias)
- end try
- POSIX path of currFolder
- end tell
- EOT
- )
- echo "cd to \"$currFolderPath\""
- cd "$currFolderPath"
- }
- # 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
- }
- # ---------------------------
- # 4. 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"; }
- # ---------------------------
- # 5. 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 ; }
- # ---------------------------
- # 6. NETWORKING
- # ---------------------------
- alias myip='curl ipinfo.io' # myip: Public facing IP Address
- alias netCons='lsof -i' # netCons: Show all open TCP/IP sockets
- alias flushDNS='dscacheutil -flushcache; 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
- }
- # ---------------------------------------
- # 7. SYSTEMS OPERATIONS & INFORMATION
- # ---------------------------------------
- alias mountReadWrite='/sbin/mount -uw /' # mountReadWrite: For use when booted into single-user
- # 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"
- # screensaverDesktop: Run a screensaver on the Desktop
- # -----------------------------------------------------------------------------------
- alias screensaverDesktop='/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background'
- # ---------------------------------------
- # 8. WEB DEVELOPMENT
- # ---------------------------------------
- alias apacheEdit='sudo edit /etc/httpd/httpd.conf' # apacheEdit: Edit httpd.conf
- alias apacheRestart='sudo apachectl graceful' # apacheRestart: Restart Apache
- alias editHosts='sudo edit /etc/hosts' # editHosts: Edit /etc/hosts file
- alias herr='tail /var/log/httpd/error_log' # herr: Tails HTTP error logs
- alias apacheLogs="less +F /var/log/apache2/error_log" # Apachelogs: Shows apache error logs
- alias webserver='python -m SimpleHTTPServer'
- httpHeaders () { /usr/bin/curl -I -L $@ ; } # httpHeaders: Grabs headers from web page
- # httpDebug: Download a web page and show info on what took time
- # -------------------------------------------------------------------
- httpDebug () { /usr/bin/curl $@ -o /dev/null -w "dns: %{time_namelookup} connect: %{time_connect} pretransfer: %{time_pretransfer} starttransfer:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement