Bash tarihinde zaman damgaları nasıl görülür?


259

Komutların bash tarihinden ne zaman yürütüldüğünü görebilmemin bir yolu var mı? Emri görebiliriz ama zaman alabilmemin bir yolu var mı?

Alt satır: Bash tarihinin yürütme zamanı


7
Bu, hem sayfalarda hem Linux hem de BSD için ne kadar zayıf belgelendiğine şaşırdım.
Sridhar Sarnobat


4
Eğer zsh kullanıyorsanız:history -E
Vahid

4
Aşağıdaki iki cevabın neden bir terminalin nasıl açılacağını söylemeniz gerektiğini düşündüğümden emin değilim ..
mwfearnley

2
@ Dog0 tarafından başvurulan bloga göre HISTTIMEFORMAT, komutlar verildiğinde değişken ayarlanmadıkça zaman damgası görünmez şekilde kaydedilmez . Başka bir deyişle, ayarlanmamışsa, şimdi ayarlamak daha önce verilen komutların zaman damgalarını almanıza yardımcı olmaz.
Tomislav Nakic-Alfireviç

Yanıtlar:


316

Terminal'i açmak için Ctrl+ Alt+ tuşlarına basın T, ardından aşağıdaki komutu çalıştırın:

HISTTIMEFORMAT="%d/%m/%y %T "

Veya değişikliği geçerli kullanıcı için kalıcı kılmak için:

echo 'HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc
source ~/.bashrc

Sonra

history

Daha fazla bilgi için bkz. Man bash veya Linux için Bash komut satırının A AZ Dizini .

Daha önce çalıştırılan komutlar HISTTIMEFORMATiçin geçerli saat zaman damgası olarak kaydedilir. Ayarlandıktan sonra çalıştırılan komutlar HISTTIMEFORMAT, uygun zaman damgasına sahip olacaktır.


7
Neden ile beyan exportiçinde .bash_profile? Bu, yalnızca bashtarafından okutulan bir komuttur, ondan başlatılan komutlarla değil, bu nedenle dışa aktarılmaması gerekir.
Alvaro Gutierrez Perez

71
Bunun yalnızcaHISTTIMEFORMAT oturumlar için ayarlandıktan sonra yeni geçmiş öğeleri için zaman damgalarını kaydedeceğini , yani bunu geriye dönük olarak kullanamayacağınızı unutmayın. Buradaki bazı cevaplar, tarih komutunun hemen zaman damgalı girişleri gösterdiği izlenimini veriyor
Louis Maddox

9
@Louis - Aslında bu benim için geriye dönük olarak benim için çalıştı?!?!
adım

19
@Jamil:;) ISO standartlarına uygun insanlar için, bu "% Y-% m-% d" için tarih parçası
Gauthier

13
@Gauthier - Aslında sadece F ISO tarih boyunca% kullanmak ;-) man7.org/linux/man-pages/man3/strftime.3.html
brianmearns

73

Ctrl+ Alt+ Terminalini açın Tve çalıştırın,

HISTTIMEFORMAT="%d/%m/%y %T "

sonra,

history

Değişiklikleri kalıcı hale getirmek için aşağıdaki adımları izleyin,

gedit ~/.bashrc

Aşağıdaki satırı .bashrc dosyasına eklemeniz ve sonra kaydetmeniz gerekir.

export HISTTIMEFORMAT="%d/%m/%y %T "

Kaynak .bashrc dosyaya aşağıdaki komutu çalıştırın,

source ~/.bashrc

Bu çalıştırma historykomutundan sonra .

görüntü tanımını buraya girin

kaynak : http://www.cyberciti.biz/faq/unix-linux-bash-history-display-date-time/


Cevap için teşekkür ederiz, \ kalıcı bir değişim olacak mı?
06'da

1
Hey, bunu OS X ve Windows'da (MINGW aracılığıyla) yapıyorum ve .bash_profile dosyasına ekliyorum, profile ve rc arasındaki fark nedir?
LazanyaAndroid 17

18

