GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer un environnement Shell propre pour une utilisation temporaire ?

Je réponds fréquemment sur un site de questions-réponses populaire axé sur Unix, et dans plusieurs de mes réponses, je fournis des exemples en utilisant le bash coquille. Cependant, chaque fois que je fais cela, je dois suivre manuellement le processus de création d'un environnement propre pour m'assurer que chaque étape est prise en compte et documentée. Comment puis-je simplifier ce processus ? Je cherche idéalement à taper une seule commande et à obtenir un environnement propre, et à supprimer toutes les traces de cet environnement temporaire une fois que j'ai terminé.

Réponse acceptée :

J'utilise personnellement le bash suivant fonction pour faire ceci :

so() {
    local tmpdir="$(mktemp -d)"
    local tmprc="$(mktemp)"
    cat > "$tmprc" << EOF
PS1='\$ '
cd "$tmpdir"
EOF
    env - HOME="$HOME" TERM="$TERM" bash --rcfile "$tmprc"
    rm -rf "$tmpdir" "$tmprc"
}

Voici ce qu'il fait, dans l'ordre :

  • Créer un répertoire temporaire (à utiliser comme répertoire de travail dans l'environnement propre) ;
  • Créer un fichier temporaire (à utiliser comme notre bash fichier rc);
  • Dans le fichier rc, ajoutez des lignes qui :
    • Définir le PS1 invite au terminateur d'invite suivi d'un espace, ce qui le maintient pertinent au cas où nous voudrions avoir une copie de notre sortie sur le site de questions et réponses ;
    • Passez dans le répertoire temporaire que nous avons créé.
  • Invoquer une nouvelle instance de bash , qui :
    • A initialement un environnement vide à l'exception de $HOME et $TERM (env - ... );
    • Lit son fichier rc à partir du fichier temporaire que nous avons créé précédemment (--rcfile ).
  • Une fois bash fermé, supprimez les fichiers temporaires que nous avons créés.

Évidemment, ce n'est pas totalement infaillible, c'est-à-dire que vous pouvez toujours accéder à d'autres parties de votre système. Cela fournit cependant un environnement temporaire propre que vous pouvez utiliser pour les tests.


Linux
  1. Comment utiliser les commandes d'historique de Bash

  2. Comment utiliser un mot de passe crypté dans le script Linux Bash Shell

  3. Comment définir/créer des variables d'environnement et de shell sous Linux

  4. Comment créer un fichier temporaire en script shell ?

  5. Comment puis-je trouver de l'aide pour la commande de point `.` dans * nix ?

Shell Scripting pour les débutants - Comment écrire des scripts Bash sous Linux

Comment utiliser la commande Declare dans Linux Bash Shell

Comment définir une variable d'environnement dans Bash

Comment créer une URL temporaire pour un domaine

Comment utiliser if-else dans les scripts shell ?

Comment utiliser Linux Bash Shell dans Windows 10 ?