Bảo tồn lịch sử tcsh trong nhiều cửa sổ đầu cuối


8

Làm thế nào chúng ta có thể bảo tồn hoặc duy trì cùng một lịch sử trên nhiều thiết bị đầu cuối?

Câu hỏi tương tự, nhưng đối với bash shell, đã được thảo luận trong liên kết dưới đây

Bảo tồn lịch sử bash trong nhiều cửa sổ đầu cuối

cho tôi biết các cài đặt tương ứng cho vỏ tcsh?


Để biết thêm thông tin về tcsh's history, xem man tcsh. Tìm kiếm history -Ssẽ đưa bạn đến phần có liên quan nhất.
Randall

Câu trả lời:


7

Các biến này đặt lịch sử để hợp nhất chính nó thay vì ghi đè và không lưu các bản sao:

set history=1000
set histdup=erase
set savehist=(1000 merge)

nước sốt bí mật là dòng này:

alias precmd 'history -S; history -M'

sẽ lưu và hợp nhất lịch sử của bạn trước khi in dấu nhắc - tức là sau mỗi lệnh bạn nhập.

tất cả những điều trên nên được thêm vào tệp .tcshrc của bạn .


Khi tôi thêm điều này alias precmd 'history -S; history -M'không có gì xảy ra khi tôi viết bất kỳ lệnh nào. Có điều gì khác nên được thực hiện?
Ayman Salah

@AymanSalah những gì xảy ra không rõ ràng - đó là .historytệp (hoặc histfilegiá trị biến shell, nếu được đặt) được ghi vào đĩa. Nếu không có bộ precmdbí danh, ls -l .historysẽ hiển thị .historytệp dưới dạng không bị ảnh hưởng. Với precmd thiết lập như trên, ls -l .historysẽ hiển thị dấu thời gian và kích thước được cập nhật, vì nó được ghi với mỗi lệnh.
Randall

@Randall Cảm ơn bạn đã chỉ ra điều đó. Tôi đã có vấn đề sau đó với phiên shell. Những gì bạn đang nói là chính xác 100%.
Ayman Salah

1

Ngoài câu trả lời của Idan , tôi muốn thêm rằng alias precmd 'history -S; history -M'có khả năng có thể làm rối tập tin lịch sử, vì nó cũng ghi lại tín hiệu SIGINT và EOF (Ctrl + C và Ctrl + D).

nhập mô tả hình ảnh ở đây

Một cách tốt hơn sẽ là lưu và hợp nhất lịch sử shell hiện tại sau khi chạy lệnh.

Thay vào đó, bạn có thể đạt được nó bằng cách thiết lập bên dưới, vì tcsh không nhận ra SIGINT hoặc EOF là một lệnh hợp lệ.

alias postcmd       "history -S; history -M"
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.