Automate safe system upodates with a single script (for APT + systemd systems)

THE PROBLEM Keeping a Linux system fully updated usually means doing several things by hand: Update APT package lists Upgrade installed packages Remove unused dependencies and cached files Update Flatpak apps (if you use Flatpak) Update firmware via fwupd (if available) Decide whether to reboot or shut down None of that is hard, but it is repetitive and easy to skip steps, especially firmware updates. This script turns that whole workflow into a single, safe command. REQUIREMENTS This script assumes: Package manager Uses APT Example: Debian, Ubuntu, Linux Mint and similar Init system Uses systemd (for systemctl reboot/poweroff) Shell bash (script uses “#!/usr/bin/env bash” and “set -euo pipefail”) You can run it with: bash script.sh Privileges Your user has sudo rights Optional components Flatpak (optional) If not installed, Flatpak steps are skipped fwupd (fwupdmgr, optional) If not installed, firmware steps a...

Manipulating texts like a spreadsheet: AWK

AWK is a command to filter the output text data like it was a spreadsheet.

$ awk 'command' file

According to awk, the fields of a line in a file are by default separated by a space. After every space a new field starts. To change the separator, use -F 'new-separator' immediately after the command awk.

$ awk -F':' '{print $2,$5}' file
Prints the second and fifth field of every line. Therefore, the second and fifth column. The separator is no longer the space, but ":".

$ command | awk ....
Applies awk to the command output

$ awk '{print $NF}' ...
Prints the last field only


Guide for future implementations: https://www.youtube.com/watch?v=9YOZmI-zWok&t=764s

Comments