aboutsummaryrefslogblamecommitdiffstats
path: root/bash/aliases
blob: d978492ea9d9078512024d8ad26992e54ee13181 (plain) (tree)




















































                                                                                                      





                                                                          

































                                                                                                                                                                        
# -*- shell-script -*-

# DESCRIPTION:  Create directories and parents, if missing, and move into the first one
# USAGE:        mkcd <directory> [<additional directories to create>]
mkcd () {
	mkdir -p -- "$@"
	cd -- "$1"
}

# DESCRIPTION:  Start bash in a temporary directory and destroy it after exiting the new bash instance
# USAGE:        tmpsh
tmpsh () (
	local tmpdir
	tmpdir="${XDG_RUNTIME_DIR}"
	if test -z "$tmpdir"; then
	tmpdir=/tmp
	fi
	tmpdir="$tmpdir/tmpsh-$$.d"
	mkdir -p -- "$tmpdir"
	cd -- "$tmpdir"
	bash
	cd /
	rm -rf -- "$tmpdir"
	test ! -e "$tmpdir"
)

#DESCRIPTION:  Reload the shell configurations
#USAGE:        resh
resh () {
	. ~/.bashrc
}

#DESCRIPTION:  Edit the shell configurations
#USAGE:        edsh
edsh () {
	if [ -z "$EDITOR" ]; then
		echo 'No default editor is set, please configure the environment variable EDITOR'
	else
		$EDITOR ~/.bashrc
	fi
}

# DESCRIPTION:  Run a command in a infinite loop with a sleep between executions
# USAGE:        forever "<arguments for sleep>" <command>
forever () {
	time="$1"
	shift 1
	while true; do
		"$@"
		sleep $time
	done
}

# DESCRIPTION:  Recursive touch all files in the current working directory
# USAGE:        touch-all <extra arguments for find>
touch-all () {
	find -print0 "$@" | xargs -0 touch
}

#DESCRIPTION:  ls with long listing, classification with appendix character, hidden files and the . and .. directories
alias ll='ls -alF'

#DESCRIPTION:  ls with hidden files
alias la='ls -A'

#DESCRIPTION:  ls with classification with appendix character
alias l='ls -CF'

#DESCRIPTION:  Go to the parent directory
alias ..="cd .."



#libnotify
# DESCRIPTION:  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$//'\'')"'



for __script in ~/.config/bash/aliases.d/*; do
	if test -r "${__script}"; then
		. "${__script}"
	fi
done
unset __script

if test -r ~/.config/bash/"aliases-$(hostname)"; then
	. ~/.config/bash/"aliases-$(hostname)"
fi

if test -r ~/work/.config/bash/aliases; then
	. ~/work/.config/bash/aliases
fi