makaleler / Debian / Ubuntu / Pardus / Çoklu Sessions boyunca Komut Geçmişi tutulması

Çoklu Sessions boyunca Komut Geçmişi tutulması

31.12.2014 00:17:04

history komutu komut satırında kullandığınız komutların geçmişini tutuar.

history komutunu kullanarak, kullandığınız komutları yeniden yazmak zorunda kalmadan kullandığınız komutları yeniden çalıştırabilirsiniz. Komut geçmişi 'history' bir ortam değişkeni tarafından belirtilen bir dosyada saklanır.


echo $HISTFILE
/home/peter/.bash_history

Kaydedilecek komutların sayısı aşağıdaki ortam değişkeninin değerine bağlıdır:
echo $HISTSIZE
500

Biz herhangi bir zamanda tek bir kabuk 'shell' oturumunda faaliyet durumunda ömrü basittir. Eğer 2 eşzamanlı oturumunuz varsa, geçmişte aradığınız komutların bulunmadığı sizin için şaşırtıcı olabilir.

Varsayılan davranış komut geçmişi SADECE o oturum için komut çıktıları kaydedilir olmasıdır. Ayrıca, geçmişin mevcut içeriği yeni içerikler ile yazılır.

Önceden bir oturum kullandığınızı varsayarsak, ilk oturuma ait en son komutları olmayacak bir ikinci oturumu açılması durumunda, ilk kabuk oturumu kapatılmadığı için geçmiş dosyasının içeriğinin oturumu erken bitirilir, diğer oturumun kodları üzerine yazılır. Bu durum oldukça kafa karıştırıcı olabilir.


Çözüm basit. Aşağıdaki gibi History davranışını değiştirmek gerekir:
  • Geçmiş 'history' doyası üzerine yazması yerine eklenmesinin ayarlanması
    shopt -s histappend
  • Oturumun sonunda değil, komut'un çalıştırılmasından hemen sonra her komutu kaydedilmesi.
    PROMPT_COMMAND='history -a'

~/.bashrc dosyası içine yukarıdaki iki maddeyi ekleyelim.
vim ~/.bashrc
shopt -s histappend
PROMPT_COMMAND='history -a'

Not: PROMPT_COMMAND başlangıç durumuna getirmek için history -a kısmını bağlayabilirsiniz.


PROMPT_COMMAND bir değere sahip olup olmadığını görmek için:
echo $PROMPT_COMMAND

Birleştirme
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
yazar husonet

Yorumlar

Bu içerik için sizde yorum yapabilirsiniz!
anasayfa | makaleler | haberler | dosyalar | linkler | hakkımızda