Evet, şunları yapabilirsiniz: ayarlarsanız $HISTTIMEFORMAT, .bash-historydoğru zaman damgası gelecektir. Bu, mevcut .bash-historyiçeriğe yardımcı olmaz , ancak gelecekte yardımcı olacaktır.


1
daha fazla netlik için genişletebilir misiniz?
06'da

5
Önceki gönderiye düzeltme: HISTTIMEFORMAT ayarı, zaman damgalarının görüntülenmesini sağlar ... hatta mevcut. En sevdiğim şey: HISTTIMEFORMAT = '% F% T' sizin ikamet ettiğiniz ülkeden değil ... herkesin saatin kaç olduğunu biliyor. :)

4
$ HISTTIMEFORMAT değerini verdim ve bugünün zamanını bu setin komutlarından önce bile aldım.
Yasin Okumuş

@ user491029 "... hatta mevcut". Bu doğru, ama yanıltıcı. En azından ubuntu 14.04'te, HISTTIMEFORMAT'ı ayarladıktan sonra tüm tarih girişleri için zaman damgaları göstermeye başladı, ancak mevcut oturumdan önceki herhangi bir komut için çalıştırılan zaman damgası mevcut oturumun giriş zaman damgası gibi görünüyordu.
jbobbins

1

Bir sonraki girişinizde değişiklikleri göreceksiniz.

echo 'HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc

0

Tüm kullanıcıların geçmiş zaman damgalarını etkinleştirmek için /etc/profile.d dosyasında bir komut dosyası oluşturun:

echo 'HISTTIMEFORMAT="%Y%m%d %T "' >> /etc/profile.d/timestamp.sh

1
Varsayılan terminal giriş kabukları çalıştırmayacağından, GUI üzerinden giriş yapan kullanıcılar için bu muhtemelen işe yaramayacaktır. /etc/bash.bashrcdaha iyi bir yer olurdu.
muru

0

Biliyorum, çok geç cevap veriyorum, ancak bunu tüm kullanıcılar için yapmak için herhangi bir .shdosyayı oluşturabilir /etc/profile.dve aşağıdaki satırı ekleyebilirsiniz:

echo 'HISTTIMEFORMAT="%Y-%m-%d %T "' >> /etc/profile.d/existing-foo-file.sh

rootSüper kullanıcı olarak giriş yapmamışsanız , bunu teeyapmak için komutu kullanmanız gerekir :

echo 'HISTTIMEFORMAT="%Y-%m-%d %T "' | sudo tee /etc/profile.d/mytimestamp.sh

Var olan herhangi bir dosyaya eklemek istiyorsanız, -abayrak teekomutunu verin:

echo 'HISTTIMEFORMAT="%Y-%m-%d %T "' | sudo tee -a /etc/profile.d/mytimestamp.sh

görüntü tanımını buraya girin


Merhaba Shashank, Cevabınızı eklediğiniz için teşekkürler ama bu cevabın diğerlerinden farkı nedir? Cevabınız tamamen farklıysa, cevapladığımız için mutluyuz, ancak cevap veremiyorsanız mevcut cevapları iyileştirebilirsiniz.
rʒɑdʒɑ,

Merhaba, yorumunuz için teşekkürler. Bu, aşağıdakilerden diğerlerinden farklıdır: 1. Bazıları, tüm kullanıcılar için yaratma konusunda bahsetti, ancak hiç kimse, içinde herhangi bir dosya adı oluşturma / açıklama hakkında bahsetmedi /etc/profile.d. timestamp.shTeknik olarak çok yakın görünüyor (karışıklık yaratıyor) bu yüzden ismini kullandım existing-foo-file.sh(foo-bar konsepti). 2. Hiç kimse root kullanıcılarıyla kullanma hakkında bahsetmedi. Bu yüzden kullanma örneği verdim sudo. 3. Üçüncü örnek, mevcut bir dosyaya eklenmenin 2. örneğini geliştirir. Linux / unix yeni başlayanlar bu sorunu vurabildiğinden, ben detaylandırdım.
Shashank Agrawal,
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.