Làm thế nào để có được ngày và thời gian bằng cách sử dụng giao diện dòng lệnh?


98

Làm thế nào tôi có thể có được ngày / giờ hiện tại trong thiết bị đầu cuối. Tôi chủ yếu khởi động hệ thống của mình ở chế độ văn bản (bảng điều khiển) và cần lệnh để biết ngày / giờ hiện tại.

Câu trả lời:


173

Các datelệnh sẽ hiển thị cho bạn những ngày và giờ.

man datesẽ chỉ cho bạn cách kiểm soát đầu ra theo bất kỳ định dạng nào bạn cần, nếu bạn muốn một cái gì đó ngoài đầu ra tiêu chuẩn. Ví dụ:

date "+%H:%M:%S   %d/%m/%y"

sẽ xuất ngày và giờ theo định dạng 14:09:22 09/06/2015

Có thể tìm thấy phiên bản dễ đọc hơn của trang man trên Ubuntu Man Pages


6
+1 chỉ để nóiman date
jshthornton

Làm thế nào tôi có thể nhận được sự khác biệt múi giờ?
Ali D.

19

Thời gian như dấu nhắc dòng lệnh:

PS1="\@ \w$bk"

Hình như: 11:41 AM ~

Một ít fancier, kèm theo trong ngoặc:

PS1="[ \@ \w$bk ]"

Hình như: [11:36 AM ~]

Thêm người dùng và localhost theo thời gian, tất cả trong ngoặc:

PS1="[ \u on \h \@ \w$bk ]"

Hình như: [DrPete trên LittleSorrel 10:34 AM ~]

Đặt lại lời nhắc về mặc định #: PS1="# "

Để làm cho lời nhắc có sẵn vĩnh viễn , hãy thêm dòng nhắc bạn chọn, nghĩa là

export PS1="\@ \w$bk "

đến ~ / .profile.

Không thể giúp được, chúng tôi đang triển khai ... thêm màu sắc, xác định chúng trong .profile để giúp chúng dễ dàng hơn để thiết lập:

 # 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

Sau đó, một dấu nhắc siêu màu sẽ là:

PS1="[ $txtYellow\u on $txtCyan\h $txtRed\@ $txtWhite\w$bk ]"

câu trả lời rất tốt =) nhưng hơi ngắn.
AB

Câu trả lời đầu tiên của tôi - vì vậy bây giờ tôi không còn là một trinh nữ - mở rộng theo cách nào, tường thuật hoặc liên kết đến thông tin nhắc nhở CLI?
drPete

Làm thế nào tôi có thể làm điều này vĩnh viễn, ví dụ.
AB

chỉ cần xuất @AB Thông minh Trả lời btw :)
Sharad Gautam

1
Câu trả lời tốt hơn = nhiều lượt ủng hộ hơn
AB

16

Có một danh sách các lệnh được sử dụng cho thời gian và ngày:

  1. Lệnh date

    $ date 
    Tue Jun  9 18:04:30 EEST 2015
    
  2. Lệnh zdumpđược sử dụng để lặp lại thời gian trong một múi giờ được chỉ định.

    $ zdump EEST
    EEST  Tue Jun  9 15:05:17 2015 EEST
    
  3. giờ cao điểm

    $ sudo hwclock
    Tue 09 Jun 2015 06:05:55 PM EEST  -0.656710 seconds
    
  4. đồng hồ nhưng cần cài đặt xview-client

    sudo apt-get install xview-clients
    
  5. sử dụng ntpdatelệnh. ntpdateđược sử dụng để đặt thời gian hệ thống nhưng sử dụng mà không sudocần chỉ in thời gian và ngày.

    $ ntpdate
    
    26 Jun 10:48:34 ntpdate[4748]: no servers can be used, exiting
    

11

Với Ubuntu 15.04 (systemd) cũng timedatectlcó thời gian hiển thị cho bạn và cho phép bạn thay đổi nó và hơn thế nữa man timedatectl.

Không cần bàn cãi

% timedatectl
Cảnh báo: Bỏ qua biến TZ. Chỉ đọc cài đặt múi giờ của hệ thống.

      Giờ địa phương: ke 2015-06-10 10:31:59 EEST
  Giờ phổ cập: ke 2015-06-10 07:31:59 UTC
        Thời gian RTC: ke 2015-06-10 07:31:59
       Múi giờ: Châu Âu / Helsinki (EEST, +0300)
     Đã bật NTP: có
