#!/bin/bash # .bashrc # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac # Source global definitions if [ -f /etc/bashrc ]; then # shellcheck disable=SC1091 . /etc/bashrc fi # Uncomment the following line if you don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER= export PATH="${PATH}:${HOME}/bin:/usr/local/bin:/usr/local/sbin" export EDITOR=nano # My PS1 customization mkdir -p "${HOME}/src" if [ ! -d "${HOME}/src/bash_prompt" ]; then git clone https://github.com/ajdelgado/bash_prompt.git --depth 1 "${HOME}/src/bash_prompt" cp "${HOME}/src/bash_prompt/bashrc_ps1.sh" "${HOME}/.bashrc_ps1" -rfp fi # shellcheck disable=SC1091 source "${HOME}/.bashrc_ps1" # Format history records export HISTTIMEFORMAT="[%s] " # Append to history file and share between shells PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND" # Don't overwrite it history shopt -s histappend # Unlimited history export HISTFILESIZE= export HISTSIZE= # don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoreboth # 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)" # set variable identifying the chroot you work in (used in the prompt below) if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" ;; *) ;; esac # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then # shellcheck disable=SC2015 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 # 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$//'\'')"' # 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 # shellcheck disable=SC1090 . ~/.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 ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then # shellcheck disable=SC1091 . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then # shellcheck disable=SC1091 . /etc/bash_completion fi fi mkdir -p "${HOME}/.screen" export SCREENDIR="${HOME}/.screen" # Set other bashrc files mkdir -p "${HOME}/.bashrc.d" while read -r bashrc_file do # shellcheck disable=SC1090 source "${bashrc_file}" done <<< "$(find "${HOME}/.bashrc.d" -type f)"