Externe History verwenden

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Wildcard
Beiträge: 6
Registriert: 06.11.2019 15:45:07

Externe History verwenden

Beitrag von Wildcard » 06.11.2019 15:52:40

Hallo, liebe Community! Sorry falls es das falsche Subforum ist.

ich habe da eine Frage, und zwar Folgendes: habe soeben eine History eines externen users auf mein Terminal kopiert:

Code: Alles auswählen

scp gm0X@xxx.xx.x.xxx:/home/jz/.bash_history .

Code: Alles auswählen

echo 'shopt -s histappend' >> .bashrc
echo 'PROMPT_COMMAND="history -a"' >> .bashrc
. .bashrc
Nun will ich diese History auch verwenden, bzw. als Standard verwenden. Geht das und wenn ja wie, ich habe die Option nicht gefunden.

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Externe History verwenden

Beitrag von JTH » 06.11.2019 18:08:00

Was genau meinst du denn mit „als Standard verwenden“? Falls du sie per scp von extern nach /home/wildcard/.bash_history kopiert hast, ist sie schon der „Standard“. Mit dem histappend scheinst du aber noch mehr vorzuhaben, als nur zu Kopieren?

Um in der laufenden Session die Kommandos aus der kopierten History (wenn nach /home/wildcard/.bash_history kopiert!) greifbar zu haben, musst du nach dem Kopieren nur einmal

Code: Alles auswählen

$ history -r
aufrufen:

Code: Alles auswählen

$ help history
[…]
      -r	read the history file and append the contents to the history
    		list

Deine vorherige History bleibt damit auch erhalten. Wenn du die leeren willst, kannst du nach dem Kopieren und vor dem history -r noch ein

Code: Alles auswählen

$ history -c
aufrufen.


Eine Kernelfrage ist es tatsächlich nicht, Scripting oder Standardprogramme hätte circa als Kategorie gepasst ;)
Manchmal bekannt als Just (another) Terminal Hacker.

Wildcard
Beiträge: 6
Registriert: 06.11.2019 15:45:07

Re: Externe History verwenden

Beitrag von Wildcard » 07.11.2019 09:04:56

Ok, vielen Dank! In der manpage habe ich ich es nicht gefunden, hätte wissen müssen, dass ich in der help suchen sollte..
Ich brauche diese history nämlich, weil da reguläre Ausdrücke (sed und so) drauf sind und brauche paar Beispiele, da ich diese Satzzeichenfolgen kaum verstehe :mrgreen:
Ich hätte da jetzt dann doch noch was nachzuhaken.. Ich bekomme nicht die gesamte history angezeigt, nur die Zeilen 982-1179. Wenn ich etwas verwende wie

Code: Alles auswählen

head -n 300
, werden ulkigerweise die Zeilen 284-481 angezeigt :?

Wildcard
Beiträge: 6
Registriert: 06.11.2019 15:45:07

Re: Externe History verwenden

Beitrag von Wildcard » 07.11.2019 10:02:52

ach und... das mit dem history -r scheint so zu klappen, allerdings nicht wenn ich superuser bin, fällt mir grad auf. Ist zwar eher nebensächlich, aber wüsste gern ob es da besondere Einstellungen/Eisnchränkungen gibt

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Externe History verwenden

Beitrag von JTH » 07.11.2019 16:43:07

Wildcard hat geschrieben: ↑ zum Beitrag ↑
07.11.2019 09:04:56
In der manpage habe ich ich es nicht gefunden, hätte wissen müssen, dass ich in der help suchen sollte..
Du hättest wahrscheinlich irgendwo in der recht langen Bash-manpage drauf stoßen können, das history ein Bash-Builtin ist (also kein Kommando in /bin, /usr/bin etc.) und help dir die Hilfe für Bash-Builtins anzeigt.

Wildcard hat geschrieben: ↑ zum Beitrag ↑
07.11.2019 10:02:52
ach und... das mit dem history -r scheint so zu klappen, allerdings nicht wenn ich superuser bin, fällt mir grad auf. Ist zwar eher nebensächlich, aber wüsste gern ob es da besondere Einstellungen/Eisnchränkungen gibt
Inwiefern klappt es nicht? Jeder Benutzer hat seine eigene .bash_history, entweder in /home/<benutzer>/.bash_history oder für root in /root/.bash_history. Es gibt nicht die eine systemweite .bash_history – das wär sicherheitstechnisch sehr fragwürdig.

Wenn der root keine ungewöhliche .bashrc o.ä. hat, funktioniert history -r da genauso. Du musst die .bash_history nur für jeden Benutzer kopieren, für den du sie überschreiben willst – wenn der Benutzer in dem Moment nicht angemeldet ist, brauchst du das history -r nicht mal.

Wildcard hat geschrieben: ↑ zum Beitrag ↑
07.11.2019 09:04:56
Ich hätte da jetzt dann doch noch was nachzuhaken.. Ich bekomme nicht die gesamte history angezeigt, nur die Zeilen 982-1179. Wenn ich etwas verwende wie

Code: Alles auswählen

head -n 300
, werden ulkigerweise die Zeilen 284-481 angezeigt :?
Hast du evtl. ungewöhnliche Werte für HISTSIZE oder HISTFILESIZE gesetzt, die nicht zu der kopierten .bash_history passen?
Manchmal bekannt als Just (another) Terminal Hacker.

Antworten