Terminal istemlerine zaman damgası ekleme


53

Terminal istemlerine zaman damgası eklemenin mümkün olup olmadığını merak ediyordum ve öyleyse bunu nasıl başarabilirim?


çalışma saatini senkronize olarak görüntülemek için bu bağlantıyı kontrol edin
Mana

Yanıtlar:


60

Bu satırı ~/.bashrcdosyaya ekle :

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

Böylece çıktı şöyle bir şey olacak:

[07:00:31] user@name:~$

Bazen zamanın doğru olmadığını ve bir tür gecikme olduğu gibi daha eski olduğunu deneyimliyorum. Bazı komutların ne kadar sürdüğünü görmek için onu kullanabildiğim halde (büyük ..). Nasıl olabilir?
Kevin Simper

2
@ devav2: Saat dilimini belirtmenin bir yolu var mı?
Hippo

Kök kullanırken terminale zaman damgası ekleyebilmenin bir yolu var mı? Sadece normal bir kullanıcı olduğumda zaman damgasına sahibim. Teşekkürler
Yufenyuy Veyeh Dider

4
dateKomut için +%H:%M:%Sile değiştirebilirsiniz +%T.
snapfractalpop

5
Bu benim terminal sarma ile vidalı, bu yüzden burada ayrıntılı olarak yaklaşımını kullandım. Sadece
PS1'inize

25

Benim çözümüm, bu PS1 satırını .bashrc'ye koymak için http://bashrcgenerator.com/ kullanmaktı :

export PS1="\t [\u@\h \W]\\$ \[$(tput sgr0)\]"

Hangi gibi görünecek

13:05:54 [chad@work-laptop:~/Downloads]$ ls -al

PROMPT_COMMAND kullanmak, benim için tarihi mahvetti. Geçmişe bisiklet sürerken daha uzun bir satır geldiğinde, istemin sonunu, öne eklenen zaman damgasıyla aynı sayıda karakter keser. Örneğin

13:14:38 [chad@work-laptop:~/Doexport PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\\] "

Ve bu satır düzenlenemez çünkü karakterleri doğru yerde göstermez, tıpkı sizin yazdığınız gibi göründüğü gibi değil.

PROMPT_COMMAND ile, belki de [$ (tput sgr0)] bölümünü kullanarak yapılabileceğini tahmin ediyorum ama PS1 çalışıyor.


Buradaki bağlantı pulları daha da özelleştirmek için harika.
cellepo

16

Bunun yerine istemi kendisine tarihini ekleyerek, tarih ekleyebilirsiniz hemen önce aşağıdaki satırı koyarak istemi üst aramalarınızdan .bashrc. Bunun için de yüklemeniz gerekir cowsay. Kısa bir istemi tutarken tarihi görüntülemenin eğlenceli bir yolu :

cowsay "Welcome $USER! It's now $(date '+%A %B %d %Y %r')"

Mevcut haliyle, mevcut sistemden değişkeni $USERve okuduğu değeri değiştirmeden herhangi birinin sisteminde çalışacaktır date.

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


8
İstemi belirtmenin amacı, belirli bir komutu en son ne zaman çalıştırdığınızı bilmektir.
James Oltmans

6

Zira geliştirmek için cevaba bir yorum eklemek için yeterli itibar puanım olmadığından. Bilgi ekleyebilmemin tek yolunun ikinci bir cevap oluşturmak olduğu görünüyor. Böylece cevap olarak söylenenleri tekrarlayacağım ve üzerine inşa edeceğim.

Tarih damgasının değiştirilmesini istediğiniz kullanıcının .bashrc dosyasını düzenleyin.

"User @ host: ~ $" ifadesini görürseniz, geçerli kullanıcınızın giriş dizinindesiniz. .Bashrc dosyası gizli bir dosyadır çünkü "." Noktasıyla ön eklenmiştir. Listede görmek için uzun bir liste kullanmanız gerekir.

"Ls -a" kullanabilirsiniz ve sonra ".bashrc" dosyasını görmelisiniz.

Dosyayı bir metin editörüyle düzenleyin. Örnek olarak, "nano .bashrc", "vim .bashrc", "vi .bashrc", "pico .bashrc" veya kullanmak istediğiniz editör için.

