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.