# # ~/.bashrc # # If not running interactively, don't do anything [[ $- != *i* ]] && return [[ "$(whoami)" = "root" ]] && return [[ -z "$FUNCNEST" ]] && export FUNCNEST=100 # limits recursive functions, see 'man bash' ## Use the up and down arrow keys for finding a command in history ## (you can write some initial letters of the command first). bind '"\e[A":history-search-backward' bind '"\e[B":history-search-forward' # 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 # --------------------------------------------------------------------------- # EDITOR # --------------------------------------------------------------------------- if [ -f "/usr/bin/vim" ]; then export EDITOR=/usr/bin/vim export SVN_EDITOR=/usr/bin/vim export GIT_EDITOR=/usr/bin/vim export VISUAL=/usr/bin/vim fi # --------------------------------------------------------------------------- # PROMPT # --------------------------------------------------------------------------- if [ -f "/usr/bin/starship" ]; then eval "$(starship init bash)" else # set a minimalist prompt red='\[\e[0;31m\]' # Red green='\[\e[0;32m\]' # Green blue='\[\e[0;34m\]' # Bold Blue boldred='\[\e[1;31m\]' # Bold Red reset='\[\e[0m\]' # Text Reset if [ "$USER" = "root" ] ; then # $bold$red PROMPT_USER_COLOR=$boldred PROMPT_SYMBOL="#" else PROMPT_USER_COLOR=$green PROMPT_SYMBOL="$" fi if [[ -n "$SSH_CLIENT$SSH2_CLIENT$SSH_TTY" ]] ; then PROMPT_SSH="@\h" else PROMPT_SSH="" fi PS1="$PROMPT_USER_COLOR\u$PROMPT_SSH $blue\w$reset $PROMPT_SYMBOL " if [ -f "$HOME/.bash-git-prompt/gitprompt.sh" ]; then GIT_PROMPT_ONLY_IN_REPO=1 GIT_PROMPT_IGNORE_SUBMODULES=1 GIT_PROMPT_WITH_VIRTUAL_ENV=0 GIT_PROMPT_THEME=Solarized_Yax source $HOME/.bash-git-prompt/gitprompt.sh fi fi # --------------------------------------------------------------------------- # ALIASES # --------------------------------------------------------------------------- # The ubiquitous 'll': directories first, with alphanumeric sorting alias ll="ls -lv --group-directories-first --ignore=.." # show long listing but no hidden dotfiles except "." alias la='ls -lav' alias rm='rm --interactive --verbose' alias mv='mv --interactive --verbose' alias cp='cp --verbose --interactive' alias wget='wget -c' alias dmesg='dmesg -T' alias grep='grep --color' alias vi='/usr/bin/vim' alias serve="python3 -m $(python3 -c 'import sys; print("http.server" if sys.version_info[:2] > (2,7) else "SimpleHTTPServer")')" alias ta='tmux attach' alias tkill="for s in \$(tmux list-sessions | awk -F ':' '{print \$1}' | fzf); do tmux kill-session -t \$s; done;" # ------------------------------------------------------------- # PYTHON # ------------------------------------------------------------- [[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc if [ -f "$HOME/.pythonz/pythons/CPython-3.9.1/bin/python" ]; then export PATH="$HOME/.pythonz/pythons/CPython-3.9.1/bin:$PATH" fi if [ -f "$HOME/.pythonz/pythons/CPython-3.9.1/bin/pew" ]; then source "$(pew shell_config)" fi if [ -d "$HOME/.poetry/bin" ]; then export PATH="$HOME/.poetry/bin:$PATH" fi # ------------------------------------------------------------- # Source all .bashrc files # ------------------------------------------------------------- if [ -d "$HOME/.local/bin" ]; then export PATH="$HOME/.local/bin:$PATH" fi if [ -d "$HOME/.bashrc.d/" ]; then for file in ~/.bashrc.d/*.bashrc; do . "$file" done fi