GNU/Linux >> Znalost Linux >  >> Linux

Obnovit .bashrc z aktuálního prostředí?

Tak jsem hloupě nechtěně zničil ~/.bashrc. Pokud mám otevřené terminály s nastavením, které tam bylo předtím, existuje způsob, jak exportovat aktuální nastavení zpět do nového .bashrc? (Zkoušel jsem set > ~/.bashrc z jednoho z uvedených terminálů s určitou mírou úspěchu, ale zajímalo by mě, jestli existuje nějaký kouzelnější způsob.)

Přijatá odpověď:

Jedna věc, kterou můžete zkusit, je obnovit váš .bashrc z paměti běžící instance bash. V systému Linux spusťte gcore PID k vytvoření výpisu paměti procesu určeného jeho PID. Zda to má šanci fungovat, závisí na tom, jak bash spravuje svou paměť; Nezkontroloval jsem zdrojový kód, abych zjistil, zda je to vůbec možné. Na Debianu jessie amd64 mi to nefunguje.

Pokud to nepomůže, můžete uložit své aktuální nastavení, ale nemůžete obnovit způsob, jakým byly nastaveny, takže bude ztraceno mnoho informací. Pokud jste měli konfiguraci, která závisí na počítači, typu terminálu atd., obnovíte pouze nastavení pro všechny instance bash, které stále běží.

  • Vytiskněte všechny proměnné ve formě, kterou lze zpětně číst. To zahrnuje spoustu hluku, který budete muset vyřešit. Proměnné prostředí (označené declare -x ) by neměl být definován ve vašem .bashrc ale možná jsi to stejně udělal. Odstraňte proměnné, které bash nastavuje automaticky (podívejte se do manuálu a podívejte se na výstup declare -p v bash --norc ).

    declare -p
    
  • Vytiskněte si všechny funkce. To zahrnuje funkce, které jste nedefinovali, například funkce definované systémem dokončení (pro které chcete . /etc/bash_completion místo).

    declare -f
    
  • Vytiskněte aliasy. Pravděpodobně je lze použít tak, jak jsou.

    alias
    
  • Vytiskněte možnosti shellu. Porovnejte s výstupem shopt v bash --norc abyste viděli, co jste změnili.

    shopt
    
  • Vytiskněte si nastavení dokončení (pokud používáte kontextový systém vyplňování). Většina z nich pravděpodobně pochází z dokončovacího systému; najít ty, které jste vyladili, může být trochu obtížné.

    complete
    
  • Vytiskněte si klávesové zkratky, pokud jste definovali klávesové zkratky v .bashrc spíše než v .inputrc . To zahrnuje výchozí vazby.

    bind -p
    

Od této chvíle zálohujte všechny své soubory a přenechejte konfigurační soubory kontrole verzí.

Související:Linux – nelze stáhnout metadata úložiště EPEL?
Linux
  1. Přizpůsobení prostředí Bash

  2. Účel .bashrc a jak to funguje?

  3. Jak spustím program s jiným pracovním adresářem, než je aktuální, z prostředí Linux?

  1. Bash skript:Použití příkazu script z bash skriptu pro protokolování relace

  2. Otevřete Vim ze skriptu prostředí Bash

  3. spouštění apachectl z bash

  1. Proč Bashrc kontroluje, zda je aktuální shell interaktivní?

  2. Aktuální adresář skriptu Shell?

  3. Bash nečte .bashrc, pokud není ručně spuštěn