Last active
November 4, 2017 12:51
-
-
Save matthanley/4bb11bdd4ef152904ac7c981a2cc3d50 to your computer and use it in GitHub Desktop.
Gentoo bashrc
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
# /etc/bash/bashrc | |
# | |
# This file is sourced by all *interactive* bash shells on startup, | |
# including some apparently interactive shells such as scp and rcp | |
# that can't tolerate any output. So make sure this doesn't display | |
# anything or bad things will happen ! | |
# Test for an interactive shell. There is no need to set anything | |
# past this point for scp and rcp, and it's important to refrain from | |
# outputting anything in those cases. | |
if [[ $- != *i* ]] ; then | |
# Shell is non-interactive. Be done now! | |
return | |
fi | |
# Bash won't get SIGWINCH if another process is in the foreground. | |
# Enable checkwinsize so that bash will check the terminal size when | |
# it regains control. #65623 | |
# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11) | |
shopt -s checkwinsize | |
# Disable completion when the input buffer is empty. i.e. Hitting tab | |
# and waiting a long time for bash to expand all of $PATH. | |
shopt -s no_empty_cmd_completion | |
# Enable history appending instead of overwriting when exiting. #139609 | |
shopt -s histappend | |
# Save each command to the history file as it's executed. #517342 | |
# This does mean sessions get interleaved when reading later on, but this | |
# way the history is always up to date. History is not synced across live | |
# sessions though; that is what `history -n` does. | |
# Disabled by default due to concerns related to system recovery when $HOME | |
# is under duress, or lives somewhere flaky (like NFS). Constantly syncing | |
# the history will halt the shell prompt until it's finished. | |
#PROMPT_COMMAND='history -a' | |
# Change the window title of X terminals | |
case ${TERM} in | |
[aEkx]term*|rxvt*|gnome*|konsole*|interix) | |
PS1='\[\033]0;\u@\h:\w\007\]' | |
;; | |
screen*) | |
PS1='\[\033k\u@\h:\w\033\\\]' | |
;; | |
*) | |
unset PS1 | |
;; | |
esac | |
# Set colorful PS1 only on colorful terminals. | |
# dircolors --print-database uses its own built-in database | |
# instead of using /etc/DIR_COLORS. Try to use the external file | |
# first to take advantage of user additions. | |
use_color=false | |
if type -P dircolors >/dev/null ; then | |
# Enable colors for ls, etc. Prefer ~/.dir_colors #64489 | |
LS_COLORS= | |
if [[ -f ~/.dir_colors ]] ; then | |
# If you have a custom file, chances are high that it's not the default. | |
used_default_dircolors="no" | |
eval "$(dircolors -b ~/.dir_colors)" | |
elif [[ -f /etc/DIR_COLORS ]] ; then | |
# People might have customized the system database. | |
used_default_dircolors="maybe" | |
eval "$(dircolors -b /etc/DIR_COLORS)" | |
else | |
used_default_dircolors="yes" | |
eval "$(dircolors -b)" | |
fi | |
if [[ -n ${LS_COLORS:+set} ]] ; then | |
use_color=true | |
fi | |
unset used_default_dircolors | |
else | |
# Some systems (e.g. BSD & embedded) don't typically come with | |
# dircolors so we need to hardcode some terminals in here. | |
case ${TERM} in | |
[aEkx]term*|rxvt*|gnome*|konsole*|screen|cons25|*color) use_color=true;; | |
esac | |
fi | |
if ${use_color} ; then | |
if [[ ${EUID} == 0 ]] ; then | |
PS1+='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] ' | |
else | |
PS1+='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] ' | |
fi | |
alias ls='ls --color=auto' | |
alias grep='grep --colour=auto' | |
alias egrep='egrep --colour=auto' | |
alias fgrep='fgrep --colour=auto' | |
else | |
if [[ ${EUID} == 0 ]] ; then | |
# show root@ when we don't have colors | |
PS1+='\u@\h \W \$ ' | |
else | |
PS1+='\u@\h \w \$ ' | |
fi | |
fi | |
for sh in /etc/bash/bashrc.d/* ; do | |
[[ -r ${sh} ]] && source "${sh}" | |
done | |
# Try to keep environment pollution down, EPA loves us. | |
unset use_color sh |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment