Terminal istemlerine zaman damgası eklemenin mümkün olup olmadığını merak ediyordum ve öyleyse bunu nasıl başarabilirim?
Terminal istemlerine zaman damgası eklemenin mümkün olup olmadığını merak ediyordum ve öyleyse bunu nasıl başarabilirim?
Yanıtlar:
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:~$
dateKomut için +%H:%M:%Sile değiştirebilirsiniz +%T.
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.
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.

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.
.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]$
\Wişlemi hiç yol göstermez. \wtam yol verecek.
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$
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!"
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
Benim zamanım cowsayyukarıdaki cevaba benzer . Sen koymak gerekir nowŞu Verilerinizi ~/.bashrcama aynı zamanda yazarak terminalden diyebilirsin now.
İşte bir ekran görüntüsü:
Bash kodu bu çok ayrıntılı cevapta yer almaktadır:
export PROMPT_COMMAND="echo -n \[\$(date +%F-%T)\]\ "
export HISTTIMEFORMAT="%F-%T "
en azından benim için kullanışlı görünüyor.