Zsh'de Komuta Tarihi


61

Zsh komut geçmişini nasıl takip eder?

Ana dizinde iki dosya görüyorum: .zhistoryve .zsh_history. Onların arasındaki fark ne? Dosyalar geçmişimin tümünü içeriyor gibi görünüyor . Zsh sonsuza dek onlardan birine satır eklemeye devam ediyor mu? Bu tarih araştırmasını çok yavaşlatmaz mı?

Bu dosyaları güvenli bir şekilde başka bir yere sembolik bağlantılar yapabilir miyim? (örneğin, tarihteki değişiklikleri takip etmek için bir git deposu)


Orada ~/.zshrcve / veya /etc/zshrcorada açıklanan seçenekler için kontrol edin zsh.sourceforge.net/Guide/zshguide02.html#l17
UVV

Yanıtlar:


78

Zsh, giriş hatlarını (muhtemelen zaman bilgisiyle) değişken tarafından belirtilen dosyada saklar HISTFILE. Bu mutlak bir dosya adı olmalıdır (aksi halde o an hangi dizinde mevcut olduğuna göre yorumlanacaktır).

Zsh için yerleşik bir varsayılan değer yoktur HISTFILE. Zsh dağılımı, ~/.histfileyerleşik değeri olan yeni kullanıcılar için bir kurulum sihirbazı ile birlikte gelir , bu yüzden zsh kullanıcılarının varsayılan olarak aldığı şey budur. Oh-my-zsh HISTFILE=.zhistoryönceden ayarlanmış olarak geliyor . Öyleyse, hem varsayılan ayarlarla hem de oh-my-zsh ile zsh'yi denediniz. .zshrcŞu anda hangisini kullandığınızı görmek için tarihinizi veya dosya tarihlerini kontrol edin .

Zsh dosyayı nasıl açar ve bu nedenle sembolik bir bağlantı olduğunda ne olur, birkaç seçeneğe bağlıdır.

  • Seçeneklerden biri append_history(varsayılan olarak ayarlanır ) inc_append_historyveya share_historyayarlanmışsa veya geçmiş açıkça kaydedildiğinde fc -AI, zsh mevcut dosyaya eklenir.
    Bu ayarların altında bile, zsh'nin boyutuna küçültmek için ara sıra aşağıdaki gibi dosyanın üzerine yazdığını unutmayın.
  • Aksi takdirde, seçenek hist_save_by_copyayarlanırsa (zsh 5.0'dan beri varsayılan olarak ayarlanır, ancak 4.2'de mevcut değildir), zsh geçici bir dosya yazar, sonra tamamlandığında yerine taşır. Bu durumda, eğer geçmiş dosya sembolik bir link ise, yeni dosya sembolik linkin yerini alır.
  • Aksi takdirde, zsh mevcut dosyanın üzerine yazar.

Sembolik bir bağlantıya zsh noktasından ziyade HISTFILE, geçmiş dosyasının olmasını istediğiniz yere ayarlayın .

Tarihin kaç satır değişkenleri aracılığıyla yapılandırılır tutulur HISTSIZEve SAVEHIST. HISTSIZEoturumda tutulan SAVEHISTmaksimum satır sayısı ve geçmiş dosyasında tutulan maksimum satır sayısıdır.

Bazı geçmişi kaydetmek için , her ikisini de ayarlamanız gerekir HISTFILEve SAVEHISTvarsayılan değeri SAVEHIST0'dır HISTSIZE. Ayrıca, zsh 5.0'dan itibaren, varsayılan değer yalnızca 30'dur.

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.