Stoppuhr

  Ralf Hersel   Lesezeit: 3 Minuten  🗪 6 Kommentare Auf Mastodon ansehen

Auf der Suche nach einer einfachen Stoppuhr für das Terminal.

stoppuhr

Manchmal benötigt man eine Stoppuhr, um die Dauer von Abläufen zu messen. So wollte ich am Montag messen, wie lange ein Seedvault-Backup dauert. Da ich gerade im Terminal unterwegs war, habe ich nach einem Stoppuhr-Kommando gesucht. Selbstverständlich bieten (wahrscheinlich) alle Desktop-Umgebungen ein grafisches Werkzeug für diesen Zweck an. Bei GNOME heisst es "Uhren" und die Stoppuhr sieht so aus:

Wie ihr seht, beherrscht die Anwendung zudem Weltzeituhren, einen Wecker und einen Timer. Fall gelöst; Artikel beendet. Moooment, nicht so schnell. Die Anforderung war, eine Stoppuhr im Terminal zu haben.

Um es vorwegzunehmen, die gibt es nicht. Zumindest nicht mit Boardmitteln und in einfach. Natürlich gibt es drölfzig Möglichkeiten, eine Stoppuhr im Terminal umzusetzen. Einige davon möchte ich euch vorstellen.

Mit an Bord

Ein Blick in meine ZIM-Wissensdatenbank verrät mir zwei Varianten, nämlich:

  • bash: time read (mit RETURN beenden)
  • zsh: time cat (mit Ctrl+c beenden)

Da ich die Z-Shell in der Manjaro-Konfiguration verwende, macht `time read` bei mir nicht viel:

In der Z-Shell läuft der Befehl in dieser Form: time (read). Aufgrund der Terminalkonfiguration funktioniert das trotzdem, weil rechts immer die Dauer des letzten Befehls angezeigt wird. Bei 'time cat' sieht das anders aus:

Nach dem Abbruch mit Ctrl+c wird die verstrichene Zeit ausgegeben.

Dann wollte ich oberschlau sein. Da mein Terminal ohnehin die Befehlsdauer anzeigt, habe ich es mit einem No-Operation-Kommando versucht. Bei Linux ist das der Doppelpunkt : . Dieser Befehl macht nichts. Leider macht er wirklich nichts, dass heisst, er wartet auch nicht auf irgendetwas. Damit ist er als Stoppuhr nicht zu gebrauchen.

Wie wäre es denn mit 'sleep 1h'? Das funktioniert auch nur, wenn euer Terminal von sich aus die Zeit anzeigt.

Per Skript

Wenn es schon keine einfachen Befehle gibt, bietet sich ein kurzes Shellskript als Lösung an. Damit lässt sich auch eine kontinuierliche Zeitanzeige verwirklichen. Den einfachsten Einzeiler, den ich gefunden habe, lautet:

SECONDS=0; while :; do echo -ne "\r$SECONDS"; sleep 1; done

Dieser Befehl zeigt die verstrichenen Sekunden kontinuierlich in einer Zeile an. Damit das in einer Zeile bleibt und nicht hintereinander geschrieben wird, sind die Parameter -ne und \r notwendig. Die Shell-Variable $SECONDS zählt die Sekunden, seitdem ein Skript oder eine Shell gestartet wurde. Deshalb muss sie auf 0 gesetzt werden, weil sie ansonsten die Sekunden seit dem Starten des Terminals enthält. Der Doppelpunkt hinter dem WHILE ist eine Kurzform von True (siehe oben: NOOP).

Falls ihr damit zufrieden seid, könnt ihr den Befehl in einen Alias packen. Selbstverständlich gibt es noch tausende andere Shellskripte, die die Sache schöner und länger machen, zum Beispiel SW von Cory Klein. Dieses 9 Jahre alte Shellskript setzt meine Anforderungen gut um. Es zeigt die Stoppuhr kontinuierlich und vollständig an. Ausserdem kann man mit der RETURN-Taste Zwischenzeiten erhalten.

Das Skript kann man von hier herunterladen, als Datei 'sw' speichern, ausführbar machen und dem Pfad hinzufügen.

Falls euch etwas Einfacheres einfällt, um die Zeit im Terminal zu messen, schreibt es bitte in die Kommentare.

Titelbild: https://pixabay.com/illustrations/stopwatch-precision-quick-record-2648253/

Quelle: https://github.com/coryfklein/sw

Tags

Stoppuhr, Uhr, Terminal, Zeit

Tobias
Geschrieben von Tobias am 7. Oktober 2026 um 17:53

Ich nutze seit Jahren time zur Messung der Laufzeit von Ausführungen auf der Kommandozeile. Liefert aus meiner Sicht zuverlässig alle relevanten Informationen.

Interessant wird es bei der Parallelisierung von Verarbeitungen wie z.B. dem Update von Gentoo Linux mit parallelen Compiler-Aufrufen, wo dann der Wert von user ... ein Vielfaches der real benötigten Zeit anzeigen kann.

time 

real    0m1,967s
user    0m0,410s
sys     0m0,417s
gryps
Geschrieben von gryps am 9. Oktober 2026 um 22:33

Ein kurzes paru stop watch gab mir als erstes Ergebnis termdown. Sieht minimalistisch nett aus. Könnte das etwas in deinem Sinne sein?

Simon
Geschrieben von Simon am 11. Oktober 2026 um 09:44

Wer Lust hat, darf gerne mein Bash Programm dafür nutzen. Eine Uhr, Timer oder Stoppuhr zugleich: https://klangwerkbank.ch/software/digitalterminalshellclock/index.html

im Screenshot wird bloss die Uhr angezeigt

chris_blues
Geschrieben von chris_blues am 11. Oktober 2026 um 11:24

Ich hab mal vor einiger Zeit eine kleine Stoppuhr in Bash selber gebastelt. https://musicchris.de/blog/103