history-Kommando unter FreeBSD

Die History der Terminal Session ist eine nützliche Möglichkeit im Nachgang an eine Konfiguration noch einmal Einblick in die verwendeten Kommandos zu erhalten. Nicht häufig, macht man sich an die Arbeit, erreicht das Ziel und verliert dabei aber den Weg aus den Augen. Durch das Kommando history lassen sich nochmal alle Befehle anzeigen und man kann die Schritte nochmal nachvollziehen. In diesem Tutorial möchte ich dir zeigen, wo sich deine Terminal History anzeigen lässt, wie du sie nach bestimmten Suchbegriffen durchsuchen lassen und/oder gesondert speichern lassen kannst.

Wichtig ist zu beachten, dass nicht jede Shell über eine Terminal History verfügt! Ich nutze für dieses Tutorial, wie so oft, FreeBSD.

Attention: For the english version, click here!

Terminal History anzeigen lassen

Wenn du das Kommando history ausführst, werden deine letzten 1000 eingegebenen Kommandos ausgegeben:

history

Die CSH-Konfigurationsdatei

Ich verwende in meinem Fall eine CSH, also die C-Shell. Die Konfigurationsdatei findet sich im Home-Verzeichnis wieder:

cat ~/.cshrc
# $FreeBSD$
#
# .cshrc - csh resource script, read at beginning of execution by each shell
#
# see also csh(1), environ(7).
# more examples available at /usr/share/examples/csh/
#

alias h         history 25
alias j         jobs -l
alias la        ls -aF
alias lf        ls -FA
alias ll        ls -lAF

Hier kannst du schon einmal verschiedene Aliase sehen. Führst du h aus, verbirgt sich dahinter nichts anderes als das history-Kommando und gibt dir die letzten 25 Einträge aus.

So kannst du auch für dich selbst definieren, wieviele Zeilen aus der History ausgegeben werden sollen:

history 10

So erhälst du nur die letzten 10 Zeilen deiner Terminal History.

Schauen wir uns die Datei weiter an:

if ($?prompt) then
        # An interactive shell -- set some stuff up
        set prompt = "%N@%m:%~ %# "
        set promptchars = "%#"

        set filec
        set history = 1000
        set savehist = (1000 merge)
        set autolist = ambiguous

set history = 1000 sagt uns, dass die letzten 1000 Kommandos mit dem Befehl history angezeigt werden, wie ich eingangs erwähnt habe. Diesen Wert kannst du hoch oder runter setzen, wie es dir beliebt.

Suchfilter anwenden

Es mag immer mal wieder vorkommen, dass man den ein oder anderen Befehl vergisst, aber natürlich nicht 1000 Zeilen durchforsten möchte. Hier bietet es sich an das Kommando mit grep zu verknüpfen.

Gehen wir von dieser Terminal History aus – ich stelle sie jetzt nur verkürzt dar:

pkg install debootstrapsu
pkg update && pkg upgrade -y
pkg search kodi
pkg install kodi
service linux enable
mkdir -p /compat/ubuntu/{dev/fd,dev/shm,home,proc,sys,tmp}
service linux start
pkg install debootstrap
debootstrap --arch=amd64 --no-check-gpg jammy /compat/ubuntu
service linux restart

Wendest du darauf jetzt folgendes an

history | grep pkg

erhälst du folgenden Output:

pkg install debootstrappkg install debootstrapsu
pkg update && pkg upgrade -y
pkg search kodi
pkg install kodi
pkg install debootstrap

So kannst du deine History durchsuchen nach bestimmten Inhalten.

Speichern der Terminal History in eine Datei

Manchmal, gerade wenn du vielleicht Anleitungen erstellst oder eine bestimmte Konfiguration häufiger durchführen musst, macht es durchaus Sinn die Terminal History zu sichern. Dies erreichst du mit dem folgenden Befehl:

history >> /home/dennis/history_bs

Jetzt ist unter dem Pfad /home/dennis/ eine Datei namens history_bs.

Möchtest du aber nur die gefilterte Terminal History, wie im Beispiel weiter oben, abspeichern, dann führe diesen Befehl aus:

history | grep pkg >> /home/dennis/history_bs

Zusammenfassung

history ist ein äußerst nützliches Kommando und gehört definitiv zu denen, die du unbedingt kennen solltest. Mit wenig Aufwand kannst du deine Konfigurationsarbeit wieder einsehen und nachvollziehen. Für mehr schaue in die manual page von FreeBSD


Using the history command in FreeBSD

The history of the terminal session is a useful way to retrospectively gain insight into the commands used after a configuration. Often, one embarks on a task, reaches the goal, but loses track along the way. The history command allows you to display all commands again, enabling you to retrace your steps. In this tutorial, I want to show you where you can view your terminal history, how to search for specific keywords, and/or save it separately.

It is important to note that not every shell has a terminal history! For this tutorial, as often, I am using FreeBSD.

Displaying Terminal History

When you execute the history command, your last 1000 entered commands are displayed:

history

The Shell Configuration File

In my case, I use CSH, the C-Shell. The configuration file is found in the home directory:

cat ~/.cshrc

Here you can already see various aliases. When you execute h, it is nothing but the history command, giving you the last 25 entries.

You can also define for yourself how many lines should be output from the history:

history 10

This way, you only get the last 10 lines of your terminal history.

Let’s continue looking at the file:

if ($?prompt) then
        # An interactive shell -- set some stuff up
        set prompt = "%N@%m:%~ %# "
        set promptchars = "%#"

        set filec
        set history = 1000
        set savehist = (1000 merge)
        set autolist = ambiguous

set history = 1000 tells us that the last 1000 commands will be displayed with the history command, as mentioned earlier. You can adjust this value as you like.

Applying Search Filters

It may happen that you forget one or the other command but don’t want to search through 1000 lines. In this case, it makes sense to combine the command with grep.

Using the example terminal history – presented here in a shortened form:

pkg install debootstrapsu
pkg update && pkg upgrade -y
pkg search kodi
pkg install kodi
service linux enable
mkdir -p /compat/ubuntu/{dev/fd,dev/shm,home,proc,sys,tmp}
service linux start
pkg install debootstrap
debootstrap --arch=amd64 --no-check-gpg jammy /compat/ubuntu
service linux restart

Applying the following command:

history | grep pkg

You will get the following output:

pkg install debootstrappkg install debootstrapsu
pkg update && pkg upgrade -y
pkg search kodi
pkg install kodi
pkg install debootstrap

This way, you can search your history for specific content.

Saving Terminal History to a file

Sometimes, especially when creating instructions or performing a particular configuration frequently, it makes sense to save the terminal history. You can achieve this with the following command:

history >> /home/dennis/history_bs

Now, there is a file named history_bs under the path /home/dennis/.

If you only want to save the filtered terminal history, as in the example above, then execute this command:

history | grep pkg >> /home/dennis/history_bs

Summary

history is an extremely useful command and is definitely one you should know. With minimal effort, you can review and retrace your configuration work. For more, take a look in the manual page for FreeBSD.

Start the discussion

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert