Zsh lưu các dòng đầu vào (có thể có thông tin về thời gian) trong tệp được chỉ định bởi biến HISTFILE. Đây phải là một tên tệp tuyệt đối (nếu không nó sẽ được giải thích liên quan đến bất kỳ thư mục nào hiện tại vào thời điểm đó).
Zsh không có giá trị mặc định tích hợp cho HISTFILE. Phân phối zsh đi kèm với trình hướng dẫn thiết lập cho người dùng mới có giá trị ~/.histfileđược tích hợp sẵn, vì vậy đây là những gì người dùng zsh nhận được theo mặc định. Oh-my-zsh đi kèm với HISTFILE=.zhistorycài đặt trước. Vì vậy, có vẻ như bạn đã thử zsh cả với thiết lập mặc định và với oh-my-zsh. Kiểm tra .zshrc(hoặc ngày của tệp) để xem cái nào bạn đang sử dụng.
Làm thế nào zsh mở tệp, và do đó những gì xảy ra nếu nó là một liên kết tượng trưng, phụ thuộc vào một số tùy chọn.
- Nếu một trong các tùy chọn
append_history(được đặt theo mặc định) inc_append_historyhoặc share_historyđược đặt hoặc khi lịch sử được lưu rõ ràng với fc -AI, zsh sẽ nối thêm vào tệp hiện có.
Lưu ý rằng ngay cả trong các cài đặt này, thỉnh thoảng zsh ghi đè lên tệp như được mô tả bên dưới để cắt giảm kích thước.
- Mặt khác, nếu tùy chọn
hist_save_by_copyđược đặt (mặc định được đặt từ zsh 5.0, nhưng không tồn tại trong 4.2), zsh ghi một tệp tạm thời sau đó di chuyển nó vào vị trí khi hoàn thành. Trong trường hợp này, nếu tệp lịch sử là một liên kết tượng trưng, thì tệp mới sẽ thay thế liên kết tượng trưng.
- Nếu không, zsh ghi đè lên tập tin hiện có.
Thay vì trỏ zsh đến một liên kết tượng trưng, hãy đặt HISTFILEthành bất cứ nơi nào bạn muốn tệp lịch sử.
Có bao nhiêu dòng lịch sử được lưu giữ được cấu hình thông qua các biến HISTSIZEvà SAVEHIST. HISTSIZElà số dòng tối đa được giữ trong một phiên và SAVEHISTlà số dòng tối đa được lưu trong tệp lịch sử.
Để có được một số lịch sử được lưu, bạn cần đặt cả hai HISTFILEvà SAVEHIST, vì giá trị mặc định SAVEHISTlà 0. Bạn cũng có thể muốn tăng HISTSIZE(kể từ zsh 5.0, mặc định chỉ là 30).
~/.zshrcvà / hoặc/etc/zshrccho các tùy chọn được mô tả ở đó zsh.sourceforge.net/Guide/zshguide02.html#l17