Unix'te kullanıcı komut geçmişini nasıl kontrol edebilirim?


13

'History' komutunun Unix terminaline yazdığım komutların bir listesini verdiğini biliyorum.

Sistemde oturum açmış olan tüm kullanıcılar için komut geçmişini nasıl görebilirim?


Programlama ile ilgili değil. Superuser.com'da sormanızı öneririm .

Bilgi almak için standart bir araç yoktur, bu yüzden programlama (en azından 'komut dosyası' anlamında) ile ilgili olduğunu düşünüyorum.
IanH

Yanıtlar:


11

Şu anda giriş yapmış olan kullanıcıların bir listesini alırsınız /var/run/utmp(bkz. man 5 utmp). Geçmiş ~ / .history'de veya bash kullanıcısı için ~ / .bash_history'de saklanır. Diğer kabuklar diğer geçmiş dosyalarını kullanabilir, bu yüzden gerçekten tüm bilgileri almak o kadar kolay değildir.

Ayrıca, bir kullanıcı birden çok kez oturum açarsa, .bash_history dosyası her zaman güvenilir değildir.

Dosyayı okumak için utmp"ön uç" adı verilir who, bu nedenle şu anda oturum açmış olan kullanıcılar üzerinde yineleme yapmak için bir kabuk-komut dosyası yazabilirsiniz.


2
Geçerli tarih bellekte tutulur. Geçmiş dosyası, yalnızca neyin kullanıldığını history -aveya benzerini kullanarak veya bir kullanıcı kabuktan çıktığında gösterir.
sonraki duyuruya kadar duraklatıldı.

2
Bu yanıtta verilen dosya adlarının yalnızca varsayılan değerler olduğunu unutmayın. Her kullanıcı kendi yerini belirleyebilirdi (Joy'un cevabına bakınız). Bir kullanıcı farklı kabuklar kullanıyorsa, geçmişlerini muhtemelen farklı, varsayılan olmayan konumlarda (örn. ~ / Mybashhist, ~ / histories / ksh veya somesuch) depolayabilir. Ayrıca, bunun gibi kullanıcı verilerinin gözetilmesinin yasal sonuçları olabileceğini unutmayın.
DevSolar

3
echo $HISTFILE

Sonra bu dosyayı görüntüleyin.


1
Bu yalnızca daha önce kullanıcının ortamını ( HISTFILEbaşka bir şeye ayarlamış olabileceğinden ) kaynaklamışsanız çalışır.
DevSolar
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.