GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare un ambiente Shell pulito per uso temporaneo?

Rispondo spesso a un popolare sito di domande e risposte incentrato su Unix e in molte delle mie risposte fornisco esempi utilizzando bash guscio. Tuttavia, ogni volta che lo faccio, devo eseguire manualmente il processo di creazione di un ambiente pulito per assicurarmi che ogni passaggio sia contabilizzato e documentato. Come posso rendere questo processo più semplice? Idealmente, sto cercando di digitare un singolo comando e ottenere un ambiente pulito e rimuovere tutte le tracce di quell'ambiente temporaneo al termine.

Risposta accettata:

Personalmente utilizzo il seguente bash funzione per fare ciò:

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

Ecco cosa fa, in ordine:

  • Crea una directory temporanea (da utilizzare come directory di lavoro in un ambiente pulito);
  • Crea un file temporaneo (da utilizzare come nostro bash rc);
  • Nel file rc, aggiungi le righe che:
    • Imposta il PS1 prompt al terminatore del prompt seguito da uno spazio, che lo mantiene rilevante nel caso in cui desideriamo avere una copia del nostro output sul sito di domande e risposte;
    • Passa alla directory temporanea che abbiamo creato.
  • Richiama una nuova istanza di bash , che:
    • Inizialmente ha un ambiente vuoto ad eccezione di $HOME e $TERM (env - ... );
    • Legge il suo file rc dal file temporaneo che abbiamo creato in precedenza (--rcfile ).
  • Una volta terminato bash, rimuovi i file temporanei che abbiamo creato.

Ovviamente questo non è del tutto infallibile, cioè puoi comunque accedere ad altre parti del tuo sistema. Ciò, tuttavia, fornisce un ambiente temporaneo pulito che puoi utilizzare per i test.


Linux
  1. Come utilizzare la password crittografata nello script della shell Bash Linux

  2. Come impostare/creare variabili di ambiente e shell in Linux

  3. Come creare un file temporaneo nello script della shell?

  4. Procedura:cronologia Bash/shell illimitata?

  5. Come posso trovare aiuto per il comando punto `.` in *nix?

Script di shell per principianti - Come scrivere script Bash in Linux

Come utilizzare il comando Declare in Linux Bash Shell

Come impostare la variabile d'ambiente in Bash

Come creare un URL temporaneo per un dominio

Come utilizzare if-else negli script della shell?

Come utilizzare Linux Bash Shell in Windows 10?