Initial commit

This commit is contained in:
2024-02-13 13:11:53 -05:00
commit 401d67ac1d
3 changed files with 140 additions and 0 deletions

38
.shell_aliases Normal file
View File

@@ -0,0 +1,38 @@
# Turn on interactive mode for dangerous commands
alias cp='cp -iv'
alias mv='mv -iv'
alias rm='rm -iv'
# File sizes should always be human-readable
alias df='df -h'
alias du='du -h'
# Greps
alias egrep='egrep --color=auto' # show differences in colour
alias fgrep='fgrep --color=auto' # show differences in colour
# File Listing
# Must have lsd installed (https://github.com/lsd-rs/lsd)
alias ls='lsd '
alias l='ls -CF' # list with Columns
alias la='ls -CFA' # l with . and ..
alias ll='ls -l' # long list
alias lla='ls -al' # ll with . and ..
alias ls='ls -hF --color=tty' # classify files in colour
alias lls='ls -lh --sort=size --reverse'
alias llt='ls -l -t -r'
# Extras
alias ping='ping -c 5' # Stop pinging after 5 pings
alias vi='vim' # use vim instead of vi
alias less='less -r' # repaint screen
# Get Ext IP
alias extip='curl -s -4 icanhazip.com'
# Memory Pigs (top 10)
alias mempigs='ps aux | awk '\''{print $6/1024 " MB\t\t" $11 " " $12}'\'' | sort -n | tail -10'
# Edit files with vim/fzf
alias vfz='vim "`fzf`"'
alias vimf='vim "`fzf`"'

99
.shell_functions Normal file
View File

@@ -0,0 +1,99 @@
# Shell Functions
# Shell note pad
note () {
# if file doesn't exist, create it
if [[ ! -f $HOME/.notes ]]; then
touch "$HOME/.notes"
fi
if ! (($#)); then
# no arguments, print file
cat "$HOME/.notes"
elif [[ "$1" == "-c" ]]; then
# clear file
echo -n "Clear notes file? [Y/N] "
read replace
if [ "${replace}" = "Y" ] || [ "${replace}" = "y" ]; then
echo "Emptying notes file..."
printf "%s" > "$HOME/.notes"
echo "Done."
else
echo "Notes file preserved."
fi
else
# add all arguments to file
echo -n $(date +"%F %T | ") >> "$HOME/.notes"
printf "%s\n" "$*" >> "$HOME/.notes"
fi
}
# tar/gzip a directory
# I use this before 'rm -rf'ing a directory I think is useless
# if nothing breaks after a predetermined amount of time, then the tar file is safe to delete
tardir() {
#ensure $1 is a directory
if [ ! -d "${1}" ]; then
echo "$1 is not a directory. Aborting."
return 1
fi
#strip trailing slash
target="${1%/}"
echo "Dir size: $(du -hs ${target})"
tar czf "${target}".tar.gz "${target}"
echo "Archive size: $(du -hs ${target}.tar.gz)"
}
# Replacement for 'for i in $(ls); do du -hs $i; done' that handles spaces
function dudir() {
if ! (($#)); then
dir=$(pwd)
else
dir="${1}"
fi
# redefine $IFS
o=$IFS
IFS=$(echo -en "\n\b")
for i in $(ls "${dir}"); do
du -hs "${i}"
done
# reset $IFS
IFS=$o
}
# HAHA! Weather in the terminal
weather() {
if [ $(command -v curl) ]; then
if ! (($#)); then
curl wttr.in/44113
else
curl wttr.in/$1
fi
else
echo "curl not installed. Aborting."
fi
}
# Replaces "ps aux | grep <something>" with "psaux <something>". Shorter to type, more informational and doesn't include the command itself in the output.
psaux () { pgrep -f "$@" | xargs ps -fp 2>/dev/null; }
# mail a file
email() {
if ! (($#)); then
echo "USAGE: email {filename} {email-address}"
return 1
else
efile=${1}
eaddr=${2}
echo "See Attached" | mail -s "File: ${efile}" -a ${efile} ${2}
fi
}
# git testmerge
testmerge() {
echo "git merge --no-commit --no-ff $1"
git merge --no-commit --no-ff $1
echo "git diff --cached"
git diff --cached
echo "'git merge --abort' when done"
}

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# Shell Aliases and Functions
A repo to keep these files portable