Saya bertanya-tanya apakah mungkin untuk menambahkan cap waktu ke terminal prompt, dan jika demikian, bagaimana saya bisa mencapai ini?
Saya bertanya-tanya apakah mungkin untuk menambahkan cap waktu ke terminal prompt, dan jika demikian, bagaimana saya bisa mencapai ini?
Jawaban:
Tambahkan baris ini ke ~/.bashrc
file:
export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "
Jadi hasilnya akan seperti:
[07:00:31] user@name:~$
date
perintah, Anda bisa menggantinya +%H:%M:%S
dengan +%T
.
Solusi saya adalah menggunakan http://bashrcgenerator.com/ untuk menghasilkan baris PS1 ini untuk dimasukkan ke .bashrc:
export PS1="\t [\u@\h \W]\\$ \[$(tput sgr0)\]"
Yang akan terlihat seperti
13:05:54 [chad@work-laptop:~/Downloads]$ ls -al
Menggunakan PROMPT_COMMAND mengacaukan riwayat untuk saya. Ketika garis yang lebih panjang muncul saat bersepeda melalui sejarah, itu memotong akhir prompt dengan jumlah karakter yang sama dengan cap waktu yang ditambahkan ke depan. misalnya
13:14:38 [chad@work-laptop:~/Doexport PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\\] "
Dan baris ini tidak dapat diedit karena tidak menampilkan karakter di tempat yang tepat, karena Anda tidak mengetik di mana Anda mengetik.
Saya kira itu bisa dilakukan dengan PROMPT_COMMAND, mungkin dengan menggunakan bagian [$ (tput sgr0)], tetapi PS1 berfungsi.
Alih-alih menambahkan tanggal ke prompt itu sendiri, Anda bisa menambahkan tanggal tepat sebelum prompt Anda dengan menempatkan baris berikut di bagian atas Anda .bashrc
. Agar berfungsi, Anda juga harus menginstal cowsay
. Ini adalah cara yang menyenangkan untuk menampilkan tanggal sambil menjaga prompt singkat :
cowsay "Welcome $USER! It's now $(date '+%A %B %d %Y %r')"
Dalam bentuk saat ini ia akan bekerja pada sistem siapa pun tanpa amandemen saat membaca $USER
dan date
variabel dari lingkungan saat ini.
Karena saya tidak memiliki poin reputasi yang cukup untuk menambahkan komentar pada jawaban untuk memperbaikinya. Tampaknya satu-satunya cara saya dapat menambahkan informasi adalah dengan membuat jawaban kedua. Jadi, saya akan mengulangi apa yang dikatakan sebagai jawaban dan membangunnya.
Edit file .bashrc untuk pengguna yang Anda inginkan agar cap tanggalnya dimodifikasi.
Jika Anda melihat "user @ host: ~ $" Anda berada di direktori home pengguna Anda saat ini. File .bashrc adalah file tersembunyi karena diawali dengan titik ".". Untuk melihatnya dalam daftar, Anda harus menggunakan daftar panjang.
Anda dapat menggunakan "ls -a" dan kemudian Anda akan melihat file ".bashrc".
Edit file dengan editor teks. Untuk exmaple, "nano .bashrc", "vim .bashrc", "vi .bashrc", "pico .bashrc" atau editor apa pun yang ingin Anda gunakan.
Jika Anda ingin membuat skrip ini dan berencana menambahkannya ke banyak shell untuk banyak pengguna, mungkin bermanfaat untuk menggunakan perintah "echo" bersama dengan operator append ">>". Sebagai contoh,
echo "export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"" >> .bashrc
Jika Anda menggunakan metode itu, pastikan Anda berada di direktori kerja pengguna saat ini yang ingin Anda modifikasi. Untuk memeriksanya, Anda dapat menggunakan perintah "pwd" atau mencetak direktori kerja.
Jika Anda tidak menyukai ruang ekstra antara braket akhir "]" dan nama pengguna cukup gunakan regex yang sedikit dimodifikasi ini:
export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"
Gunakan ini jika Anda mengedit file secara langsung.
Buka .bashrc
via Anda
vim ~/.bashrc
dan kemudian tambahkan yang berikut ke .bashrc
:
#PS1="[\A \u@\h \W\a]$"
di mana \A
ada waktu ( \W
hanya untuk ujung jalan, hapus jika Anda ingin seluruh jalur direktori kerja saat ini). Kemudian ketik
source ~/.bashrc
Anda akan melihat sesuatu seperti ini:
[16:04 trwood@cobalt04 ~/MCEq_dev]$
\W
akan menunjukkan jalan sama sekali. \w
akan memberikan path lengkap.
Hanya untuk menambahkan jawaban @ devav2:
Perintah gema yang lebih mudah dibaca untuk pemula adalah:
export PROMPT_COMMAND='echo -n "$(date +%H:%M:%S) "'
Dari pada
export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "
Karena perintah gema tidak dimaksudkan untuk dievaluasi pada saat ekspor, lebih masuk akal untuk menggunakan tanda kutip tunggal untuk kutipan literal daripada tanda kutip ganda. Menggunakan tanda kutip tunggal untuk mengutip seluruh perintah kemudian memungkinkan Anda untuk menggunakan tanda kutip ganda untuk mengutip argumen untuk perintah gema, menghilangkan kebutuhan untuk melarikan diri karakter khusus seperti ,
[
dan$
Saya pikir cara yang benar untuk melanjutkan adalah dengan mencari di $HOME/.bashrc
kode yang mengatur PS1
, berkomentar dan menambahkan yang pribadi. Ini adalah blok saya misalnya:
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
Keluaran:
[2019-06-18 15:54:29 ~/Desktop $] echo "It's late!"
Sintaks termudah untuk menunjukkan stempel waktu di command prompt mungkin adalah:
PS1='\D{%F} \t $...'
dimana
\D{format}
diformat tanggal (lihat man bash
, bagian PROMPTING) sebagai
%F
tanggal penuh; sama dengan% Y-% m-% d (lihat man date
, bagian FORMAT), dan
\t
adalah waktu saat ini dalam 24 jam HH: MM: format SS (lihat man bash
, bagian PROMPTING)
nano ~/.bashrc
buat perubahan pada variabel PS1 seperti yang ditunjukkan di atas
source ~/.bashrc
Waktu saya mirip dengan cowsay
jawaban di atas. Anda harus menempatkan now
Anda ~/.bashrc
tetapi Anda juga bisa menelepon dari terminal dengan mengetik now
.
Berikut screenshotnya:
Kode bash diposting dalam jawaban yang sangat terperinci ini:
export PROMPT_COMMAND="echo -n \[\$(date +%F-%T)\]\ "
export HISTTIMEFORMAT="%F-%T "
setidaknya terlihat berguna untukku.