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 text utilities: TR, TEE, WC, CUT

TR

Translates specified characters into other characters or to delete them. It requires at least one argument, the maximum is two.

$ tr [options] set1 [set2]
or
$ command [FILE] | tr options

tr a-z A-Z
Convert lower case to upper case

tr '{}' '()' < inputfile > outputfile
Translates braces into parenthesis

echo "This is for testing" | tr [:space:] '\t'
Translates white-space to tabs

echo "This is for testing" | tr -s [:space:]
Squeezes repetition of characters using -s

echo "the geek stuff" | tr -d 't'
Deletes specified characters using -d option

echo "my username is 432234" | tr -cd [:digit:]
Complements the sets using -c option

tr -cd [:print:] < file.txt
Removes all non-printable character from a file

tr -s '\n' ' ' < file.txt
Joins all the lines in a file into a single line

TEE

Merge the standard displayed output of a command with the creation of a file like it was $ command > FILE 


WC

Counts the number of lines, words, and characters in a file or list of files:
  • –l Number of lines
  • -c Number of bytes
  • -w Number of words

CUT

A weakened version of AWK. It displays the wanted column of a column-based text file.

$ ls -l | cut -d" " -f3
Prints the third column of the file, assuming that the columns are separated by a space " ".



Comments