Bash-Terminal, das seinen Zustand speichert, wenn es nach einem Absturz wiederhergestellt wird

1330
bguiz

In Ubuntu verwende ich die Standardeinstellungen gnome-terminal, um meine Befehle auszuführen. Ich habe normalerweise ein paar Fenster offen, jedes mit mehreren Registerkarten. Wenn mein Betriebssystem abstürzt - aus welchem ​​Grund auch immer - und ich neu starte, verliere ich alle diese Terminals.

Sublime Text, Firefox und Chrome haben mich verwöhnt, da alle mir die Möglichkeit geben, alle Fenster und Registerkarten auf das wiederherzustellen, was sie vor dem Absturz getan haben, und ich möchte das auch mit meinem Terminal tun können Fenster und Registerkarten.

Wie kann das erreicht werden?

Die Besonderheiten dessen, was ich möchte, ausschreiben:

  • Haben müssen:
    • Beim Neustart, wenn ich das Terminal zum ersten Mal öffne, werden die Fenster und Registerkarten, die zuvor dort waren, erneut geöffnet
      • Entweder mit oder ohne Aufforderung ist in Ordnung
    • Jede Registerkarte befindet sich cdin dem Ordner, in dem sie sich zuvor befand
  • Schön zu haben:
    • Der bash_historyfür diesen Reiter ist noch da
    • Wenn ich also die Tasten "Auf" und "Ab" drücke, würde ich das bekommen, was ich in dieser Registerkarte erwartet

∗ Ubuntu läuft auf einem Laptop, dessen Treiber nicht die freundlichsten sind, kommt häufiger vor, als ich möchte (falls Sie sich fragen)

3
Suchen Sie vielleicht etwas (so) (http://superuser.com/q/610001/151431)? terdon vor 10 Jahren 0

2 Antworten auf die Frage

1
stderr

Das engste, was sie bekommen konnten war.

Sie können die folgenden Optionen verwenden:

--save-config=FILE Save the terminal configuration to a file --load-config=FILE Load a terminal configuration file 

Beispiel:

Speichern:

gnome-terminal --save-config=/tmp/cfgtab 

Laden Sie es zurück:

gnome-terminal --load-config=/tmp/cfgtab 

enter image description here

@tiagoc Hmm - Funktioniert dies global - dh wenn ich diesen Befehl von einer Shell / einem Terminal aus ausführe, wird der Kontext von jedem gerade geöffneten Kontext gespeichert. ... 'Wenn ja, ich denke, ich könnte einen' cron'-Job einrichten, oder auch nur ein einfaches 'watch -n5 gnome-terminal --save-config = / tmp / cfgtab' und ein crash Ich kann die Sitzungen einfach neu laden, indem Sie `gnome-terminal --load-config = / tmp / cfgtab` manuell ausführen. bguiz vor 10 Jahren 0
@bguiz Ja, mindestens das aktuelle Arbeitsverzeichnis jeder Registerkarte wird gespeichert. Als eingetippte Befehle wird alles in `bash_history` gespeichert. Ich erinnere mich an die Befehle in einem Tab. Ich denke, dass dies nicht möglich ist. stderr vor 10 Jahren 0
Leider hat das neue "gnome-terminal" in Gnome 3 die Unterstützung für das Laden und Speichern von Konfigurationen eingestellt :-( Neil Mayhew vor 8 Jahren 0
1
bguiz

Hier ist die Lösung, die ich mir ausgedacht habe:

https://gist.github.com/bguiz/9262902

Es ist ein Shell-Skript, das das obige automatisiert.

Für den normalen Gebrauch:

~/watcher.sh 

Nach einem Absturz und Neustart:

~/watcher.sh restore 
@tiagoc Ich habe mir meine Lösung ausgedacht, die von deiner inspiriert wurde. Ich gebe dir ein +1 und überprüfe, da du mich zur Lösung geführt hast - danke! bguiz vor 10 Jahren 0
@tiagoc Möchten Sie die von Ihnen entwickelte Lösung teilen? gene_wood vor 8 Jahren 0