Best of .bashrc
Or, actually, .bash_aliases - but that's not as fun to say
On this page I've gathered some selected bits and pieces from
my .bash_aliases file. Apart from the selection of
hacks and scripts available on this site,
these are the homemade contraptions I use most frequently when farting
around with my computer.
Quick links:
- Putting the computer to sleep
- Getting system information
- Listing directories
- Working with archives
- Calculations with decimals
- POSIX reference documentation
- Taking notes
Putting the computer to sleep
# suspend (sleep) alias zzz="systemctl suspend"
A nifty little piece I believe to be stolen from the *BSD world. On a systemd Linux installation, this will put the computer to sleep.
Getting system information
# system health information
alias inf="uname -sr && uptime| sed 's/ //' && sensors|grep Pack && \
lscpu|grep 'CPU MHz:' && acpi && \
echo -n 'Memory in use: ' && free -m|grep Mem|\
awk '{print \$3+\$5\" megs\"}'"
This will show the uptime, CPU temperature, current CPU frequency, battery status and RAM usage. The various commands used will differ somewhat between platforms and distributions. Example output:
Linux 5.4.0-72-generic 00:05:42 up 3 days, 9:36, 4 users, load average: 0,05, 0,10, 0,09 Package id 0: +39.0°C (high = +105.0°C, crit = +105.0°C) CPU MHz: 1152.108 Battery 0: Not charging, 100% Memory in use: 947 megs
Listing directories
alias lsd="ls -d */"
This lists just the directories in the current working directory.
Coming from the Amiga side of things,
it's preposterous how unintuitive this is. dir dirs,
anyone?
But you know how the saying goes: "There are two major products to come out of Berkeley: LSD and UNIX. We don't believe this to be a coincidence."
Now I have managed to combine them!
Working with archives
# archives alias ltar="tar -ztvf" alias untar="tar -zxvf" alias atar="tar -cvzf"
Lists, unpacks and creates .tgz archives.
Why atar? I don't remember, but now I'm used to it.
Calculations with decimals
# bc calc shorthand
function cl {
echo "scale=5; $@" | bc
}
POSIX reference documentation
# show posix command reference
function posix {
if [ -z "$1" ]; then
(dillo "$HOME/docs/posix-2018/idx/utilities.html" >/dev/null &)
return 0
fi
HTMLFILE="$HOME/docs/posix-2018/utilities/$1.html"
if [ -s "$HTMLFILE" ]; then
(dillo "$HTMLFILE" >/dev/null &)
return 0
fi
echo "No matching file for '$1'"
return 1
}
Use Dillo to view either
a list of all POSIX shell commands, or the POSIX documentation for
a single command. I've downloaded the official documentation
from here
(it's free for personal use) and keep it unpacked in my home directory,
so I can just use posix awk to read a very comprehensive
description of awk. This documentation is often much better than man pages
and contains actually useful examples.
Taking notes
# take a note
function note {
if [ -z "$1" ]; then
echo "No note entered."
else
echo "$@" >> "$HOME/docs/_line_notes"
fi
}
# display notes
function notes {
FN="$HOME/docs/_line_notes"
if [ ! -f "$FN" ]; then
echo "No notes (file missing)."
return
fi
if [ -z "$1" ]; then
LINECOUNT="10"
else
LINECOUNT="$1"
fi
LNUM=$(wc -l "$FN"|cut -d " " -f1)
echo "Showing max $LINECOUNT of $LNUM notes."
tail "$FN" -n "$LINECOUNT"
}
# clear all notes
function clearnotes {
rm "$HOME/docs/_line_notes"
touch "$HOME/docs/_line_notes"
}
Using note, I can make a quick note like so:
$ note hjalfi asm 1:20
which will indicate that I've watched one hour and twenty minutes
of Hjalfi writes an assembler and emulator for a spaceship,
so that I know where to continue watching next time
by simply typing:
$ notes
Pretty nifty!