Từ người đàn ông bash:
On startup, the history is initialized from the file named by the vari‐
able HISTFILE (default ~/.bash_history). The file named by the value
of HISTFILE is truncated, if necessary, to contain no more than the
number of lines specified by the value of HISTFILESIZE. [...] When an
interactive shell exits, the last $HISTSIZE lines are copied from the
history list to $HISTFILE.
Mặc dù văn bản đó khá rõ ràng, chúng ta hãy chơi một chút bằng ví dụ (đây là một hệ thống gỡ lỗi, nhưng bash là bash).
Tình trạng lịch sử của tôi ngay bây giờ:
~$ set | grep HIST
HISTCONTROL=ignoredups:ignorespace
HISTFILE=/home/hmontoliu/.bash_history
HISTFILESIZE=2000
HISTSIZE=1000
Vì HISTFILESIZE là 2000 và HISTSIZE là 1000, chỉ 1000 dòng cuối cùng của HISTFILE có sẵn để bạn có thể có ấn tượng sai rằng lịch sử của tôi bắt đầu từ 1000.
~$ history | head -1
1000 if i=1; then echo $i; done
~$ history | wc -l
1000
Nhưng thực sự HISTFILE lưu trữ 2000 lệnh cuối cùng:
~$ wc -l $HISTFILE
2000 /home/hmontoliu/.bash_history
Nếu bạn nghĩ rằng điều đó gây phiền nhiễu, bạn có thể bằng HISTSIZE và HISTFILESIZE
~$ echo "export HISTSIZE=$HISTFILESIZE" >> .bashrc
~$ bash -l
~$ history | head -1
1 ls
~$ history | wc -l
2000
~$ set | grep HIST
HISTCONTROL=ignoredups:ignorespace
HISTFILE=/home/hmontoliu/.bash_history
HISTFILESIZE=2000
HISTSIZE=2000
Một gợi ý cuối cùng: bạn nên chạy help history
để xem các hành động bạn có thể làm với lịch sử của mình