Bir kabuk ortamı nasıl sıfırlanır?


25

Bu sorun beni bir süredir rahatsız ediyor ve cevabımı EnvWatcher aracılığıyla bulduğumu düşündüğüm halde maalesef yalnızca Bash üzerinde çalışıyor. Ve ben zsh kullanırım.

Env-watcher'ın yaptığı şeyleri, daha az derecede belki de çoğaltmak istiyorum, ancak bir kabuğunu temiz başlangıç ​​aşamasına sıfırlayabileceğim bir komut olup olmadığını bilmem gerekiyor.

Örneğin, aşağıdaki iş akışına sahip olmak isterim.

source some-functions
alias another-thing
export SVN_EDITOR=vim
RESET-ZSH # none of the above are valid any more

Böyle bir olasılık var mı, yoksa kelebekleri mi kovalıyorum?

Yanıtlar:


32

Sadece exec zsh, size taze bir zsh verecek ve init fonksiyonlarını yeniden çalıştırabilirsiniz. exec zsh -l"Giriş kabuğu" durumunu korumak için bir giriş zsh'sine ihtiyacınız olduğunu unutmayın . Komut geçmişini ne kadar iyi koruduğunu bilmiyorum (benim için işe yarıyor gibi gözüküyor, ancak farklı terminallerde birden fazla mermi kullanıyorsanız, iki merminin geçmişi arasında "çapraz konuşma" alabilirsiniz)


4
Bu dışa aktarılan çevre değişkenlerini geri almayacak, değil mi? (Her ne kadar init dosyanız tarafından ayarlananlar sıfırlanacaktır.)
cjm

Muhtemelen olmaz. Bu yönü hiç düşünmemiştim, çünkü çevre değişkenlerini kabukta geçici olarak ayarladığınız bir şey olarak düşünmüyordum.
Random832

15

Dışa aktarılan ortam değişkenlerini geri almak için envkomutu kullanabilirsiniz env -i zsh. envargüman olarak verilen komutu çalıştırır ve -itemiz bir ortam sağlar.

Yapılandırmanıza bağlı olarak, yüklemek -liçin zsh /  eklemeniz gerekebilir ve ayrıca kabuk, başlangıç ​​dosyalarınızı nerede bulacağını bilmesi için ortamınızı "önyükleme" yapmanız gerekebilir . Tamamen, bu gibi görünüyor:bash.profile$HOME

env -i HOME="$HOME" zsh -l

1
TERMVe gibi birkaç kişiye ihtiyacınız olabilir DISPLAY.
G-Man
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.