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 and lines: SORT, UNIQ, PASTE, JOIN, SPLIT

 SORT

Basically, alphabetical sorting.

$ sort <filename>
Sort the lines in the specified file, according to the characters at the beginning of each line

$ cat file1 file2 | sort
Combine the two files, then sort the lines and display the output on the terminal

$ sort -r <filename>
Sort the lines in reverse order

$ sort -k 3 <filename>
Sort the lines by the 3rd field on each line instead of the beginning


UNIQ

Remove the duplicates in the same line of a file

$ sort file1 file2 | uniq > file3
or
sort -u file1 file2 > file3

uniq -c filename
counts the numbers of duplicates


PASTE

$ paste -d ':' file1 file2
Merges the rows of file1 and file2 separating them with ":" instead of a TAB space.

-s
Outputs the data in horizontal rows instead of vertical.


JOIN

$ join file1 file2
Merges the rows of file1 and file2 overwriting the same fileds.


SPLIT

$ split file segment-file
Splits file1 into equal-sized segments named segment-filexx of 1000 lines each (default number). Where xx is the number related to each segment file.

Comments