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=.zhistory
cà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_history
hoặ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 HISTFILE
thà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 HISTSIZE
và SAVEHIST
. HISTSIZE
là số dòng tối đa được giữ trong một phiên và SAVEHIST
là 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 HISTFILE
và SAVEHIST
, vì giá trị mặc định SAVEHIST
là 0. Bạn cũng có thể muốn tăng HISTSIZE
(kể từ zsh 5.0, mặc định chỉ là 30).
~/.zshrc
và / hoặc/etc/zshrc
cho các tùy chọn được mô tả ở đó zsh.sourceforge.net/Guide/zshguide02.html#l17