LinuxTemelKomut geçmişi

Kabuk geçmişi (bash ve zsh)

Etkileşimli kabuk komutlarının kullanıcı bazlı metin dosyaları; bash HISTTIMEFORMAT ile #epoch satırları, zsh EXTENDED_HISTORY ile başlangıç ve süre ekler.

01Konum

  • ~/.bash_history (bash default HISTFILE)
  • $HISTFILE (zsh: no history file is written if HISTFILE is unset)

02Yanıtladığı sorular

  • Bir kullanıcı etkileşimli kabuklarda hangi komutları çalıştırdı?
  • Bir komut ne zaman başlatıldı ve ne kadar sürdü (zsh EXTENDED_HISTORY)?
  • Komut satırından araç indirildi mi, dosya hazırlandı mı veya günlükler temizlendi mi?

03Biçim ve sürümler

BiçimDüz metin, her satırda bir komut. bash: her komuttan önce isteğe bağlı '#<epoch'tan bu yana saniye>' zaman satırları. zsh EXTENDED_HISTORY: ': <başlangıç zamanı>:<geçen saniye>;<komut>'.
Geçerli olduğu sürümlerGüncel GNU Bash ve zsh kılavuzlarında belgelenen davranış; varsayılanlar dağıtım veya kullanıcı başlangıç dosyalarıyla değiştirilebilir.

04Temel alanlar

AlanNe anlatır
Command lineGeçmiş genişletmesinden sonra girildiği hâliyle komut.
#<digits> (bash)HISTTIMEFORMAT ayarlandığında yazılan, sonraki girdiye ait zaman satırı.
: <beginning time>:<elapsed seconds>; (zsh)Epoch'tan bu yana saniye cinsinden başlangıç zamanı ve saniye cinsinden süre.

05Zaman damgaları

AlanKodlamaNot
bash '#' lineUnix seconds (decimal text)Yalnızca geçmiş yazılırken HISTTIMEFORMAT ayarlıysa bulunur.
zsh beginning timeUnix seconds (decimal text)Yalnızca EXTENDED_HISTORY (veya aynı biçimi yazan SHARE_HISTORY) ile bulunur.

Ham değerleri Zaman damgası çözücü, yerel saatleri ise Yerel saatten UTC'ye ile çözün.

06İnceleme akışı

  1. root dahil her hesabın geçmiş dosyalarını ve HISTFILE, HISTCONTROL ve geçmiş seçeneklerini ayarlayan başlangıç dosyalarını toplayın.
  2. Satırların zaman damgası taşıyıp taşımadığını bilmek için kabuğu ve etkin seçenekleri belirleyin.
  3. Zaman satırlarını UTC'ye çevirin ve satırların özgün sırasını koruyun.
  4. Komutları journal, kimlik doğrulama günlükleri ve dosya sistemi zamanlarıyla doğrulayın.

07Yorum tuzakları

  • bash geçmişi kabuk kapanırken yazar ve histappend ayarlı değilse dosyanın üzerine yazar; sonlandırılan bir kabuk kayıt bırakmayabilir.
  • HISTCONTROL=ignorespace (bash) ve HIST_IGNORE_SPACE (zsh) boşlukla başlayan komutları kaydetmez.
  • Dosyalar HISTFILESIZE/SAVEHIST değerine göre kısaltılır ve kullanıcı tarafından kolayca düzenlenebilir veya silinebilir.
  • Zaman satırları yoksa tek sıralama satır sırasıdır ve birden çok oturum iç içe geçebilir.

09Kaynaklar

  1. Bash Reference Manual — Bash History Facilities GNU Project · erişim 2026-10-14
  2. Bash Reference Manual — Bash Variables GNU Project · erişim 2026-10-14
  3. Why do bash history files save timestamps in Unix (Epoch) time? Red Hat Customer Portal · erişim 2026-10-14
  4. zsh manual — Options (History) zsh project · erişim 2026-10-14
  5. zsh manual — Parameters Used By The Shell zsh project · erişim 2026-10-14