GNU/Linux >> Tutoriels Linux >  >> Linux

Régénérer .bashrc à partir du shell actuel ?

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 de declare -p dans bash --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 dans bash --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 ?
Linux
  1. Fonctions dans les variables shell ?

  2. Comment exécuter un programme avec un répertoire de travail différent de l'actuel, à partir du shell Linux ?

  3. Script bash :utilisation de la commande de script d'un script bash pour la journalisation d'une session

  4. Ouvrir Vim depuis un script shell Bash

  5. démarrer apachectl à partir de bash

.bashrc contre .bash_profile

Conseils sur le shell Unix :modifier le shell de connexion de Bash à d'autres

Comment puis-je déterminer l'utilisation actuelle du processeur à partir du shell ?

[ :Opérateur inattendu en programmation shell

Exécuter le script bash à partir de l'URL

Exécuter un script shell dans un nouveau terminal à partir du terminal actuel