12.12.2025

Linux komut geçmişi

Terminalden bağlandığım bir linux sunucu var. Oluşturduğum yeni bir kullanıcı için komut geçmişi (history) yok gibi görünüyor. Bunu etkinleştirmek istiyorum.

Önce kullandığım shell'i kontrol etmem gerek.

echo $SHELL
/usr/bin/sh

ile bash'i değil, sh'i kullandığımı gördüm. Bunu değiştirerek bash yaptım.

chsh -s $(which bash)

sonra bir kez bağlantımı kesip (konsoldan bağlıysam oturumu kapatıp) tekrar oturum açmam gerek.

Sonrasında yine echo $SHELL komutunu kullanarak çıkışta /usr/bin/bash gördüm.

Komut geçmişi, profilin altında .bash_history dosyasına yazılır. Bu dosya yoksa

echo $HISTFILE

komutu ile önce bu değişkenin varlığını kontrol etmek, yoksa

export HISTFILE=~/.bash_history

satırını .bashrc dosyasına eklemek, arkasından etkinleştirmek için

source ~/.bashrc

çalıştırmak gerek.

Komut geçmişini sınırlandıran değişkenler kontrol edilebilir:

echo $HISTSIZE
echo $HISTFILESIZE

Bu değişkenlerin ilki hafızada tutulacak komut geçmişi sayısı, ikincisi diskte tutulacak geçmiş sayısıdır.

zsh için de benzer bir şekilde ~/.zsh_history dosyasında tutulur. HISTSIZE değişkeni aynen geçerlidir, HISTFILESIZE yerine SAVEHIST değişkeni kullanılır.

Daha iyi bir yöntem için audit kullanılabilir. 

Hiç yorum yok: