Created
March 6, 2017 18:28
-
-
Save bharat-p/ba11f742d256671a327807884008183c 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
# Add `~/bin` to the `$PATH` | |
export PS1="\[\033[33m\][\u@\[\033[1;31m\]\h]\]\033[0m in :\w \n\033[1;34m\][\d \t]\[\`if [[ \$? = "0" ]]; then echo '\e[0;32m > \e[0m'; else echo '\e[0;31m > \e[0m' ; fi\`\]\033[0m" | |
export PATH="$HOME/bin:$PATH"; | |
# Load the shell dotfiles, and then some: | |
# * ~/.path can be used to extend `$PATH`. | |
# * ~/.extra can be used for other settings you don’t want to commit. | |
for file in ~/.{path,bash_prompt,exports,aliases.rc,local_functions.rc,env.rc,local.rc}; do | |
[ -r "$file" ] && [ -f "$file" ] && source "$file"; | |
done; | |
unset file; | |
# Case-insensitive globbing (used in pathname expansion) | |
shopt -s nocaseglob; | |
# Append to the Bash history file, rather than overwriting it | |
shopt -s histappend; | |
# Autocorrect typos in path names when using `cd` | |
shopt -s cdspell; | |
# Enable some Bash 4 features when possible: | |
# * `autocd`, e.g. `**/qux` will enter `./foo/bar/baz/qux` | |
# * Recursive globbing, e.g. `echo **/*.txt` | |
for option in autocd globstar; do | |
shopt -s "$option" 2> /dev/null; | |
done; | |
# Add tab completion for many Bash commands | |
if which brew > /dev/null && [ -f "$(brew --prefix)/etc/bash_completion" ]; then | |
source "$(brew --prefix)/etc/bash_completion"; | |
elif [ -f /etc/bash_completion ]; then | |
source /etc/bash_completion; | |
fi; | |
# Enable tab completion for `g` by marking it as an alias for `git` | |
if type _git &> /dev/null && [ -f /usr/local/etc/bash_completion.d/git-completion.bash ]; then | |
complete -o default -o nospace -F _git g; | |
fi; | |
# Add tab completion for SSH hostnames based on ~/.ssh/config, ignoring wildcards | |
[ -e "$HOME/.ssh/config" ] && complete -o "default" -o "nospace" -W "$(grep "^Host" ~/.ssh/config | grep -v "[?*]" | cut -d " " -f2- | tr ' ' '\n')" scp sftp ssh; | |
# Add tab completion for `defaults read|write NSGlobalDomain` | |
# You could just use `-g` instead, but I like being explicit | |
complete -W "NSGlobalDomain" defaults; | |
# Add `killall` tab completion for common apps | |
complete -o "nospace" -W "Contacts Calendar Dock Finder Mail Safari iTunes SystemUIServer Terminal Twitter" killall; | |
export HISTTIMEFORMAT="%d/%m/%y %T " | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment