Last active
January 26, 2017 23:42
-
-
Save NAlexPear/0d191b59b9828b72e28ec6508cec5f88 to your computer and use it in GitHub Desktop.
My standard .bashrc for Xubuntu environments
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
# ~/.bashrc: executed by bash(1) for non-login shells. | |
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) | |
# for examples | |
# If not running interactively, don't do anything | |
case $- in | |
*i*) ;; | |
*) return;; | |
esac | |
# don't put duplicate lines or lines starting with space in the history. | |
# See bash(1) for more options | |
HISTCONTROL=ignoreboth | |
# append to the history file, don't overwrite it | |
shopt -s histappend | |
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) | |
HISTSIZE=1000 | |
HISTFILESIZE=2000 | |
# check the window size after each command and, if necessary, | |
# update the values of LINES and COLUMNS. | |
shopt -s checkwinsize | |
# make less more friendly for non-text input files, see lesspipe(1) | |
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" | |
# enable color support of ls and also add handy aliases | |
if [ -x /usr/bin/dircolors ]; then | |
test -r $HOME/.dircolors && eval "$(dircolors -b $HOME/.dircolors)" || eval "$(dircolors -b)" | |
alias ls='ls --color=auto' | |
alias dir='dir --color=auto' | |
alias vdir='vdir --color=auto' | |
alias grep='grep --color=auto' | |
alias fgrep='fgrep --color=auto' | |
alias egrep='egrep --color=auto' | |
fi | |
# Alias definitions. | |
# You may want to put all your additions into a separate file like | |
# ~/.bash_aliases, instead of adding them here directly. | |
# See /usr/share/doc/bash-doc/examples in the bash-doc package. | |
if [ -f $HOME/.bash_aliases ]; then | |
. $HOME/.bash_aliases | |
fi | |
# thefuck! | |
eval "$(thefuck --alias)" | |
export DEVELOPER_APPLICATION_READY=developer_development | |
# http2 curl | |
export LD_LIBRARY_PATH=/usr/local/lib | |
# arcanist | |
export PATH=$PATH:/usr/bin/arcanist/bin/ | |
# SETUP CONSTANTS | |
# Bunch-o-predefined colors. Makes reading code easier than escape sequences. | |
# Reset | |
Color_Off="\[\033[0m\]" # Text Reset | |
# Regular Colors | |
Black="\[\033[0;30m\]" # Black | |
Red="\[\033[0;31m\]" # Red | |
Green="\[\033[0;32m\]" # Green | |
Yellow="\[\033[0;33m\]" # Yellow | |
Blue="\[\033[0;34m\]" # Blue | |
Purple="\[\033[0;35m\]" # Purple | |
Cyan="\[\033[0;36m\]" # Cyan | |
White="\[\033[0;37m\]" # White | |
# Bold | |
BBlack="\[\033[1;30m\]" # Black | |
BRed="\[\033[1;31m\]" # Red | |
BGreen="\[\033[1;32m\]" # Green | |
BYellow="\[\033[1;33m\]" # Yellow | |
BBlue="\[\033[1;34m\]" # Blue | |
BPurple="\[\033[1;35m\]" # Purple | |
BCyan="\[\033[1;36m\]" # Cyan | |
BWhite="\[\033[1;37m\]" # White | |
# Underline | |
UBlack="\[\033[4;30m\]" # Black | |
URed="\[\033[4;31m\]" # Red | |
UGreen="\[\033[4;32m\]" # Green | |
UYellow="\[\033[4;33m\]" # Yellow | |
UBlue="\[\033[4;34m\]" # Blue | |
UPurple="\[\033[4;35m\]" # Purple | |
UCyan="\[\033[4;36m\]" # Cyan | |
UWhite="\[\033[4;37m\]" # White | |
# Background | |
On_Black="\[\033[40m\]" # Black | |
On_Red="\[\033[41m\]" # Red | |
On_Green="\[\033[42m\]" # Green | |
On_Yellow="\[\033[43m\]" # Yellow | |
On_Blue="\[\033[44m\]" # Blue | |
On_Purple="\[\033[45m\]" # Purple | |
On_Cyan="\[\033[46m\]" # Cyan | |
On_White="\[\033[47m\]" # White | |
# High Intensty | |
IBlack="\[\033[0;90m\]" # Black | |
IRed="\[\033[0;91m\]" # Red | |
IGreen="\[\033[0;92m\]" # Green | |
IYellow="\[\033[0;93m\]" # Yellow | |
IBlue="\[\033[0;94m\]" # Blue | |
IPurple="\[\033[0;95m\]" # Purple | |
ICyan="\[\033[0;96m\]" # Cyan | |
IWhite="\[\033[0;97m\]" # White | |
# Bold High Intensty | |
BIBlack="\[\033[1;90m\]" # Black | |
BIRed="\[\033[1;91m\]" # Red | |
BIGreen="\[\033[1;92m\]" # Green | |
BIYellow="\[\033[1;93m\]" # Yellow | |
BIBlue="\[\033[1;94m\]" # Blue | |
BIPurple="\[\033[1;95m\]" # Purple | |
BICyan="\[\033[1;96m\]" # Cyan | |
BIWhite="\[\033[1;97m\]" # White | |
# High Intensty backgrounds | |
On_IBlack="\[\033[0;100m\]" # Black | |
On_IRed="\[\033[0;101m\]" # Red | |
On_IGreen="\[\033[0;102m\]" # Green | |
On_IYellow="\[\033[0;103m\]" # Yellow | |
On_IBlue="\[\033[0;104m\]" # Blue | |
On_IPurple="\[\033[10;95m\]" # Purple | |
On_ICyan="\[\033[0;106m\]" # Cyan | |
On_IWhite="\[\033[0;107m\]" # White | |
# Various variables you might want for your PS1 prompt instead | |
Time12h="\T" | |
Time12a="\@" | |
PathShort="\w" | |
PathFull="\W" | |
NewLine="\n" | |
Jobs="\j" | |
# This PS1 snippet was adopted from code for MAC/BSD I saw from: http://allancraig.net/index.php?option=com_content&view=article&id=108:ps1-export-command-for-git&catid=45:general&Itemid=96 | |
# I tweaked it to work on UBUNTU 11.04 & 11.10 plus made it mo' better | |
source $HOME/.rvm/scripts/rvm; | |
source $HOME/.git-completion.bash; | |
source $HOME/.git-prompt.sh; | |
export PS1=$IBlack$Time12h$Color_Off'$(git branch &>/dev/null;\ | |
if [ $? -eq 0 ]; then \ | |
echo "$(echo `git status` | grep "nothing to commit" > /dev/null 2>&1; \ | |
if [ "$?" -eq "0" ]; then \ | |
# @4 - Clean repository - nothing to commit | |
echo "'$Green'"$(__git_ps1 " (%s)"); \ | |
else \ | |
# @5 - Changes to working tree | |
echo "'$IRed'"$(__git_ps1 " (%s)"); \ | |
fi) '$BIYellow$PathShort$BIRed' → '$Color_Off' "; \ | |
else \ | |
# @2 - Prompt when not in GIT repo | |
echo " '$Yellow$PathShort$BIRed' → '$Color_Off' "; \ | |
fi)' | |
# aliases | |
commit() { | |
git commit -m "$1"; | |
} | |
push() { | |
git push $1 $2; | |
} | |
pull() { | |
git pull $1 $2; | |
} | |
fetch() { | |
git fetch $1; | |
} | |
check-out() { | |
git checkout $1; | |
} | |
cherry-pit() { | |
git rebase -p --onto $1^ $1; | |
} | |
cherry-pick() { | |
git cherry-pick $1^..$2; | |
} | |
docker-kill() { | |
sudo docker stop $(sudo docker ps -aq) && sudo docker rm $(sudo docker ps -aq); | |
} | |
alias gs="git status" | |
alias gb="git branch" | |
alias ga="git add -A" | |
alias gc=commit | |
alias gpll=pull | |
alias gf=fetch | |
alias gco=check-out | |
alias gpsh=push | |
alias gcpit=cherry-pit | |
alias gcpick=cherry-pick | |
sbash() { | |
BashPath="$HOME/Code/gists/env/" | |
cat $HOME/.bashrc > $BashPath.bashrc && git -C $BashPath add .bashrc && git -C $BashPath commit -m "Update .bashrc" && git -C $BashPath push origin master | |
} | |
alias apache-res="sudo service apache2 restart" | |
alias rebash="source $HOME/.bashrc" | |
# some more ls aliases | |
alias ll='ls -alF' | |
alias la='ls -A' | |
alias l='ls -CF' | |
# Add an "alert" alias for long running commands. Use like so: | |
# sleep 10; alert | |
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' | |
# Work-related aliases | |
alias pivot="npm run build:pivot" | |
alias dev="npm run dev" | |
# Useful Environment Variables | |
export env URL=http://develop.pivot.local | |
export env TEST=http://nhcs.pivot.local | |
export env BROWSER=chrome | |
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting | |
export NVM_DIR="/home/alex/.nvm" | |
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment