Tools Q - T

rsync

Das Tools rsync kann Daten zwischen lokalen und Netzwerkressourcen abgleichen bzw. synchronisieren.

In Zusammenarbeit mit SSH (oder einem spzeziellen rsync Daemon) werden hierbei nur die Datendifferenzen übertragen, was das System sehr effizient macht.

Für das Tool gibt es diverse GUIs: grsync, LuckyBackup, Unison, rsnapshot, Back In Time, …

Hinweis

Bei der Syntax für rsync sollten die abführenden Schrägstriche bei Ordnern beachtet werden.

Die folgenden beiden rsync Aufträge erledigen dieselbe Aufgabe:

rsync -a /boot/grub /data/backup
rsync -a /boot/grub/ /data/backup/grub

Weiterführender Link zu rsync: How to Transfer Files with Rsync over SSH

Screenshots

Diverse Techniken für die Erstellung von Screenshots per Tastendruck.

Übersicht auf Arch Wiki: https://wiki.archlinux.de/title/Screenshot_erstellen

Hier die Basistools ohne Desktop-Verwandschaft:

  • scrot

  • import (Paket: imagemagick)

  • xwd (Paket: xorg-apps)

Special: Screenshots in textbasierten echten Konsolen mit fbgrab und setterm -dump …

chvt 3; sleep 2; fbgrab /home/bild.png          # tty2
# Ubuntu/sudo style: erst einen Aufruf mit sudo Authentifizierung dann
chvt 3; sleep 2; sudo fbgrab /home/bild.png          # tty2

chvt wechselt in die zweite Konsole, sleep pausiert zwei Sekunden, um den Bildaufbau auf jeden Fall abzuwarten, und fbgrab erstellt das Bild in /home/bild.png

Oder alternativ als root oder mit sudo ausführen:

setterm -dump 2 -file screenshot2.txt

SHA Prüfsummentools

Für unterschiedliche SHA-Algorithmen:

  • sha1sum

  • sha224sum

  • sha256sum

  • sha384sum

  • sha512sum

Am besten natürlich nicht nur Prüfsummen - bei relevanten ISO-Downlaods - checken, sondern am Besten auch gleich mit entsprechender Signatur überprüfen.

Beispielhafte Vorgehensweise: https://linuxmint.com/verify.php

sl

Ich mag einfach Fun in der Konsole - man tippt ständig den ls-Befehl und dann kann man sich ja auch mal mit sl vertippen.

Und dann zeigt einem die Steaming Locomotive, dass man es vielleicht etwas langsamer angehehen sollte ;-)

sl - Steaming Locomotive (Typo bei ls)

sl - Steaming Locomotive (Typo bei ls)

S.M.A.R.T.

Die SMART-Tools häufig in Paket smartmontools (und auch grafische Oberfläche gsmartcontrol) verfügbar.

In der Konsole - als einfacher Test: sudo smartctl -H /dev/sda

sudo smartctl -H /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-40-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

source bzw. .-Operator

Mit source (oder alternativ dem .-Operator aka Dot-Operator) laden wir Ausführkommandos in der aktuellen Shell - also ohne Subshell!

Wichtig für Neuladen der Bash-Konfig: source ~/.bashrc bzw. . ~/.bashrc

speaker-test

Ein Tool aus dem Paket alsa-utils: speaker-test -t wav -c2

Sprachausgabe (hier: Test mit WAV-Datei an 2 Channels) mit Strg + C abbrechen.

Hinweis

Bei Tests mit Hyper-V-Maschinen bedenken: No Sound!

split

Mit split kann man größere Dateien in kleinere zerlegen: split -C 4G sicherung.tar.gz DVD.

Die erzeugten Dateien heißen hier: DVD.aa, DVD.ab und so fort. Der Zusammenbau kann mit cat erfolgen.

ss

Die moderne Ausgabe für Sockets Statistics - also dem Tool netstat sehr ähnlich, das häufig auf Distros nachinstalliert werden muss.

Liste für lauschende Ports: ss -ltpn

Liste alle aktiven TCP-Sockets für IPv4: ss -4 -t -a

stat

Die Ausgaben von Statistik zu Filesystem-Einträgen.

$ stat ~/.bashrc
  Datei: /home/UserName/.bashrc
  Größe: 4149           Blöcke: 16         EA Block: 4096   Normale Datei
Gerät: 802h/2050d       Inode: 1975282     Verknüpfungen: 1
Zugriff: (0644/-rw-r--r--)  Uid: ( 1000/    UserName)   Gid: ( 1000/    UserName)
Zugriff    : 2020-07-18 19:35:13.605110813 +0200
Modifiziert: 2020-05-30 13:33:33.680894934 +0200
Geändert   : 2020-05-30 13:33:33.684894917 +0200
 Geburt    : -

tac

Genau wie cat aber eben umgekehrt - umgedrehte Reihenfolge in Ausgabe.

tail

In Zeiten moderner Journale und Loggings nicht mehr SOOO spannend - aber immer noch gut:

tail -f /var/log/syslog beobachtet die Datei real time

tar

Der Klassiker in der Konsole zum Archivieren und Packen. Aufgrund des Alters des Tools mit verwirrend vielen unterschiedlichen Aufrufkombinationen: mit und ohne -, Reihenfolge der Argumente, …

Hier meine Kurzanleitung für die tägliche Praxis mit einer ersten Übersicht über die Argumente für tar:

  • x - Extrahieren / Expand

  • c - Create / Erstellen

  • v - Verbose (dt.: geschwätzig; Infos in Konsole zeigen)

  • z - Komprimierung mit GZip

  • f - Filename / Datei

  • j - Komprimierung mit BZ2

  • C - Angabe eines Entpackziels: tar ... -C /tmp

Beispiel: Archiv eines Home-Dir erstellen (möglichst von außerhalb)

tar cvzf userxyz-$(date -I).tar.gz /home/userxyz

Archiv wiederherstellen:

tar xvzf userxyz-20200620.tar.gz (im Ordner /home)

Sicherungsarchiv entpacken zum Analysieren / einzeln Ordner/Dateien holen:

tar xvzf userxyz-20200620.tar.gz -C /tmp

tee

Gleichzeitige Ausgabe im Standardausgabekanal und Ausgabe/Umleitung in Datei: ls -l | tee verzeichnis.txt

test bzw. [ ausdruck ]

Wichtige Technik für Shell-Skripte mit ausführlichen Abfrage- und Bedingungsauswertungen. Neben einfachen Vergleichsoperatoren (-eq, -ne, -gt, -lt, …) sind vor Allem Möglichkeiten zur Abfrage auf Datei- und Ordnerebene wichtig.

  • [ -d … ] - ist Verzeichnis?

  • [ -e … ] - Datei existiert?

  • [ -f … ] - einfache Datei (File)?

  • [ -x … ] - ausführbare Datei (File)?

  • [ ! Bedingung ] - wahr/true, wenn die Bedingung nicht erfüllt ist

  • [ Bedingung1 -a Bedingung2 ] - wahr/true, wenn beide Bedingungen erfüllt sind (und / and)

  • [ Bedingung1 -o Bedingung2 ] - wahr/true, wenn mindestens eine der Bedingungen erfüllt ist (oder / or)

Die Bash kennt außerdem noch den [[ ... ]] Ausdruck, der mit Mustern wie *, regulären Mustern und den Vergleichsoperatoren && und || umgehen kann. Innerhalb von [[ ... ]] werden Variablen nicht ausgewertet!

time

Mit time kann man Ausführzeiten von Kommandos in der Shell ermitteln lassen.

Beachten: Es laufen (normalerweise) parallel noch andere Prozesse und es kann auch zu Wartezeiten bei der Abarbeitung eines Prozesse kommen.

timedatectl

Zeigt und verändert die Zeitzone des Linux-Systems - Konfiguration: /etc/localtime (Achtung: binäre Datei - kein roher Text!)

$ timedatectl
               Local time: So 2020-07-26 12:45:25 CEST
           Universal time: So 2020-07-26 10:45:25 UTC
                 RTC time: So 2020-07-26 10:45:25
                Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Und immer: siehe Man-Page für Argumente zum setzen von Eigenschaften.

toilet

Eine figlet (Ascii-Art) Alternative.

Skript zur Darstellung von Figlet-Fonts:

#!/bin/sh

# Prints "JoeB" using every font installed on /usr/share/figlet
# Written by Sandro Tosi <matrixhasu@gmail.com>
# Modified by Jonathan McCrohan <jmccrohan@gmail.com>

for file in /usr/share/figlet/*.tlf ; do
   FONT=`basename $file | sed 's|\(.*\)\.\(.*\)|\1|'`

   printf "Font: $FONT\n"
   figlet -f $FONT JoeB
   printf "\n"
done

Beispiel: toilet -f smmono12 "Joe Brandes"

Toilet (Figlet) Beispiel

Toilet (Figlet) Beispiel

Da lässt sich viel mit rumspielen.

top bzw. htop

Das Tool für die Table of Processes - in den verbesserten Varianten als htop, btop oder glances (mit gleichnamigen Paketen und Services!) und mehr technischen Auswertungen und Fähigkeiten.

Spezielle Tools: iotop (I/O-Aktivitäten) und powertop (Energieverbrauch - bei Notebooks - analysieren)

tr

Das Trimmen von Dateien - hier wieder das Beispiel mit dem PATH:

$ echo $PATH | tr ":" "\n"
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games

tree

Die Ausgabe von Verzeichnissen als Baumstrukturen aus dem gleichnamigen Paket. Zu beachten: teils unterschiedliche Implementierungen und Argumente. Also: immer wieder die Man-Page beachten.

$ tree -d -L 1
.
├── _build
├── Chapters
├── configs
├── Pics
├── _static
└── _themes

Beispiel: nur Ordner (-d) des ersten Levels (erste Ordnerebene -L 1) ausgeben.

Tipp

Super für Dokumentationen! Einfach mittels > in Textdateien umleiten.

tty

Auf welcher Konsole befinde ich mich gerade. Bei grafischen Oberflächen siehe z.B. /dev/pts/3 oder ähnlich.

type

Herausfinden, ob ein Tool zur Shell gehört, eine selbst definierte Funktion oder ein Alias darstellt.

$ type alias
alias ist eine von der Shell mitgelieferte Funktion.
$ type jbwallpaper
jbwallpaper ist ein Alias von »/home/joeb/Bilder/wallpaper/wallpaper.sh«.
$ type whereis
whereis ist /usr/bin/whereis