Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.35 KB | None | 0 0
  1. # ~/.bashrc: executed by bash(1) for non-login shells.
  2. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
  3. # for examples
  4.  
  5. # If not running interactively, don't do anything
  6. case $- in
  7. *i*) ;;
  8. *) return;;
  9. esac
  10.  
  11. # don't put duplicate lines or lines starting with space in the history.
  12. # See bash(1) for more options
  13. HISTCONTROL=ignoreboth
  14.  
  15. # append to the history file, don't overwrite it
  16. shopt -s histappend
  17.  
  18. # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
  19. HISTSIZE=1000
  20. HISTFILESIZE=2000
  21.  
  22. # check the window size after each command and, if necessary,
  23. # update the values of LINES and COLUMNS.
  24. shopt -s checkwinsize
  25.  
  26. # If set, the pattern "**" used in a pathname expansion context will
  27. # match all files and zero or more directories and subdirectories.
  28. #shopt -s globstar
  29.  
  30. # make less more friendly for non-text input files, see lesspipe(1)
  31. #[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
  32.  
  33. # set variable identifying the chroot you work in (used in the prompt below)
  34. if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
  35. debian_chroot=$(cat /etc/debian_chroot)
  36. fi
  37.  
  38. # set a fancy prompt (non-color, unless we know we "want" color)
  39. case "$TERM" in
  40. xterm-color|*-256color) color_prompt=yes;;
  41. esac
  42.  
  43. # uncomment for a colored prompt, if the terminal has the capability; turned
  44. # off by default to not distract the user: the focus in a terminal window
  45. # should be on the output of commands, not on the prompt
  46. #force_color_prompt=yes
  47.  
  48. if [ -n "$force_color_prompt" ]; then
  49. if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
  50. # We have color support; assume it's compliant with Ecma-48
  51. # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
  52. # a case would tend to support setf rather than setaf.)
  53. color_prompt=yes
  54. else
  55. color_prompt=
  56. fi
  57. fi
  58.  
  59. if [ "$color_prompt" = yes ]; then
  60. PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
  61. else
  62. PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
  63. fi
  64. unset color_prompt force_color_prompt
  65.  
  66. # If this is an xterm set the title to user@host:dir
  67. case "$TERM" in
  68. xterm*|rxvt*)
  69. PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
  70. ;;
  71. *)
  72. ;;
  73. esac
  74.  
  75. # enable color support of ls and also add handy aliases
  76. if [ -x /usr/bin/dircolors ]; then
  77. test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
  78. alias ls='ls --color=auto'
  79. #alias dir='dir --color=auto'
  80. #alias vdir='vdir --color=auto'
  81.  
  82. #alias grep='grep --color=auto'
  83. #alias fgrep='fgrep --color=auto'
  84. #alias egrep='egrep --color=auto'
  85. fi
  86.  
  87. # colored GCC warnings and errors
  88. #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
  89.  
  90. # some more ls aliases
  91. #alias ll='ls -l'
  92. #alias la='ls -A'
  93. #alias l='ls -CF'
  94.  
  95. # Alias definitions.
  96. # You may want to put all your additions into a separate file like
  97. # ~/.bash_aliases, instead of adding them here directly.
  98. # See /usr/share/doc/bash-doc/examples in the bash-doc package.
  99.  
  100. if [ -f ~/.bash_aliases ]; then
  101. . ~/.bash_aliases
  102. fi
  103.  
  104. # enable programmable completion features (you don't need to enable
  105. # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
  106. # sources /etc/bash.bashrc).
  107. if ! shopt -oq posix; then
  108. if [ -f /usr/share/bash-completion/bash_completion ]; then
  109. . /usr/share/bash-completion/bash_completion
  110. elif [ -f /etc/bash_completion ]; then
  111. . /etc/bash_completion
  112. fi
  113. fi
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121. ### prompt setup
  122.  
  123. color01="\[\033[0;31m\]"
  124. color02="\[\033[0;32m\]"
  125. color03="\[\033[0;33m\]"
  126. color04="\[\033[0;34m\]"
  127. color05="\[\033[0;35m\]"
  128. color06="\[\033[0;36m\]"
  129. color07="\[\033[0;37m\]"
  130. color08="\[\033[0;38m\]"
  131. color09="\[\033[0;39m\]"
  132.  
  133. color11="\[\033[1;31m\]"
  134. color12="\[\033[1;32m\]"
  135. color13="\[\033[1;33m\]"
  136. color14="\[\033[1;34m\]"
  137. color15="\[\033[1;35m\]"
  138. color16="\[\033[1;36m\]"
  139. color17="\[\033[1;37m\]"
  140. color18="\[\033[1;38m\]"
  141. color19="\[\033[1;39m\]"
  142.  
  143. err_color="\[\033[0;37m\]"
  144.  
  145. reset_color="\[\033[0m\]"
  146.  
  147. gitprompt () {
  148. if [[ -d .git ]]; then
  149. branch="$(git symbolic-ref -q HEAD | sed 's/^refs\/heads\///')"
  150. untracked="$(if [[ "$(git status -unormal | grep '^Untracked' | wc -l)" -gt 0 ]]; then echo "${color01}*"; fi)"
  151. uncommitted="$(if [[ "$(git status -unormal | grep '^Changes to be committed' | wc -l)" -gt 0 ]]; then echo "${color02}*"; fi)"
  152. off="$(git status -unormal | grep -E '^Your branch is (ahead|behind).*by [0-9]+ commits.*$')"
  153. notstaged="$(if [[ "$(git status -unormal | grep -E '^Changes not staged for commit.*$' | wc -l)" -gt 0 ]]; then echo "${color04}*"; fi)"
  154. aheadbehind="$(if [[ "$(git status -unormal | grep -E '^Your branch is (ahead|behind).*$' | wc -l)" -gt 0 ]]; then echo "${color03}*"; fi)"
  155. offinfo=""; offchars="$(echo -n "$off" | wc -c)"; if [[ $offchars -gt 0 ]]; then offinfo="${color02}:"; fi
  156. diverged="$(git status -unormal | grep -E '^Your branch and.*have diverged.*$')"
  157. divergedinfo=""; divergedchars="$(echo -n "$diverged" | wc -c)"; if [[ $divergedchars -gt 0 ]]; then divergedinfo="${color03}$diverged"; fi
  158. echo -n "${sq_color}[${reset_color}git ${color03}(${color13}${branch}${color03})${untracked}${uncommitted}${aheadbehind}${offinfo}${divergedinfo}${notstaged}${sq_color}]${reset_color} "
  159. fi
  160. }
  161.  
  162. # Outputs the current trunk, branch, or tag
  163. __svn_branch() {
  164. local url=
  165. if [[ -d .svn ]]; then
  166. url=`svn info | awk '/URL:/ {print $2}'`
  167. if [[ $url =~ trunk ]]; then
  168. echo trunk
  169. elif [[ $url =~ /branches/ ]]; then
  170. echo $url | sed -e 's#^.*/\(branches/.*\)/.*$#\1#'
  171. elif [[ $url =~ /tags/ ]]; then
  172. echo $url | sed -e 's#^.*/\(tags/.*\)/.*$#\1#'
  173. fi
  174. fi
  175. }
  176.  
  177. # Outputs the current revision
  178. __svn_rev() {
  179. local r=$(svn info | awk '/Revision:/ {print $2}')
  180. local a="$(svn status | grep '^\s*[?ACDMR?!]' | grep '^?' | wc -l)"
  181. if [[ "$a" -gt 0 ]]; then
  182. echo "${r}*"
  183. else
  184. echo "${r}"
  185. fi
  186. }
  187.  
  188. svnprompt () {
  189. if [[ -d .svn ]]; then echo -n "${sq_color}[${reset_color}svn: $(__svn_rev) ($(__svn_branch))${sq_color}]${reset_color} "; fi
  190. }
  191.  
  192. # This function is actually run every time you press enter to build the prompt. Make
  193. # your modifications here.
  194. prompt () {
  195. # prompt setup
  196. if [[ ${EUID} == 0 ]] ; then
  197. # root squares color
  198. sq_color="\[\033[0;31m\]"
  199. symbol='#'
  200. else
  201. # user squares color
  202. sq_color="\[\033[0;34m\]"
  203. symbol='$'
  204. fi
  205. returncode="$1"
  206. shift
  207. if [[ "$returncode" -gt 0 ]]; then
  208. returncodestring=" $returncode"
  209. fi
  210. echo -n "$sq_color[\[\033[01;34m\]\u@\h\[\033[0;32m\]:\[\033[01;33m\]\w\[\033[01;31m\]${returncodestring}$sq_color] \[\033[01;37m\]\\[\\033[0m\\]"
  211. gitprompt
  212. svnprompt
  213. echo
  214. }
  215.  
  216. PROMPT_COMMAND='PS1=$(prompt $?); echo -ne "\033]0;${USER}@${HOSTNAME}: $(pwd | sed "s/\/home\/${USER}/\~/")\007"'
  217.  
  218. # history related stuff (see history -a in PROMPT_COMMAND, too!)
  219. PROMPT_COMMAND="$PROMPT_COMMAND; history -a"
  220. export HISTTIMEFORMAT="%h %d %H:%M:%S "
  221. export HISTSIZE=20000
  222. export HISTFILESIZE=20000
  223. shopt -s histappend
  224.  
  225. # disable systemctl's stupid auto-paging feature:
  226. export SYSTEMD_PAGER=
  227.  
  228. if [[ "$COLORTERM" || "$KONSOLE_PROFILE_NAME" ]]; then
  229. if [[ "$TERM" == xterm ]]; then
  230. export TERM=xterm-256color
  231. fi
  232. fi
  233.  
  234. alias ls="ls --color=auto --group-directories-first -F"
  235. alias grep='grep --color=auto'
  236. alias less='less -R'
  237.  
  238. # append ~/bin to $PATH if it exists
  239. if [[ -d $HOME/bin/ ]]; then
  240. export PATH=$PATH:$HOME/bin
  241. fi
  242.  
  243. if [[ -f $HOME/.env ]]; then
  244. . $HOME/.env
  245. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement