See also:
For networking tdd.nu/monitor-networking.
For GPU in deep learning dmml.nu/monitor-dl-gpu

TEMPERATURE

To monitor CPU temperature lm-sensors (Linux Monitoring sensors):

sudo apt-get install -y lm-sensors && \
sudo sensors-detect && \
sensors
# sudo service kmod start # optional

Extra: using watch to auto-refresh:

watch -n 1 -d sensors # n: nr of seconds to refresh

sensors (gif from nixCraft)

To monitor HDD temperature:

sudo apt-get install hddtemp && \
hddtemp /dev/sd*

Ref: askubuntu

CPU & IO

apt-get install -y sysstat
which includes:
sar -u 2 5: overall cpu usage, every 2sec, repeat 5 times.
mpstat -P ALL: individual processor performance.
iostat: HDD read/write.