Đã đồng bộ hóa NTP: có
 RTC tại TZ địa phương: không
      Hoạt động DST: có
 Thay đổi DST cuối cùng: DST bắt đầu lúc
                  su 2015 / 03-29 02:59:59 EET
                  su 2015-03-29 04:00:00 EEST
 Thay đổi DST tiếp theo: DST kết thúc (đồng hồ nhảy ngược một giờ) tại
                  su 2015-10-25 03:59:59 EEST
                  su 2015-10-25 03:00:00 EET

Và một tính năng hay khác mà tôi đã sử dụng là timedatectl set-ntp truekích hoạt systemd-timesyncdứng dụng khách SNTP (Giao thức thời gian mạng đơn giản) tích hợp đồng hồ của bạn với máy chủ từ xa.


1
$ timedatectlcũng hoạt động tốt trên Ubuntu 14.04.
Doorknob

8

Mặc dù tất cả các câu trả lời ở đây là chính xác, bạn cần sử dụng datelệnh theo cách thủ công để xem thời gian bất cứ khi nào bạn muốn và đầu ra sẽ trộn với đầu ra bình thường của lệnh. Điều này chủ yếu là ok, nhưng đôi khi không thực tế.

Bạn có thể thêm lệnh date vào dấu nhắc của mình , nó sẽ hiển thị đồng hồ (cố định) mỗi khi shell sẵn sàng cho lệnh hoặc bạn có thể sử dụng một trong các bộ ghép kênh đầu cuối có dòng trạng thái. Cái tôi thích nhất (mặc dù tôi thừa nhận cái cũ nhất) là màn hình GNU.

Trong bảng điều khiển hoặc trong một thiết bị đầu cuối, hãy nói qua ssh, nếu bạn sử dụng màn hình , trong số hàng trăm thứ khác nhau bạn có thể làm (tôi từng nghĩ screenlà không thể tránh khỏi khi làm việc khi tôi chỉ có một thiết bị đầu cuối văn bản), bạn có tùy chọn --- đó là thông thường trong cấu hình mặc định --- có đồng hồ trong dòng trạng thái:

Màn hình trên thiết bị đầu cuối

(Ảnh chụp màn hình trên một thiết bị đầu cuối ảo, nhưng nó giống nhau trên bảng điều khiển ảo).


1
Byobu (dựa trên màn hình) cũng thực hiện điều đó. Chỉ cần FYI
Sergiy Kolodyazhnyy


1

Không có đề cập đến trăn, vì vậy tôi sẽ ném nó ra đây:

$ python -c 'import time;print(time.asctime(time.localtime()))'                                                                       
Tue Nov 29 20:25:27 2016

Cách thức hoạt động khá đơn giản:

  • chúng tôi nhập timemô-đun
  • localtime()Hàm cung cấp cho structkiểu dữ liệu với tất cả các thông tin cần thiết, chẳng hạn như thời gian trong ngày, ngày, năm, v.v.
  • asctime() chuyển đổi tất cả thông tin đó thành chuỗi và chúng tôi in nó ra định dạng độc đáo

Hoạt động trong python 2 và 3 như nhau.


0

nếu bạn đang tìm kiếm một nơi nào đó như YYYYMMDDHHMMSS , 20160804020100, hãy sử dụng điều này:

date +%Y%m%d%H%M%S

nó phục vụ hầu hết các mục đích như sao lưu tập tin hoặc lọc nhật ký.


2
Chào mừng bạn đến với AskUbfox. Mặc dù câu trả lời này không cố gắng giải quyết câu hỏi được đăng, nhưng giải pháp này đã được đề cập trong câu trả lời của nhiều người dùng khác. Cá nhân tôi không thấy câu trả lời này hữu ích. Vui lòng cải thiện bài đăng của bạn
Sergiy Kolodyazhnyy

0

Nếu bạn không chắc chắn về độ chính xác của đồng hồ trong hệ thống của mình hoặc bạn muốn sử dụng nguồn thời gian bên ngoài, bạn có thể lấy thời gian qua Internet. Để có độ chính xác tốt nhất, bạn có thể sử dụng sntp(được cài đặt theo mặc định trên MacOS và là một phần của bản phân phối ntp) để lấy ngày:

sntp pool.ntp.org 

Nếu bạn chỉ có quyền truy cập web vào internet thì có thể lấy thông qua HTTP bằng HTP , có sẵn trên nhiều hệ thống htpdatemà thường chỉ có độ chính xác đến giây gần nhất hoặc bạn có thể truy cập bằng TLS (trích xuất dấu thời gian từ TLS trao đổi) tlsdatecó thể cung cấp độ chính xác tốt hơn:

tlsdate -nV ntp.org
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.