GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie erstelle ich eine saubere Shell-Umgebung für den vorübergehenden Gebrauch?

Ich antworte häufig auf einer beliebten Q&A-Site mit Unix-Schwerpunkt, und in vielen meiner Antworten gebe ich Beispiele mit der bash Hülse. Allerdings muss ich jedes Mal, wenn ich dies tue, den Prozess der Erstellung einer sauberen Umgebung manuell durchlaufen, um sicherzustellen, dass jeder Schritt berücksichtigt und dokumentiert wird. Wie kann ich diesen Prozess einfacher gestalten? Idealerweise möchte ich einen einzigen Befehl eingeben und eine saubere Umgebung erhalten und alle Spuren dieser temporären Umgebung entfernen lassen, nachdem ich fertig bin.

Akzeptierte Antwort:

Ich persönlich verwende die folgende bash Funktion dazu:

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

Hier ist, was es tut, in der Reihenfolge:

  • Erstellen Sie ein temporäres Verzeichnis (um es als unser Arbeitsverzeichnis in der sauberen Umgebung zu verwenden);
  • Erstellen Sie eine temporäre Datei (zur Verwendung als unsere bash rc-Datei);
  • Fügen Sie in der rc-Datei Zeilen hinzu, die:
    • Stellen Sie den PS1 ein prompt zum Prompt-Terminator, gefolgt von einem Leerzeichen, wodurch es relevant bleibt, falls wir eine Kopie unserer Ausgabe auf der Q&A-Site haben möchten;
    • Wechseln Sie in das von uns erstellte temporäre Verzeichnis.
  • Rufen Sie eine neue Instanz von bash auf , die:
    • Hat anfänglich eine leere Umgebung außer $HOME und $TERM (env - ... );
    • Liest seine RC-Datei aus der temporären Datei, die wir zuvor erstellt haben (--rcfile ).
  • Sobald bash beendet ist, entfernen Sie die temporären Dateien, die wir erstellt haben.

Offensichtlich ist dies nicht absolut narrensicher, das heißt, Sie können immer noch auf andere Teile Ihres Systems zugreifen. Dies stellt jedoch eine saubere temporäre Umgebung bereit, die Sie zum Testen verwenden können.


Linux
  1. So verwenden Sie Bash-Verlaufsbefehle

  2. So verwenden Sie ein verschlüsseltes Passwort in einem Linux-Bash-Shell-Skript

  3. So setzen/erstellen Sie Umgebungs- und Shell-Variablen in Linux

  4. Verwendung von Shell-Erweiterungen zum Generieren von Shell-Tokens unter Linux

  5. Wie verwende ich die Befehle watch und jobs zusammen in Bash?

Shell-Scripting für Anfänger – So schreiben Sie Bash-Scripts unter Linux

So verwenden Sie den Declare-Befehl in der Linux Bash Shell

So setzen Sie die Umgebungsvariable in Bash

So erstellen Sie eine temporäre URL für eine Domain

Wie verwende ich if-else in Shell-Skripten?

Wie verwende ich die Linux-Bash-Shell in Windows 10?