regenera .bashrc do shell atual

4

Então eu estupidamente inadvertidamente destruí o ~ / .bashrc. Se eu tiver aberto terminais com as configurações que estavam lá anteriormente, existe uma maneira de exportar as configurações atuais de volta para um novo .bashrc? (Eu tentei set > ~/.bashrc de um dos terminais disse com algum grau de sucesso, mas me perguntando se há algum caminho mais mágico.)

    
por cbmanica 04.05.2016 / 19:01

2 respostas

6

Uma coisa que você pode tentar é recuperar seu .bashrc da memória de uma instância em execução do bash. No Linux, execute gcore PID para fazer um despejo de memória de um processo especificado por seu PID. Se isso tem uma chance de funcionar depende de como o bash gerencia sua memória; Eu não verifiquei o código-fonte para ver se é possível. Isso não funciona para mim no Debian jessie amd64.

Se isso não funcionar, você poderá salvar suas configurações atuais, mas não poderá recuperar a maneira como elas foram definidas, portanto, muitas informações serão perdidas. Se você tiver uma configuração que depende da máquina, do tipo de terminal, etc., você só recuperará as configurações para quaisquer instâncias do bash que ainda estiverem sendo executadas.

  • Imprima todas as variáveis em um formulário que possa ser lido de volta. Isso inclui muito barulho que você terá que resolver. Variáveis de ambiente (marcadas com declare -x ) não deve ser definido no seu .bashrc , mas você pode ter feito isso de qualquer maneira. Remover variáveis que bash define automaticamente (verifique o manual e veja a saída de declare -p in bash --norc ).

    declare -p
    
  • Imprima todas as funções. Isso inclui funções não definidas por você, por exemplo, funções definidas pelo sistema de conclusão (para o qual você deseja . /etc/bash_completion ).

    declare -f
    
  • Imprimir aliases. Estes provavelmente podem ser usados como são.

    alias
    
  • Imprima opções de shell. Compare com a saída de shopt em bash --norc para ver o que você mudou.

    shopt
    
  • Imprima as configurações de conclusão (se você usar o sistema de conclusão sensível ao contexto). A maioria deles provavelmente vem do sistema de completação; encontrar os que você ajustou pode ser um pouco difícil.

    complete
    
  • Imprime as combinações de teclas, se você tiver definido as combinações de teclas em .bashrc em vez de em .inputrc . Isso inclui ligações padrão.

    bind -p
    

A partir de agora, faça backup de todos os seus arquivos e coloque seus arquivos de configuração sob controle de versão.

    
por 05.05.2016 / 03:14
2

Você pode obter o padrão .bashrc de /etc/skel/.bashrc .
Também há uma maneira de recuperar arquivos abertos por um determinado processo de /proc/PID/fd/<files> , mas não é o caso de .bashrc , pois ele não é aberto permanentemente pelo processo bash.

    
por 04.05.2016 / 19:15

Tags