[linux-l] Gibt es 2 verschiedene Linux-Befehlspuffer?

Detlef Lechner Detlef.Lechner at gmx.net
Mi Jan 7 18:18:21 CET 2009


Am Montag, den 05.01.2009, 23:35 +0100 schrieb Jan-Benedict Glaw:
> On Mon, 2009-01-05 20:52:07 +0100, Detlef Lechner
> <Detlef.Lechner at gmx.net> wrote:
> > Am Sonntag, den 04.01.2009, 12:01 +0100 schrieb Jan-Benedict Glaw:
> > > Das Kommando `history' wiederum ist typischerweise ein buildin
> > > command, kann also auf Daten der aktuellen `bash'-Instanz
> > > zurückgreifen. 
> > 
> > Diese Aussage verstehe ich nicht ganz. Ich habe in der Zwischenzeit
> > absichtlich den Rechner neu gestartet. Trotzdem hat sich an der
> Anzeige
> 
> "Builtin" heißt an dieser Stelle, daß das Kommando nicht als
> eigenständiges Programm (und damit eigenständig als ausführbare
> Datei), sondern daß die `bash' /selbst/ die Ausgaben macht und somit
> auf die (im Arbeitsspeicher befindlichen) letzten Kommandos
> zurückgreifen kann.  Das würde einem externen Programm extrem
> schwerfallen, daß die ~/.bash_history ja nur beim Beenden der shell
> geschrieben wird.

Darüber habe ich keine Unklarheiten.

> Auf was sind denn die Variablen gesetzt, die für die command history
> zuständig sind?
> 
> $ set | grep '^HIST'

~$ set | grep '^HIST'
HISTCONTROL=ignoreboth
HISTFILE=/home/<username>/.bash_history
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT='%Y-%m-%d [%H:%M:%S] '

> > des gespeicherten Befehls 'lynx ~' nichts geändert. Die "aktuelle
> > bash-Instanz" muß auf Daten auf der Festplatte zurückgegriffen
> haben, so
> > daß sie das Datum richtig wiedergegeben hat. In welcher Datei war
> das
> > Datum und die Zeit dieses Befehls gespeichert? Offenbar nicht in der
> > Datei ~/.bash_history. Denn in ~/.bash_history ist das Datum nicht
> > gespeichert. Das habe ich mir mittels Gedit angesehen.
> > Gibt es also zwei verschiedene Befehlspuffer?
> 
> Ja: Einmal die Befehlsliste im Arbeitsspeicher der aktuellen shell.
> Und zum anderen die Datei, die erzeugt wird, wenn eine interaktive
> shell-Instanz beendet wird.

Aha! Vielen Dank für diese Klarstellung.

> > man bash verwendet die Begriffe 'history list' und 'command
> history'.
> > Sind das Synonyma?
> 
> Im großen und ganzen meint das dasselbe. Man muß sich nur im Klaren
> darüber sein, daß es eine flüchtige Fassung (im Arbeitsspeicher
> innerhalb der laufenden shell) und eine stabile Fassung (als Datei
> nach Beendigung ener shell) gibt.

Ich habe trotzdem nicht verstanden, woher die flüchtige Fassung den
Zeitstempel weiß. 

mc ~/.bash_history zeigt an: 'MTime 7 Jan 13:38', 'Erzeugt: 7 Jan
13:38', 'Geändert 7 Jan 13:38'.
'~$ history | most' zeigt beim Eintrag 'lynx ~' aber den Zeitstempel
'2009-01-06 [19:30:27] ' an. Woher weiß das Kommando history diesen
Zeitstempel?

MfG
Detlef Lechner




Mehr Informationen über die Mailingliste linux-l