Bunu komut dosyası yazmak ve birçok kullanıcı için birçok mermiye eklemeyi planlamak istiyorsanız, "echo" komutunu, ">>" işleci ile birlikte kullanmak yararlı olabilir. Örneğin,

echo "export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"" >> .bashrc

Bu yöntemi kullanırsanız, değiştirmek istediğiniz kullanıcının geçerli çalışma dizininde olduğunuzdan emin olun. Bunu kontrol etmek için "pwd" kullanabilir veya çalışma dizini komutunu yazdırabilirsiniz.

"]" Uç braketi ile kullanıcı adı arasındaki fazla boşluğu beğenmezseniz, sadece bu çok az değişiklik yapılmış regex'i kullanın:

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"

Doğrudan dosyayı düzenliyorsanız bunu kullanın.


1
Düzenlemeler önerebilirsiniz.
muru

4
export PROMPT_COMMAND=date

Her bir istemi vermeden önce tarihi yazdırır.


1

.bashrcYoluyla aç

vim ~/.bashrc

ve aşağıdakileri içine ekleyin .bashrc:

#PS1="[\A \u@\h \W\a]$" 

nerede \Azaman içindir ( \Wsadece yolun sonunda, mevcut çalışma dizini yolunun tamamını istiyorsanız) kaldırın. Sonra yazın

source ~/.bashrc

Bunun gibi bir şey göreceksiniz:

[16:04 trwood@cobalt04 ~/MCEq_dev]$

1
Kaldırma \Wişlemi hiç yol göstermez. \wtam yol verecek.
Zanna

0

Sadece @ devav2'nin cevabını eklemek için:

Yeni başlayanlar için okunması kolay bir yankı komutu:

export PROMPT_COMMAND='echo -n "$(date +%H:%M:%S) "'

Onun yerine

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

Yankı komutunun dışa aktarma sırasında değerlendirilmemesi gerektiği için çift tırnak yerine tek tırnak tırnak kullanmak daha mantıklı olur. Komutun tamamına alıntı yapmak için tekli tırnak kullanmak, ardından tartışmayı echo komutuna alıntı yapmak için çift tırnak kullanmanıza izin verir , [ve$


1
Çıkışlar biçimlendirme için kullanılıyor (köşeli ayraçlar). Bunun kabul edilen cevaba
Elder Geek,

Bunları 'echo -n "$ (tarih +% H:% M:% S)"' ye de ekleyebilirsiniz: 'echo -n "[$ (tarih +% H:% M:% S)]"' Onlardan kaçmaya ihtiyacım var. Bir yankıyı yankı komutunun tartışması olarak kullanmanın avantajı, şimdi bash değerlendirilebilir olandan kaçmanıza gerek kalmamasıdır, bu da okumayı kolaylaştırır.
qwertyzw

@ElderGeek Daha fazla açıklama ekledim. Umarım bu yardımcı olur.
qwertyzw

0

Bence devam etmenin doğru yolu, belirleyen $HOME/.bashrckodları bulmak PS1, yorumlamak ve kişisel olanları eklemek. Bu benim bloğum mesela:

PS1_DATE="\D{%Y-%m-%d %H:%M:%S}"

if [ "$color_prompt" = yes ]; then
    PS1="[$PS1_DATE \[\e]0; \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[\033[00m\]\[\033[01;34m\]\w \[\033[00m\]\$] "
    #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='[$PS1_DATE ${debian_chroot:+($debian_chroot)}\w \$] '
    #PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

Çıktı:

[2019-06-18 15:54:29 ~/Desktop $] echo "It's late!"

0

Komut isteminde zaman damgasını göstermesi en kolay sözdizimi muhtemelen şöyle olacaktır:

    PS1='\D{%F} \t $...'

nerede

\D{format}tarih biçiminde (bkz man bash. PROMPTING bölümü)

%Ftam tarih; % Y-% m-% d ile aynı (bkz man date. FORMAT bölümü) ve

\t24 saat HH mevcut zamanı: dd: ss biçimi (bakınız man bash, isteyen bölümü)

nano ~/.bashrc

yukarıda gösterildiği gibi PS1 değişkenlerinde değişiklik yapın

source ~/.bashrc


0
export PROMPT_COMMAND="echo -n \[\$(date +%F-%T)\]\ "
export HISTTIMEFORMAT="%F-%T "

en azından benim için kullanışlı görünüyor.

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.