Skip to content

general linux

copy progress

with cp and pv

bash
cp -r /the/source /the/destination | pv -lep -s $(du -sb /the/source | awk '{print $1}') >/dev/null

with rsync

bash
rsync -aP /the/source /the/destination

with cp and bar

bash
cp -r /the/source /the/destination | bar

kill all processes owned by a user

bash
sudo kill -9 $(pgrep -u username)

show ssl certificate (https or not)

bash
# https website
openssl s_client -showcerts -servername docs.rda.run -connect docs.rda.run:443 < /dev/null

# any other tls service still works
openssl s_client -showcerts -servername tlshost.example.org -connect tlshost.example.org:49056 < /dev/null

show dell service tag

bash
sudo dmidecode -s system-serial-number

using a lockfile to run a script only one at a time

bash
#!/bin/bash

lockfile="$0.lockfile"

if [[ -e "$lockfile" ]] && ! kill -0 "$(< "$lockfile")" 2>/dev/null; then
	echo "Warning: lockfile exists but the process is dead, continuing."
	rm -f "$lockfile"
elif [[ -e "$lockfile" ]]; then
	echo "My important work is already running. Exiting."
	exit 1
fi

printf '%s\n' "$$" > "$lockfile"

# add all your important stuff here.

rm -f "$lockfile"

exit 0

viewing crontab of all users

bash
for user in $(cut -f1 -d: /etc/passwd); do echo $user; sudo crontab -u $user -l; done

simulating the java trim() in bash

bash
echo " test test test " | sed -e 's/^ *//' -e 's/ *$//'

reference: StackOverflow