Điểm:1

Lưu ngày vào tệp lịch sử bash thực tế

lá cờ mx

Khi thêm "HISTTIMEFORMAT" vào bashrc, dấu thời gian khi lệnh được thực thi sẽ có sẵn khi chạy lệnh "history".

Nhưng bản thân dấu thời gian không được lưu vào tệp bash_history (ít nhất là không ở dạng văn bản thuần túy).

Tôi đang tìm kiếm một giải pháp sẽ tự ghi dấu thời gian vào tệp để các tệp .bash_history được lưu trữ từ các máy trạm khác nhau có thể được xem trong trình chỉnh sửa bên ngoài không gian người dùng và vẫn chứa dấu thời gian khi các lệnh được thực thi.

Nếu các dấu thời gian đang được lưu vào chính tệp lịch sử nhưng không thể xem được trong trình chỉnh sửa khi mở tệp bash_history và vẫn có thể xem các dấu thời gian này bằng cách sử dụng chính lệnh history trên tệp lịch sử bash lừa đảo, thì điều đó cũng sẽ xảy ra. đủ.

Cảm ơn

lá cờ fo
Chỉ thêm biến vào bashrc là không đủ: bạn cần lấy nguồn bashrc trong mỗi shell đang mở của mình để "kích hoạt" biến.
lá cờ fo
Và tệp lịch sử chỉ được ghi/nối thêm khi trình bao thoát.
Điểm:1
lá cờ lb

Đây là một ví dụ về lịch sử bash (khi sử dụng HISTTIMEFORMAT)

#1625963751
ngủ 45 ; ssh proxy.lan

con số 1625963751 là dấu thời gian unix ( https://en.wikipedia.org/wiki/Unix_time ) .

nếu bạn đang sử dụng linux, ngày có tùy chọn hiển thị ngày này ở dạng người.

em444$ ngày -d @1625963751
Thứ bảy ngày 10 tháng 7 20:35:51 EDT 2021
OB7DEV avatar
lá cờ mx
Làm cách nào để thêm dấu thời gian unix vào từng lệnh trong tệp bash? Khi mở các lịch sử bash cũ mà tôi có, không có #number phía trên mỗi lệnh như trong ví dụ của bạn. Mở tệp bash_history trong vim chỉ đưa ra danh sách các lệnh. Mỗi dòng là một lệnh, không có dấu thời gian phía trên mỗi dòng.
EchoMike444 avatar
lá cờ lb
nếu bạn không sử dụng HISTTIMEFORMAT, bạn sẽ không có dấu thời gian.
Điểm:0
lá cờ vn

chỉnh sửa /etc/bashrc và thêm dòng này vào dưới cùng:

PROMPT_COMMAND="echo `date +'%F %H:%M'` `whoami` `history|tail -1` >> ~/history.txt; $PROMPT_COMMAND"

Tôi không chắc chắn nếu bạn thay đổi ~ đến nguồn gốc, \root\history.txt có thể được truy cập cho tất cả người dùng chưa.

Gerard H. Pille avatar
lá cờ in
\root\history.txt ???
George Y avatar
lá cờ vn
`~/history.txt` có nghĩa là tệp `history.txt` trong thư mục chính của người dùng hiện tại. `/root/history.txt` có nghĩa là tệp trong thư mục gốc. Tôi cho rằng bạn muốn lưu các lệnh lịch sử vào một tệp cụ thể nếu bạn muốn có dấu thời gian trên mỗi lệnh.
Gerard H. Pille avatar
lá cờ in
Chỉ có dấu gạch chéo ngược có ý nghĩa khác trên unix. Ngoài ra, 'lịch sử -1' có thể rẻ hơn so với đường ống qua đuôi.
OB7DEV avatar
lá cờ mx
Có vẻ như tôi không thể thêm đầu ra history|tail -1 vào history.txt. Phần còn lại của lệnh hoạt động mặc dù. Vì vậy, history.txt của tôi có ngày, người dùng, nhưng không có lệnh...
Điểm:0
lá cờ vn

xuất HISTTIMEFORMAT='(%Y-%m-%d) (%H:%M:%S) ' Hãy thử dòng này.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.