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