GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Membuat Lingkungan Shell yang Bersih Untuk Penggunaan Sementara?

Saya sering menjadi penjawab di situs T&J populer yang berfokus pada Unix, dan dalam banyak jawaban saya, saya memberikan contoh menggunakan bash kerang. Namun, setiap kali saya melakukan ini, saya harus secara manual melalui proses menciptakan lingkungan yang bersih untuk memastikan bahwa setiap langkah diperhitungkan dan didokumentasikan. Bagaimana saya bisa membuat proses ini lebih mudah? Saya idealnya ingin mengetik satu perintah dan mendapatkan lingkungan yang bersih, dan menghapus semua jejak lingkungan sementara itu setelah saya selesai.

Jawaban yang Diterima:

Saya pribadi menggunakan bash berikut fungsi untuk melakukan ini:

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

Inilah fungsinya, secara berurutan:

  • Buat direktori sementara (untuk digunakan sebagai direktori kerja kami di lingkungan yang bersih);
  • Buat file sementara (untuk digunakan sebagai bash kami) rc file);
  • Dalam file rc, tambahkan baris yang:
    • Setel PS1 prompt ke terminator prompt diikuti dengan spasi, yang membuatnya tetap relevan jika kita ingin memiliki salinan output kita di situs T&J;
    • Ubah ke direktori sementara yang kita buat.
  • Aktifkan instance baru bash , yang:
    • Awalnya memiliki lingkungan kosong kecuali untuk $HOME dan $TERM (env - ... );
    • Membaca file rc-nya dari file sementara yang kita buat sebelumnya (--rcfile ).
  • Setelah bash keluar, hapus file sementara yang kita buat.

Jelas ini tidak sepenuhnya sangat mudah, yaitu, Anda masih dapat mengakses bagian lain dari sistem Anda. Namun, ini menyediakan lingkungan sementara yang bersih yang dapat Anda gunakan untuk pengujian.


Linux
  1. Cara Menggunakan Kata Sandi Terenkripsi di Linux Bash Shell Script

  2. Bagaimana caranya:Riwayat Bash/Shell yang tidak terbatas?

  3. Bagaimana cara menemukan bantuan untuk perintah titik `.` di * nix?

  1. Cara menggunakan perintah riwayat Bash

  2. Cara Mengatur/Membuat Variabel Lingkungan dan Shell di Linux

  3. Bagaimana Membuat File Sementara Di Shell Script?

  1. Cara Menggunakan Perintah baca Bash

  2. Cara menggunakan ekspansi shell untuk menghasilkan token shell di Linux

  3. Bagaimana cara menggunakan perintah jam tangan dan pekerjaan bersama di Bash?