GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo crear un entorno de carcasa limpia para uso temporal?

Respondo con frecuencia en un popular sitio de preguntas y respuestas enfocado en Unix, y en muchas de mis respuestas proporciono ejemplos usando bash cáscara. Sin embargo, cada vez que hago esto, tengo que pasar manualmente por el proceso de creación de un entorno limpio para asegurarme de que cada paso se tenga en cuenta y se documente. ¿Cómo puedo hacer que este proceso sea más sencillo? Idealmente, busco escribir un solo comando y obtener un entorno limpio, y eliminar todos los rastros de ese entorno temporal una vez que haya terminado.

Respuesta aceptada:

Yo personalmente uso el siguiente bash función para hacer esto:

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"
}

Esto es lo que hace, en orden:

  • Crear un directorio temporal (para usarlo como nuestro directorio de trabajo en el entorno limpio);
  • Cree un archivo temporal (para usarlo como nuestro bash archivo rc);
  • En el archivo rc, agregue líneas que:
    • Establecer el PS1 mensaje al terminador de mensaje seguido de un espacio, lo que lo mantiene relevante en caso de que queramos tener una copia de nuestro resultado en el sitio de preguntas y respuestas;
    • Cambie al directorio temporal que creamos.
  • Invocar una nueva instancia de bash , que:
    • Inicialmente tiene un entorno vacío a excepción de $HOME y $TERM (env - ... );
    • Lee su archivo rc del archivo temporal que creamos anteriormente (--rcfile ).
  • Una vez que haya salido de bash, elimine los archivos temporales que creamos.

Obviamente, esto no es totalmente infalible, es decir, aún puede acceder a otras partes de su sistema. Sin embargo, esto proporciona un entorno temporal limpio que puede utilizar para realizar pruebas.


Linux
  1. Cómo usar los comandos del historial de Bash

  2. Cómo usar una contraseña cifrada en Linux Bash Shell Script

  3. Cómo establecer/crear variables de entorno y shell en Linux

  4. ¿Cómo crear un archivo temporal en Shell Script?

  5. ¿Cómo encuentro ayuda para el comando de punto `.` en *nix?

Shell Scripting para principiantes:cómo escribir Bash Scripts en Linux

Cómo usar el comando Declare en Linux Bash Shell

Cómo establecer la variable de entorno en Bash

Cómo crear una URL temporal para un dominio

¿Cómo usar if-else en Shell Scripts?

¿Cómo usar Linux Bash Shell dentro de Windows 10?