Geçici kullanım için nasıl temiz bir kabuk ortamı oluşturabilirim?


15

Ben Unix odaklı popüler bir Soru-Cevap sitesinde sık sık cevap veriyorum ve yanıtlarımın çoğunda bashkabuğu kullanarak örnekler veriyorum . Ancak, bunu her yaptığımda, her adımın hesaba katıldığından ve belgelendiğinden emin olmak için el ile temiz bir ortam oluşturma sürecinden geçmem gerekiyor. Bu süreci nasıl daha basit hale getirebilirim? İdeal olarak tek bir komut yazmak ve temiz bir ortam elde etmek için arıyorum ve işim bittikten sonra bu geçici ortamın tüm izlerini kaldırmak istiyorum.


Yanıtlar:


10

Ben şahsen bashbunu yapmak için aşağıdaki işlevi kullanın:

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

Sırayla yaptığı şey:

  • Geçici bir dizin oluşturun (temiz ortamda çalışma dizinimiz olarak kullanmak için);
  • Geçici bir dosya oluşturun ( bashrc dosyamız olarak kullanmak için );
  • Rc dosyasına aşağıdaki satırları ekleyin:
    • PS1Komut istemini komut istemi sonrasına ve ardından bir soru-cevap sitesinde çıktımızın bir kopyasını almak istediğimizde ilgili tutan bir boşluk ayarlayın ;
    • Oluşturduğumuz geçici dizine geçin.
  • Şu yeni bir örneği çağırın bash:
    • Başlangıçta $HOMEve $TERM( env - ...) dışında boş bir ortam vardır ;
    • Rc dosyasını daha önce oluşturduğumuz geçici dosyadan okur ( --rcfile).
  • Bash çıktıktan sonra oluşturduğumuz geçici dosyaları kaldırın.

Açıkçası bu tamamen kusursuz değildir, yani yine de sisteminizin diğer kısımlarına erişebilirsiniz. Ancak bu, test için kullanabileceğiniz temiz bir geçici ortam sağlar.


kullanmayı denedin scriptmi
h3rrmiller

@ h3rrmiller - Evet, tercih etmeme eğilimim olmasına rağmen.
Chris Down

2

chrootbir yol, bir VM kullanmak başka bir yol. Bir LV üzerinde chroot ortamı oluşturabilir, anlık görüntü alabilir, her şeyi yapabilirsiniz ve daha sonra anlık duruma dönebilirsiniz.

Veya - VM ile aynı işlemi yapın (disk anlık görüntüsü) ve daha sonra tüm değişiklikleri geri alın.

Bunu genellikle yeni kurulmuş bir VM ile yapıyorum (VirtualBox ve kickstart veya PXE-boot ile autoyast kullanarak).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.