ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะเพิ่มการประทับเวลาลงในพรอมต์เทอร์มินัลและถ้าเป็นเช่นนั้นฉันจะทำสิ่งนี้ได้อย่างไร
ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะเพิ่มการประทับเวลาลงในพรอมต์เทอร์มินัลและถ้าเป็นเช่นนั้นฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
เพิ่มบรรทัดนี้ใน~/.bashrc
ไฟล์:
export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "
ดังนั้นผลลัพธ์จะเป็นดังนี้:
[07:00:31] user@name:~$
date
คำสั่งคุณสามารถแทนที่ด้วย+%H:%M:%S
+%T
วิธีแก้ปัญหาของฉันคือใช้http://bashrcgenerator.com/เพื่อสร้างบรรทัด PS1 นี้เพื่อใส่ใน. bashrc:
export PS1="\t [\u@\h \W]\\$ \[$(tput sgr0)\]"
ซึ่งจะมีลักษณะดังนี้
13:05:54 [chad@work-laptop:~/Downloads]$ ls -al
การใช้ PROMPT_COMMAND ทำให้ประวัติของฉันยุ่งเหยิง เมื่อมีแถวยาวขึ้นขณะที่ขี่จักรยานไปตามประวัติศาสตร์มันจะตัดส่วนท้ายของพรอมต์ด้วยจำนวนอักขระที่เท่ากันกับเวลาประทับที่เพิ่มไว้ด้านหน้า เช่น
13:14:38 [chad@work-laptop:~/Doexport PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\\] "
และบรรทัดนี้ไม่สามารถแก้ไขได้เนื่องจากไม่แสดงอักขระในตำแหน่งที่ถูกต้องเนื่องจากคุณไม่ได้พิมพ์ในที่ที่ดูเหมือนว่าคุณกำลังพิมพ์
ฉันเดาว่ามันสามารถทำได้ด้วย PROMPT_COMMAND บางทีโดยใช้ส่วน [$ (tput sgr0)] แต่ PS1 ใช้ได้
แทนการเพิ่มวันที่ตัวเองพร้อมท์คุณสามารถเพิ่มวันก่อนที่รวดเร็วของคุณโดยการวางบรรทัดต่อไปนี้ที่ด้านบน.bashrc
ของคุณ cowsay
สำหรับการทำงานคุณยังจะต้องติดตั้ง มันเป็นวิธีที่สนุกในการแสดงวันที่พร้อมกับแสดงข้อความสั้น ๆ :
cowsay "Welcome $USER! It's now $(date '+%A %B %d %Y %r')"
ในรูปแบบปัจจุบันมันจะทำงานในระบบของทุกคนโดยไม่ต้องแก้ไขตามที่อ่าน$USER
และdate
ตัวแปรจากสภาพแวดล้อมปัจจุบัน
เนื่องจากฉันมีคะแนนชื่อเสียงไม่เพียงพอที่จะเพิ่มความคิดเห็นในคำตอบเพื่อปรับปรุง ดูเหมือนว่าวิธีเดียวที่ฉันสามารถเพิ่มข้อมูลคือการสร้างคำตอบที่สอง ดังนั้นฉันจะทำซ้ำสิ่งที่พูดว่าเป็นคำตอบและสร้างสิ่งนั้น
แก้ไขไฟล์. bashrc สำหรับผู้ใช้ที่คุณต้องการให้มีการประทับตราวันที่
หากคุณเห็น "user @ host: ~ $" คุณจะอยู่ในไดเรกทอรีหลักของผู้ใช้ปัจจุบัน ไฟล์. bashrc เป็นไฟล์ที่ซ่อนอยู่เนื่องจากมีคำนำหน้าด้วยจุด "." หากต้องการดูในรายการคุณจะต้องใช้รายชื่อยาว
คุณสามารถใช้ "ls -a" และคุณควรเห็นไฟล์ ".bashrc"
แก้ไขไฟล์ด้วยโปรแกรมแก้ไขข้อความ สำหรับ exmaple "nano .bashrc", "vim .bashrc", "vi .bashrc", "pico .bashrc" หรือเครื่องมือแก้ไขที่คุณต้องการใช้
หากคุณต้องการสคริปต์นี้และวางแผนที่จะเพิ่มลงในเชลล์จำนวนมากสำหรับผู้ใช้หลายคนอาจเป็นประโยชน์ในการใช้คำสั่ง "echo" ร่วมกับตัวดำเนินการผนวก ">>" ตัวอย่างเช่น,
echo "export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"" >> .bashrc
หากคุณใช้วิธีการนี้ต้องแน่ใจว่าคุณอยู่ในไดเรกทอรีการทำงานปัจจุบันของผู้ใช้ที่คุณต้องการแก้ไข เพื่อตรวจสอบสิ่งนี้คุณสามารถใช้คำสั่ง "pwd" หรือพิมพ์ไดเรกทอรีการทำงาน
หากคุณไม่ชอบช่องว่างพิเศษระหว่างวงเล็บ "" "และชื่อผู้ใช้ให้ใช้ regex ที่ปรับเปลี่ยนเล็กน้อยนี้:
export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"
ใช้สิ่งนี้หากคุณกำลังแก้ไขไฟล์โดยตรง
export PROMPT_COMMAND=date
พิมพ์วันที่ก่อนออกแต่ละพรอมต์
เปิดของคุณ.bashrc
ผ่าน
vim ~/.bashrc
แล้วเพิ่มในรายการต่อไปนี้เพื่อ.bashrc
:
#PS1="[\A \u@\h \W\a]$"
โดยที่\A
เวลา ( \W
สำหรับจุดสิ้นสุดของเส้นทางเท่านั้นเอาออกถ้าคุณต้องการเส้นทางไดเรกทอรีการทำงานปัจจุบันทั้งหมด) จากนั้นพิมพ์
source ~/.bashrc
คุณจะเห็นสิ่งนี้:
[16:04 trwood@cobalt04 ~/MCEq_dev]$
\W
จะไม่แสดงเส้นทางใด ๆ เลย \w
จะให้เส้นทางเต็ม
เพียงเพิ่มคำตอบของ @ devav2:
คำสั่ง echo ที่อ่านง่ายสำหรับมือใหม่คือ:
export PROMPT_COMMAND='echo -n "$(date +%H:%M:%S) "'
แทน
export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "
เนื่องจากคำสั่ง echo ไม่ได้ถูกประเมินค่าในเวลาของการเอ็กซ์พอร์ตมันเหมาะสมกว่าที่จะใช้เครื่องหมายคำพูดเดี่ยวสำหรับการอ้างอิงข้อความแทนที่จะเป็นเครื่องหมายคำพูดคู่ การใช้คำพูดเดียวที่จะพูดคำสั่งทั้งหมดแล้วช่วยให้คุณใช้คำพูดสองจะพูดโต้แย้งไปยังคำสั่ง echo ไม่จำเป็นต้องที่จะหลบหนีตัวอักษรพิเศษเช่น,
[
และ$
ฉันคิดว่าวิธีที่ถูกต้องในการดำเนินการคือค้นหาใน$HOME/.bashrc
รหัสที่กำหนดPS1
แสดงความคิดเห็นและเพิ่มรหัสส่วนตัว นี่คือบล็อกของฉันเช่น:
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
เอาท์พุท:
[2019-06-18 15:54:29 ~/Desktop $] echo "It's late!"
ไวยากรณ์ที่ง่ายที่สุดในการแสดงการประทับเวลาในพรอมต์คำสั่งอาจเป็น:
PS1='\D{%F} \t $...'
ที่ไหน
\D{format}
มีการจัดรูปแบบวันที่ (ดูที่man bash
ส่วนการรวบรวม) เป็น
%F
วันที่เต็ม เหมือนกับ% Y-% m-% d (ดูman date
ส่วน FORMAT) และ
\t
เป็นเวลาปัจจุบันในรูปแบบ HH: MM: SS ตลอด 24 ชั่วโมง (ดูman bash
หัวข้อ PROMPTING)
nano ~/.bashrc
ทำการเปลี่ยนแปลงตัวแปร PS1 ตามที่แสดงด้านบน
source ~/.bashrc
เวลาของฉันคล้ายกับcowsay
คำตอบข้างต้น คุณจะต้องใส่now
ของคุณแต่คุณยังสามารถเรียกมันจากท่าเรือโดยการพิมพ์~/.bashrc
now
นี่คือภาพหน้าจอ:
รหัสทุบตีจะโพสต์ในคำตอบอย่างละเอียดนี้:
export PROMPT_COMMAND="echo -n \[\$(date +%F-%T)\]\ "
export HISTTIMEFORMAT="%F-%T "
อย่างน้อยก็ดูมีประโยชน์สำหรับฉัน