84 lines
1.5 KiB
Bash
84 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# some housekeeping
|
|
shopt -s autocd
|
|
set -o vi # vim mode
|
|
alias ls="ls --color=auto"
|
|
alias ll="ls -lah --color=auto"
|
|
function cd() {
|
|
builtin cd "$@" && ls --color=auto
|
|
}
|
|
|
|
# history
|
|
HISTCONTROL=ignorespace:ignoredups:erasedups
|
|
HISTFILESIZE=9999999999
|
|
HISTSIZE=9999999999
|
|
|
|
shopt -s cmdhist
|
|
shopt -s histreedit
|
|
shopt -s histappend
|
|
shopt -s histverify
|
|
|
|
PS1="\h:\w\$ "
|
|
|
|
# hostname shenanigans
|
|
case "$HOSTNAME" in
|
|
"copernicus")
|
|
PS1="\[\033[92;1m\]$PS1\[\033[0;0m\]"
|
|
;;
|
|
"x230t")
|
|
PS1="\[\033[93;1m\]$PS1\[\033[0;0m\]"
|
|
;;
|
|
"mlg")
|
|
PS1="\[\033[94;1m\]$PS1\[\033[0;0m\]"
|
|
;;
|
|
"netbox")
|
|
PS1="\[\033[95;1m\]$PS1\[\033[0;0m\]"
|
|
;;
|
|
*)
|
|
PS1="\[\033[96;1m\]$PS1\[\033[0;0m\]"
|
|
;;
|
|
esac
|
|
|
|
repos() {
|
|
sel="$(ls ~/git | fzy | awk '{print "/home/usr/git/"$1}')"
|
|
[ "$?" -eq 1 ] && exit
|
|
|
|
cd "$sel"
|
|
}
|
|
|
|
hist() {
|
|
res=$(cat ~/.config/bash/hist | \
|
|
sort | \
|
|
uniq | \
|
|
shuf | \
|
|
fzy)
|
|
|
|
[ -n "$res" ] && $($res)
|
|
}
|
|
|
|
search() {
|
|
if [ "$1" = '-a' ]; then
|
|
res=$(find /home/usr/ /home/usr/doc/ \
|
|
-mindepth 1 \
|
|
-not -path '*/.*' \
|
|
-not -path './Mail/*' \
|
|
-not -path './vdir/*' \
|
|
-not -path '*venv*' \
|
|
-not -path '*node_modules*' \
|
|
-not -path '*__pycache__*' \
|
|
-type d | cut -c 11- | fzy)
|
|
else
|
|
res=$(find $(pwd) \
|
|
-mindepth 1 \
|
|
-not -path '*/.*' \
|
|
-not -path './Mail/*' \
|
|
-not -path './vdir/*' \
|
|
-not -path '*venv*' \
|
|
-not -path '*node_modules*' \
|
|
-not -path '*__pycache__*' \
|
|
-type d | cut -c 11- | fzy)
|
|
fi
|
|
[ -n "$res" ] && cd /home/usr/"$res"
|
|
}
|