ฉันจะรับวันที่ / เวลาปัจจุบันในเทอร์มินัลได้อย่างไร ฉันเริ่มระบบของฉันเป็นส่วนใหญ่ในโหมดข้อความ (คอนโซล) และต้องการให้คำสั่งรู้วันที่ / เวลาปัจจุบัน
ฉันจะรับวันที่ / เวลาปัจจุบันในเทอร์มินัลได้อย่างไร ฉันเริ่มระบบของฉันเป็นส่วนใหญ่ในโหมดข้อความ (คอนโซล) และต้องการให้คำสั่งรู้วันที่ / เวลาปัจจุบัน
คำตอบ:
date
คำสั่งจะแสดงวันที่และเวลา
man date
จะแสดงวิธีควบคุมเอาต์พุตให้เป็นรูปแบบที่คุณต้องการหากคุณต้องการสิ่งอื่นนอกเหนือจากเอาต์พุตมาตรฐาน ตัวอย่างเช่น:
date "+%H:%M:%S %d/%m/%y"
จะส่งออกวันที่และเวลาในรูปแบบ 14:09:22 09/06/2015
สามารถอ่าน man page ของ man page ได้ง่ายขึ้นบนUbuntu Man Pages
เวลาเป็นพรอมต์บรรทัดคำสั่ง:
PS1="\@ \w$bk"
ดูเหมือนว่า: 11:41 น. ~
นักเล่นตัวน้อยใส่ในวงเล็บ:
PS1="[ \@ \w$bk ]"
ดูเหมือนว่า: [11:36 AM ~]
เพิ่มผู้ใช้และ localhost ด้วยเวลาทั้งหมดอยู่ในวงเล็บ:
PS1="[ \u on \h \@ \w$bk ]"
ดูเหมือนว่า: [DrPete บน LittleSorrel 10:34 AM ~]
รีเซ็ตพรอมต์ให้เป็นค่าเริ่มต้น #: PS1="# "
หากต้องการให้พรอมต์พร้อมใช้งานอย่างถาวรให้เพิ่มบรรทัดพรอมต์ที่คุณต้องการเช่น
export PS1="\@ \w$bk "
ถึง ~ / .profile
ไม่สามารถช่วยได้ตอนนี้เรากำลังเพิ่ม ... เพิ่มสีกำหนดเป็น. profileเพื่อให้ง่ายต่อการติดตั้ง:
# Install GNU coreutils
bk="\[\033[0;38m\]" #means no background and white lines
txtBlue="\[\033[0;34m\]" #letter color blue
txtRed="\[\033[0;31m\]" #letter color red
txtCyan="\[\033[1;36m\]" #letter color cyan
txtWhite="\[\033[1;37m\]" #letter color white
txtYellow="\[\033[1;33m\]" #letter color yellow
จากนั้นพรอมต์สีที่ยอดเยี่ยมจะเป็น:
PS1="[ $txtYellow\u on $txtCyan\h $txtRed\@ $txtWhite\w$bk ]"
มีรายการคำสั่งที่ใช้สำหรับเวลาและวันที่:
คำสั่ง date
$ date
Tue Jun 9 18:04:30 EEST 2015
คำสั่งที่zdump
ใช้เพื่อสะท้อนเวลาในเขตเวลาที่ระบุ
$ zdump EEST
EEST Tue Jun 9 15:05:17 2015 EEST
hwclock
$ sudo hwclock
Tue 09 Jun 2015 06:05:55 PM EEST -0.656710 seconds
แต่ต้องติดตั้ง xview-clients
sudo apt-get install xview-clients
ใช้ntpdate
คำสั่ง ntpdate
ใช้เพื่อกำหนดเวลาของระบบ แต่การใช้โดยไม่ต้องsudo
พิมพ์เวลาและวันที่
$ ntpdate
26 Jun 10:48:34 ntpdate[4748]: no servers can be used, exiting
ด้วย Ubuntu 15.04 (systemd) นอกจากนี้ยังมีtimedatectl
ซึ่งจะแสดงเวลาและช่วยให้คุณสามารถเปลี่ยนมันและอื่น ๆ man timedatectl
ใน
ไม่มีข้อโต้แย้งมันให้
% timedatectl คำเตือน: ละเว้นตัวแปร TZ การอ่านการตั้งค่าเขตเวลาของระบบเท่านั้น เวลาท้องถิ่น: ke 2015-06-10 10:31:59 EEST เวลาสากล: ke 2015-06-10 07:31:59 UTC เวลา RTC: ke 2015-06-10 07:31:59 โซนเวลา: ยุโรป / เฮลซิงกิ (EEST, +0300) เปิดใช้งาน NTP: ใช่ ซิงโครไนซ์ NTP: ใช่ RTC ในท้องถิ่น TZ: ไม่ ใช้งาน DST: ใช่ การเปลี่ยนแปลง DST ล่าสุด: DST เริ่มต้นที่ su 2015-03-29 02:59:59 EET su 2015-03-29 04:00:00 EEST การเปลี่ยนแปลง DST ถัดไป: DST สิ้นสุดลง (นาฬิกากระโดดหนึ่งชั่วโมงย้อนหลัง) ที่ su 2015-10-25 03:59:59 EEST su 2015-10-25 03:00:00 EET
และอีกคุณสมบัติที่ดีที่ฉันได้ใช้คือการtimedatectl set-ntp true
เปิดใช้งานsystemd-timesyncd
ซึ่งเป็นไคลเอนต์ inbuild SNTP (Simple Network Time Protocol) ซึ่งซิงค์นาฬิกาของคุณกับเซิร์ฟเวอร์ระยะไกล
$ timedatectl
ทำงานได้ดีที่นี่บน Ubuntu 14.04 เช่นกัน
แม้ว่าคำตอบทั้งหมดที่นี่จะถูกต้องคุณต้องใช้date
คำสั่งด้วยตนเองเพื่อดูเวลาเมื่อใดก็ตามที่คุณต้องการและผลลัพธ์จะผสมกับเอาต์พุตปกติของคำสั่งของคุณ ส่วนใหญ่ก็โอเค แต่บางครั้งก็ใช้ไม่ได้
คุณสามารถเพิ่มคำสั่ง date ลงในพรอมต์ของคุณซึ่งจะแสดงนาฬิกา (คงที่) ทุกครั้งที่เชลล์พร้อมสำหรับคำสั่งหรือคุณสามารถใช้หนึ่งในมัลติเพล็กเซอร์เทอร์มินัลที่มีบรรทัดสถานะ สิ่งที่ฉันต้องการ (แม้ว่าฉันยอมรับว่าเก่าที่สุด) คือหน้าจอ GNU
ในคอนโซลหรือในเทอร์มินัลพูดผ่านssh
ถ้าคุณใช้หน้าจอท่ามกลาง zillions ของสิ่งต่างๆ ที่คุณสามารถทำได้ (ฉันเคยคิดว่าscreen
หลีกเลี่ยงไม่ได้สำหรับการทำงานเมื่อฉันมีเทอร์มินัลข้อความ) คุณมีตัวเลือก --- ตามปกติในการกำหนดค่าเริ่มต้น --- ของการมีนาฬิกาในบรรทัดสถานะ:
(ภาพหน้าจออยู่บนเทอร์มินัลเสมือน แต่จะเหมือนกันบนคอนโซลเสมือน)
จะเอาท์พุทวันที่และเวลา:
sudo hwclock
รายละเอียดเพิ่มเติม:
man hwclock
ไม่มีการพูดถึงไพ ธ อนดังนั้นฉันจะโยนมันทิ้งที่นี่:
$ python -c 'import time;print(time.asctime(time.localtime()))'
Tue Nov 29 20:25:27 2016
วิธีการทำงานค่อนข้างง่าย:
time
โมดูลlocaltime()
ฟังก์ชั่นให้struct
ประเภทข้อมูลที่มีข้อมูลทั้งหมดที่จำเป็นเช่นเวลาของวัน, วัน, ปี, ฯลฯasctime()
แปลงข้อมูลทั้งหมดนั้นให้เป็นสตริงและเราพิมพ์ออกมาในรูปแบบที่สวยงาม ทำงานในหลาม 2 และ 3 เหมือนกัน
ถ้าคุณกำลังมองหา sometting เช่นyyyymmddhhmmss , 20160804020100 การใช้งานนี้:
date +%Y%m%d%H%M%S
มันเซิร์ฟเวอร์วัตถุประสงค์ส่วนใหญ่เช่นการสำรองไฟล์หรือการกรองเข้าสู่ระบบ
หากคุณไม่แน่ใจเกี่ยวกับความแม่นยำของนาฬิกาของระบบหรือต้องการใช้แหล่งเวลาภายนอกคุณสามารถรับเวลาผ่านอินเทอร์เน็ต เพื่อความแม่นยำที่ดีที่สุดคุณสามารถใช้sntp
(ติดตั้งโดยค่าเริ่มต้นใน MacOS และมาเป็นส่วนหนึ่งของการกระจาย ntp) เพื่อรับวันที่:
sntp pool.ntp.org
หากคุณมีการเข้าถึงอินเทอร์เน็ตจากอินเทอร์เน็ตคุณสามารถรับได้ผ่าน HTTP โดยใช้HTPซึ่งมีอยู่ในระบบหลายระบบhtpdate
ซึ่งโดยปกติจะมีความแม่นยำเพียงวินาทีที่ใกล้ที่สุดหรือคุณสามารถเข้าถึงได้โดยใช้ TLS (ซึ่งแยกการประทับเวลาจาก TLS แลกเปลี่ยน) tlsdate
ซึ่งสามารถให้ความแม่นยำที่ดีกว่า:
tlsdate -nV ntp.org
man date