Last active
July 5, 2021 13:14
-
-
Save andmax/8531539de5643c4c1e3744b31d2bb5d9 to your computer and use it in GitHub Desktop.
Good .bashrc file to have in home directory to configure bash shell
This file contains 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
# --------------------------------------------------------------------------------- | |
# ~/.bashrc: executed by bash(1) for non-login shells. | |
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) | |
# for examples | |
# If not running interactively, don't do anything | |
case $- in | |
*i*) ;; | |
*) return;; | |
esac | |
# E.g. of a use case of running .bashrc interactively: | |
# $ ssh -tt machine "conda env list" | |
# (important for ipcluster installed via anaconda running using ssh) | |
# Comment case lines above and uncomment if lines below: | |
if [ -z "$PS1" ]; then | |
shopt -s expand_aliases | |
fi | |
# bash_history settings: size and no duplicates and no lines w/ lead spaces | |
export HISTCONTROL="ignoreboth" | |
export HISTSIZE="" | |
export HISTFILESIZE="" | |
# append to the history file, don't overwrite it | |
shopt -s histappend | |
# 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 | |
# set a fancy prompt (non-color, unless we know we "want" color) | |
case "$TERM" in | |
xterm-color|*-256color) color_prompt=yes;; | |
esac | |
if [ -n "$force_color_prompt" ]; then | |
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then | |
# We have color support; assume it's compliant with Ecma-48 | |
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such | |
# a case would tend to support setf rather than setaf.) | |
color_prompt=yes | |
else | |
color_prompt= | |
fi | |
fi | |
if [ "$color_prompt" = yes ]; then | |
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' | |
else | |
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' | |
fi | |
unset color_prompt force_color_prompt | |
# 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 | |
# 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 | |
. ~/.bash_aliases | |
fi | |
# enable color support of ls and also add handy aliases | |
if [ -x /usr/bin/dircolors ]; then | |
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 -alhF' | |
alias la='ls -A' | |
alias l='ls -CF' | |
# some docker aliases | |
alias docker_ps='docker ps --no-trunc' | |
alias docker_clean='docker rm $(docker ps -qa --no-trunc --filter "status=exited")' | |
# 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 | |
. /usr/share/bash-completion/bash_completion | |
elif [ -f /etc/bash_completion ]; then | |
. /etc/bash_completion | |
fi | |
fi | |
# colored GCC warnings and errors | |
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' | |
# coloured prompt with title bar change | |
PS1="\n\u @ \[\e[0;33m\]\h\[\e[0m\] [\@] \[\e[0;36m\]\w\[\e[0m\]\[\e]2;\u @ \h\a\]\n$ " | |
# source to setup environment | |
#source ~/config_env.sh | |
#source ~/proxy.sh | |
#source ~/bashrc_additions.sh | |
# Autojump | |
[ -f /usr/share/autojump/autojump.sh ] && source /usr/share/autojump/autojump.sh | |
# To have SSH agent to avoid typing ssh private key passphrase many times in git | |
if [ -f ~/.agent.env ] ; then | |
. ~/.agent.env > /dev/null | |
if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then | |
echo "Stale agent file found. Spawning new agent… " | |
eval `ssh-agent | tee ~/.agent.env` | |
ssh-add | |
fi | |
else | |
echo "Starting ssh-agent" | |
eval `ssh-agent | tee ~/.agent.env` | |
ssh-add | |
fi | |
# To have X11 display on Windows | |
#export DISPLAY=localhost:0.0 | |
# Do not set: LIBGL_ALWAYS_INDIRECT=1 (uncheck native opengl in vcxsrv) | |
# grep nameserver /etc/resolv.conf | awk '{print $2}' > /tmp/localhost_ip | |
export DISPLAY=$(ip r | head -n 1 | awk '{print $3}'):0.0 | |
# This is to fix WSL 2 bug by copying resolv.conf correctly generated | |
# by WSL 1 in the /etc folder | |
sudo cp /home/amaximo/etc/resolv.conf /etc/ | |
# WSL 2 also has a bug with CUDA where it does copy files in | |
# /usr/lib/wsl/lib instead of creating symbolic links | |
sudo cp /home/amaximo/etc/ld.wsl.conf /etc/ld.so.conf.d/ | |
sudo ldconfig | |
# For some reason CUDA toolkit in WSL2 does not set the path correctly | |
export PATH="/usr/local/cuda/bin:$PATH" | |
# To have ccache (compiler cache) ready | |
export PATH="/usr/lib/ccache:$PATH" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment