GNU/Linux >> LINUX-Kenntnisse >  >> Linux

.bashrc aus aktueller Shell neu generieren?

Also habe ich dummerweise versehentlich ~/.bashrc zerstört. Wenn ich geöffnete Terminals mit den Einstellungen habe, die zuvor dort waren, gibt es eine Möglichkeit, die aktuellen Einstellungen zurück in eine neue .bashrc-Datei zu exportieren? (Ich habe versucht set > ~/.bashrc von einem dieser Terminals mit einem gewissen Erfolg, aber ich frage mich, ob es einen magischeren Weg gibt.)

Akzeptierte Antwort:

Eine Sache, die Sie versuchen können, ist, Ihre .bashrc wiederherzustellen aus dem Speicher einer laufenden Instanz von bash. Führen Sie unter Linux gcore PID um ein Speicherabbild eines Prozesses zu erstellen, der durch seine PID angegeben ist. Ob das funktioniert, hängt davon ab, wie bash mit seinem Speicher umgeht; Ich habe den Quellcode nicht überprüft, um zu sehen, ob es überhaupt möglich ist. Es funktioniert bei mir nicht unter Debian Jessie amd64.

Wenn das nicht funktioniert, können Sie Ihre aktuellen Einstellungen speichern, aber Sie können die Art und Weise, wie sie eingestellt wurden, nicht wiederherstellen, sodass viele Informationen verloren gehen. Wenn Sie eine Konfiguration hatten, die von der Maschine, dem Terminaltyp usw. abhängt, werden Sie nur die Einstellungen für die noch laufenden Bash-Instanzen wiederherstellen.

  • Drucken Sie alle Variablen in einer rücklesbaren Form aus. Dazu gehört eine Menge Lärm, den Sie aussortieren müssen. Umgebungsvariablen (markiert mit declare -x ) sollte nicht in Ihrer .bashrc definiert sein aber vielleicht hättest du es trotzdem getan. Entfernen Sie Variablen, die bash automatisch setzt (überprüfen Sie das Handbuch und sehen Sie sich die Ausgabe von declare -p an in bash --norc ).

    declare -p
    
  • Drucken Sie alle Funktionen aus. Dazu gehören Funktionen, die nicht von Ihnen definiert wurden, beispielsweise Funktionen, die vom Vervollständigungssystem definiert wurden (für die Sie . /etc/bash_completion möchten stattdessen).

    declare -f
    
  • Aliase ausdrucken. Diese können wahrscheinlich so wie sie sind verwendet werden.

    alias
    
  • Shell-Optionen ausdrucken. Vergleichen Sie mit der Ausgabe von shopt in bash --norc um zu sehen, was Sie geändert haben.

    shopt
    
  • Vervollständigungseinstellungen ausdrucken (wenn Sie das kontextsensitive Vervollständigungssystem verwenden). Die meisten davon stammen wahrscheinlich aus dem Vervollständigungssystem; Es könnte etwas schwierig sein, diejenigen zu finden, die Sie eingestellt haben.

    complete
    
  • Drucken Sie Tastenbelegungen aus, wenn Sie Tastenbelegungen in Ihrer .bashrc definiert haben statt in .inputrc . Dies schließt Standardbindungen ein.

    bind -p
    

Sichern Sie von nun an alle Ihre Dateien und stellen Sie Ihre Konfigurationsdateien unter Versionskontrolle.

Verwandte:Linux – EPEL-Repository-Metadaten können nicht abgerufen werden?
Linux
  1. Anpassen der Bash-Shell

  2. Der Zweck von .bashrc und wie funktioniert es?

  3. Warum überprüft Bashrc, ob die aktuelle Shell interaktiv ist?

  4. Bash Auto_completion mit Xubuntu und Xrdp von Windows?

  5. Unix-Shell-Tipps:Ändern Sie die Login-Shell von Bash zu Others

.bashrc vs. .bash_profile

Funktionen in Shell-Variablen?

Wie kann ich die aktuelle CPU-Auslastung aus der Shell ermitteln?

Gewusst wie:Unbegrenzter Bash/Shell-Verlauf?

Bash liest .bashrc nur, wenn es manuell gestartet wird

Wie kürze ich den aktuellen Verzeichnispfad, der auf dem Terminal angezeigt wird?