commit
a0999d2816
1 changed files with 254 additions and 0 deletions
@ -0,0 +1,254 @@ |
||||
############################################################################### |
||||
# # |
||||
# ● ○ ○ ○ ● # |
||||
# ● ● ○ ● ● Mike Ochmann # |
||||
# ● ○ ● ○ ● https://mike-ochmann.de # |
||||
# ● ○ ○ ○ ● # |
||||
# ● ○ ○ ○ ● # |
||||
# # |
||||
# My configuration for the Bourne Again Shell # |
||||
# Version 1,5,2 # |
||||
# # |
||||
############################################################################### |
||||
|
||||
|
||||
# Do not use this .bashrc if bash is not running in interactive mode |
||||
case $- in |
||||
*i*) ;; |
||||
*) return;; |
||||
esac |
||||
|
||||
# HISTORY |
||||
HISTCONTROL=ignoreboth:erasedups # don't put duplicate lines or lines starting with space in the history |
||||
HISTIGNORE="ls:bg:fg:history" # Hist ignores exact match |
||||
HISTTIMEFORMAT="%F %T " # add timestamp |
||||
HISTSIZE=10000 # History size |
||||
HISTFILESIZE=20000 # History file size |
||||
|
||||
shopt -s histappend # Append to the history file, don't overwrite it |
||||
shopt -s cmdhist # Save multi-line histroy as one line |
||||
shopt -s checkwinsize # Update columns/lines after commands |
||||
shopt -sq autocd # Can change dir without `cd` |
||||
shopt -s cdspell # Fixes minor spelling errors in cd paths |
||||
shopt -s no_empty_cmd_completion # Stops empty line tab comp |
||||
shopt -sq dirspell # Tab comp can fix dir name typos |
||||
|
||||
|
||||
# PATH |
||||
export PATH="/usr/local/opt/ncurses/bin:$PATH" |
||||
export PATH="/usr/local/bin/:/Users/mochmann/.cargo/bin:$PATH" |
||||
export PATH="/usr/local/Cellar:$PATH" |
||||
export PATH="$PATH:/Users/mochmann/.dotnet/tools" |
||||
export PATH="/usr/local/opt/mysql@5.7/bin:$PATH" |
||||
export PATH="/usr/local/opt/libpq/bin:$PATH" |
||||
export CC=clang |
||||
export CXX=clang++ |
||||
export PATH="/usr/local/lib/python3.9/site-packages:$PATH" |
||||
|
||||
# COLORS |
||||
|
||||
## enabling directory colors if possible |
||||
if [ -x /usr/bin/dircolors ] || [ -x /usr/local/bin/gdircolors ] |
||||
then |
||||
## `dircolors` is called `gdircolors` if installed via homebrew |
||||
if [[ "$OSTYPE" == "darwin"* ]] |
||||
then |
||||
dircolors() { |
||||
gdircolors "$@" |
||||
} |
||||
shopt -s expand_aliases |
||||
fi |
||||
if [ ! -f ~/.dircolors ] |
||||
then |
||||
dircolors -p > ~/.dircolors |
||||
fi |
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" |
||||
if [[ "$OSTYPE" == "darwin"* ]] |
||||
then |
||||
alias ls="ls -G" |
||||
else |
||||
alias ls="ls --color=auto" |
||||
alias grep="grep --color=auto" |
||||
alias fgrep="fgrep --color=auto" |
||||
alias egrep="egrep --color=auto" |
||||
#alias dir="dir --color=auto" |
||||
#alias vdir="vdir --color=auto" |
||||
fi |
||||
fi |
||||
|
||||
__prompt_command() { |
||||
local EXIT="$?" |
||||
## promp colors |
||||
|
||||
## Regular Bold Underline High Intensity BoldHigh Intensity Background High Intensity Backgrounds |
||||
local Bla='\[\e[0;30m\]'; local BBla='\[\e[1;30m\]'; local UBla='\[\e[4;30m\]'; local IBla='\[\e[0;90m\]'; local BIBla='\[\e[1;90m\]'; local On_Bla='\e[40m'; local On_IBla='\[\e[0;100m\]'; |
||||
local Red='\[\e[0;31m\]'; local BRed='\[\e[1;31m\]'; local URed='\[\e[4;31m\]'; local IRed='\[\e[0;91m\]'; local BIRed='\[\e[1;91m\]'; local On_Red='\e[41m'; local On_IRed='\[\e[0;101m\]'; |
||||
local Gre='\[\e[0;32m\]'; local BGre='\[\e[1;32m\]'; local UGre='\[\e[4;32m\]'; local IGre='\[\e[0;92m\]'; local BIGre='\[\e[1;92m\]'; local On_Gre='\e[42m'; local On_IGre='\[\e[0;102m\]'; |
||||
local Yel='\[\e[0;33m\]'; local BYel='\[\e[1;33m\]'; local UYel='\[\e[4;33m\]'; local IYel='\[\e[0;93m\]'; local BIYel='\[\e[1;93m\]'; local On_Yel='\e[43m'; local On_IYel='\[\e[0;103m\]'; |
||||
local Blu='\[\e[0;34m\]'; local BBlu='\[\e[1;34m\]'; local UBlu='\[\e[4;34m\]'; local IBlu='\[\e[0;94m\]'; local BIBlu='\[\e[1;94m\]'; local On_Blu='\e[44m'; local On_IBlu='\[\e[0;104m\]'; |
||||
local Pur='\[\e[0;35m\]'; local BPur='\[\e[1;35m\]'; local UPur='\[\e[4;35m\]'; local IPur='\[\e[0;95m\]'; local BIPur='\[\e[1;95m\]'; local On_Pur='\e[45m'; local On_IPur='\[\e[0;105m\]'; |
||||
local Cya='\[\e[0;36m\]'; local BCya='\[\e[1;36m\]'; local UCya='\[\e[4;36m\]'; local ICya='\[\e[0;96m\]'; local BICya='\[\e[1;96m\]'; local On_Cya='\e[46m'; local On_ICya='\[\e[0;106m\]'; |
||||
local Whi='\[\e[0;37m\]'; local BWhi='\[\e[1;37m\]'; local UWhi='\[\e[4;37m\]'; local IWhi='\[\e[0;97m\]'; local BIWhi='\[\e[1;97m\]'; local On_Whi='\e[47m'; local On_IWhi='\[\e[0;107m\]'; |
||||
local Mag='\[\e[0;95m\]'; |
||||
|
||||
local RCol='\[\e[0m\]' # Text Reset |
||||
|
||||
PS1="${debian_chroot:+(${Red}$debian_chroot${RCol})}" |
||||
|
||||
if [ $UID -eq "0" ] |
||||
then |
||||
PS1+="${BRed}\u${RCol}" |
||||
else |
||||
PS1+="${BGre}\u${Mag}" |
||||
fi |
||||
PS1+="${Pur}@\h " |
||||
local PSCol="$BBlu" |
||||
|
||||
PS1+="${PSCol}\w${RCol}" # Current working dir |
||||
if [ $EXIT != 0 ] |
||||
then |
||||
## can add `kill -l $?` to test to filter backgrounded |
||||
PS1+=" [${BRed}${EXIT}${RCol}]" # Add exit code, if non 0 |
||||
fi |
||||
|
||||
## Backgrounded running jobs |
||||
local BKGJBS=$(jobs -r | wc -l | tr -d ' ') |
||||
if [ ${BKGJBS} -gt 2 ] |
||||
then |
||||
PS1+=" ${Red}[bg:${BKGJBS}]${RCol}" |
||||
elif [ ${BKGJBS} -gt 0 ] |
||||
then |
||||
PS1+=" ${Yel}[bg:${BKGJBS}]${RCol}" |
||||
fi |
||||
|
||||
## Stopped Jobs |
||||
local STPJBS=$(jobs -s | wc -l | tr -d ' ') |
||||
if [ ${STPJBS} -gt 2 ] |
||||
then |
||||
PS1+=" ${Red}[stp:${STPJBS}]${RCol}" |
||||
elif [ ${STPJBS} -gt 0 ] |
||||
then |
||||
PS1+=" ${Yel}[stp:${STPJBS}]${RCol}" |
||||
if [ $UID -eq "0" ] |
||||
then |
||||
PS1+=" ${BRed}# ${RCol}" ## End of PS1 |
||||
else |
||||
PS1+=" ${BBlu}\$ ${RCol}" ## End of PS1 |
||||
fi |
||||
fi |
||||
|
||||
local branch=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/') |
||||
PS1+=" ${Cya}${branch}${RCol} > " |
||||
} |
||||
|
||||
#PS1='[\u]@\H \w [\$?] \\$ \[$(tput sgr0)\]' |
||||
export TERM=xterm-256color |
||||
export PROMPT_COMMAND=__prompt_command # Func to gen PS1 after CMDs |
||||
|
||||
## directory coloring |
||||
export LS_COLORS='di=35:ln=36:so=30;46:pi=30;43:ex=33:bd=30;45:cd=30;42:su=31;40:sg=30;41:tw=35:ow=35' |
||||
|
||||
|
||||
# INTERNALS |
||||
|
||||
# enable bash completion if nessecary |
||||
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 |
||||
|
||||
## git completion for macOS |
||||
if [[ "$OSTYPE" == "darwin"* ]] |
||||
then |
||||
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion || { |
||||
[ -f "$(brew --prefix)/etc/bash_completion.d/git-completion.bash" ] && \ |
||||
. $(brew --prefix)/etc/bash_completion.d/git-completion.bash |
||||
} |
||||
fi |
||||
|
||||
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh" |
||||
|
||||
# FUNCTIONS |
||||
cd() { |
||||
builtin cd "$@" && ls |
||||
} |
||||
|
||||
man() { |
||||
env \ |
||||
LESS_TERMCAP_mb=$(printf "\e[1;31m") \ |
||||
LESS_TERMCAP_md=$(printf "\e[1;31m") \ |
||||
LESS_TERMCAP_me=$(printf "\e[0m") \ |
||||
LESS_TERMCAP_se=$(printf "\e[0m") \ |
||||
LESS_TERMCAP_so=$(printf "\e[1;44;33m") \ |
||||
LESS_TERMCAP_ue=$(printf "\e[0m") \ |
||||
LESS_TERMCAP_us=$(printf "\e[1;32m") \ |
||||
man "$@" |
||||
} |
||||
|
||||
## goes up `n` directories |
||||
function up { |
||||
[ "${1/[^0-9]/}" == "$1" ] && { |
||||
local ups="" |
||||
for i in $(seq 1 $1) |
||||
do |
||||
ups=$ups"../" |
||||
done |
||||
cd $ups |
||||
} || echo "usage: up INTEGER" |
||||
} |
||||
|
||||
alias passgen="cat /dev/urandom | strings | grep -o '[a-zA-Z0-9]' | head -n 30 | tr -d '\n'; echo" |
||||
ytAudio() { |
||||
youtube-dl -x --audio-format mp3 $1 |
||||
} |
||||
|
||||
multipass() { |
||||
for n in $(seq 1 $1) |
||||
do |
||||
echo $(passgen) |
||||
done |
||||
} |
||||
nslookupr() { |
||||
nslookup $(nslookup $1 | grep Address | sed -n 2p | cut -d " " -f2) |
||||
} |
||||
digfull() { |
||||
dig +nocmd $1 any +multiline +noall +answer |
||||
} |
||||
|
||||
|
||||
# ENVIRONMENT |
||||
NPM_PACKAGES="${HOME}/.npm-packages" |
||||
|
||||
export PATH="$NPM_PACKAGES/bin:$PATH" |
||||
export EDITOR=vim |
||||
|
||||
unset MANPATH # delete if you already modified MANPATH elsewhere in your config |
||||
export MANPATH="$NPM_PACKAGES/share/man:$(manpath)" |
||||
|
||||
|
||||
# *ENV STUFF |
||||
eval "$(anyenv init -)" |
||||
eval "$(rbenv init -)" |
||||
|
||||
# ALIASES |
||||
alias ll="ls -lisa" |
||||
alias la="ls -A" |
||||
alias l="ls -CF" |
||||
alias histgrep='history | grep $@' |
||||
alias batt="pkill -f indicator-power-service" |
||||
alias pgcp="/home/miko/bash/pgcopy" |
||||
alias sqlplus="rlwrap -c sqlplus" |
||||
alias atvim="vim" |
||||
alias nano="vim" |
||||
alias fullupdate="sudo apt update && sudo apt upgrade && sudo apt dist-upgrade" |
||||
alias ygrep=ytAudio |
||||
alias sv="sudo vim" |
||||
alias reload="source ~/.bashrc" |
||||
alias editrc="vim ~/.bashrc && reload" |
||||
alias shutdowncause="log show --predicate 'eventMessage contains \"Previous shutdown cause\"' --last 24h" |
||||
alias gl="glab" |
Loading…
Reference in new issue