J'ai donc bêtement détruit par inadvertance ~/.bashrc. Si j'ai des terminaux ouverts avec les paramètres qui s'y trouvaient auparavant, existe-t-il un moyen d'exporter les paramètres actuels vers un nouveau .bashrc ? (J'ai essayé set > ~/.bashrc
de l'un desdits terminaux avec un certain succès, mais je me demande s'il existe un moyen plus magique.)
Réponse acceptée :
Une chose que vous pouvez essayer est de récupérer votre .bashrc
à partir de la mémoire d'une instance en cours d'exécution de bash. Sous Linux, exécutez gcore PID
pour faire un vidage mémoire d'un processus spécifié par son PID. Que cela ait une chance de fonctionner dépend de la façon dont bash gère sa mémoire; Je n'ai pas vérifié le code source pour voir si c'est possible. Cela ne fonctionne pas pour moi sur Debian jessie amd64.
Si cela ne fonctionne pas, vous pouvez enregistrer vos paramètres actuels, mais vous ne pouvez pas récupérer la façon dont ils ont été définis, donc beaucoup d'informations seront perdues. Si vous aviez une configuration qui dépend de la machine, du type de terminal, etc., vous ne récupérerez que les paramètres des instances de bash en cours d'exécution.
-
Imprimez toutes les variables sous une forme qui peut être relue. Cela inclut beaucoup de bruit que vous devrez trier. Variables d'environnement (marquées par
declare -x
) ne doit pas être défini dans votre.bashrc
mais vous pourriez l'avoir fait de toute façon. Supprimez les variables que bash définit automatiquement (vérifiez le manuel et regardez la sortie dedeclare -p
dansbash --norc
).declare -p
-
Imprimez toutes les fonctions. Cela inclut les fonctions que vous n'avez pas définies, par exemple les fonctions définies par le système de complétion (pour lesquelles vous voulez
. /etc/bash_completion
à la place).declare -f
-
Imprimez les alias. Ceux-ci peuvent probablement être utilisés tels quels.
alias
-
Imprimez les options de coque. Comparez avec la sortie de
shopt
dansbash --norc
pour voir ce que vous avez changé.shopt
-
Imprimez les paramètres de complétion (si vous utilisez le système de complétion contextuelle). La plupart d'entre eux proviennent probablement du système d'achèvement; trouver ceux que vous avez accordés peut être un peu difficile.
complete
-
Imprimez les raccourcis clavier, si vous avez défini des raccourcis clavier dans votre
.bashrc
plutôt que dans.inputrc
. Cela inclut les liaisons par défaut.bind -p
À partir de maintenant, sauvegardez tous vos fichiers et mettez vos fichiers de configuration sous contrôle de version.
Connexes :Linux - Impossible d'extraire les métadonnées du référentiel EPEL ?