Lịch sử Bash
Bất kỳ lệnh mới nào đã được ban hành trong thiết bị đầu cuối hoạt động có thể được thêm vào .bash_history
tệp bằng lệnh sau:
history -a
Khái niệm khó hiểu duy nhất là mỗi thiết bị đầu cuối có danh sách lịch sử bash riêng (được tải từ .bash_history
tệp khi bạn mở thiết bị đầu cuối)
Nếu bạn muốn kéo bất kỳ lịch sử mới nào được ghi bởi các thiết bị đầu cuối khác trong suốt vòng đời của thiết bị hoạt động này, bạn có thể nối các nội dung của .bash_history
tệp vào danh sách lịch sử bash đang hoạt động
history -c;history -r
Điều này sẽ xóa danh sách lịch sử hiện tại để chúng tôi không nhận được danh sách lặp lại và nối thêm tệp lịch sử vào danh sách (hiện trống).
Giải pháp
Bạn có thể sử dụng biến bash PROMPT_COMMAND
để ra lệnh với mỗi dấu nhắc mới (mỗi lần bạn nhấn enter trong terminal)
export PROMPT_COMMAND='history -a'
Điều này sẽ ghi lại từng lệnh vào tệp lịch sử khi nó được ban hành.
Kết quả
Bây giờ bất kỳ thiết bị đầu cuối mới nào bạn mở sẽ có lịch sử của các thiết bị đầu cuối khác mà không cần phải đến exit
các thiết bị đầu cuối khác. Đây là quy trình làm việc ưa thích của tôi.
Chính xác hơn
Giả sử (vì một số lý do) bạn có hai thiết bị đầu cuối đang sử dụng đồng thời và bạn muốn lịch sử phản ánh giữa cả hai cho mỗi lệnh mới.
export PROMPT_COMMAND='history -a;history -c;history -r'
Hạn chế chính ở đây là bạn có thể cần nhấn enter để chạy lại PROMPT_COMMAND để có được lịch sử mới nhất từ thiết bị đầu cuối đối diện.
Bạn có thể thấy tại sao tùy chọn chính xác hơn này có thể là quá mức cần thiết, nhưng nó hoạt động cho trường hợp sử dụng đó.