Skip to content

Instantly share code, notes, and snippets.

@thoroc
Last active May 12, 2017 17:12
Show Gist options
  • Save thoroc/7195121 to your computer and use it in GitHub Desktop.
Save thoroc/7195121 to your computer and use it in GitHub Desktop.
Terminal config
##############################################################
# BASH_ALIASES
##############################################################
#-------------------------------------------------------------
# The 'ls' family
#-------------------------------------------------------------
alias ll='LANG=C ls -alF --group-directories-first'
alias ls='LANG=C ls -AhF --color' # add colors for filetype recognition
alias la='LANG=C ls -Al' # show hidden files
alias lx='LANG=C ls -lXB' # sort by extension
alias lk='LANG=C ls -lSr' # sort by size, biggest last
alias lc='LANG=C ls -ltcr' # sort by and show change time, most recent last
alias lu='LANG=C ls -ltur' # sort by and show access time, most recent last
alias lt='LANG=C ls -ltr' # sort by date, most recent last
alias lm='LANG=C ls -al |more' # pipe through 'more'
alias lr='LANG=C ls -lR' # recursive ls
alias tree='tree -Csu' # nice alternative to 'recursive ls'
#------------------------------------------------------------
# Not in use
#------------------------------------------------------------
# alias ll='ls -alF'
# alias la='ls -A'
# alias l='ls -CF'
alias cls='clear;LANG=C ls'
alias dus='df -h'
#------------------------------------------------------------
# Play nicely ...
# ------------------------------------------------------------
alias rm='rm -i'
alias rmdir='rmdir -p'
alias cp='cp -i'
alias mv='mv -i'
alias mkdir='mkdir -p'
# ~/.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
#----------------------------------------------------------
[ -z "$PS1" ] && return
#----------------------------------------------------------
# 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
#----------------------------------------------------------
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
#
# make less more friendly for non-text input files, see lesspipe(1)
#----------------------------------------------------------
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
#----------------------------------------------------------
# umask 0007
#----------------------------------------------------------
BLUE= "\001\e[0;34m\002"
BOLDBLUE= "\001\e[1;34m\002"
CYAN= "\001\e[0;36m\002"
BOLDCYAN= "\001\e[1;36m\002"
GREEN= "\001\e[0;32m\002"
BOLDGREEN= "\001\e[1;32m\002"
RED= "\001\e[0;31m\002"
MAGENTA= "\001\e[0;35m\002"
RESET= "\001\e[0m\002"
BOLDYELLOW= "\001\e[1;33m\002"
#----------------------------------------------------------
# set a fancy prompt (non-color, unless we know we "want" color)
#----------------------------------------------------------
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
#----------------------------------------------------------
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#----------------------------------------------------------
force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
unset color_prompt force_color_prompt
#----------------------------------------------------------
# Color for Git repo status
#----------------------------------------------------------
set_bash_prompt ()
{
git_status="$(git status 2> /dev/null)"
if [[ ${git_status} =~ "working directory clean" ]]; then
state="${GREEN}"
elif [[ ${git_status} =~ "Changes to be committed" ]]; then
state="${YELLOW}"
else
state="${RED}"
fi
TITLEBAR='\[\e]0;\u@\h - \w\a\]'
PS1="${TITLEBAR}[${BLUE}\u${RESET}@${CYAN}\h${RESET} \W${state}\$(git branch 2>/dev/null | grep -e '\* ' | sed 's/^..\(.*\)/ [\1]/')${RESET}]\$ "
}
PROMPT_COMMAND=set_bash_prompt
#----------------------------------------------------------
# enable color support of ls and also add handy aliases
#----------------------------------------------------------
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.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
#----------------------------------------------------------
# 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$//'\'')"'
#----------------------------------------------------------
# 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 ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
#----------------------------------------------------------
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#----------------------------------------------------------
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
export GOROOT="$HOME/go"
export GOPATH="$HOME"
export GOBIN="$GOPATH/bin"
export CDPATH=.:$HOME:$GOROOT/src/pkg/:$GOPATH/src/code.google.com/p:$GOPATH/src/github.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment