在linux系统中,用户的操作指令会被保存下来,具体存储在用户目录下的.bash_history文件中。每个指令都带有时间戳,标记其执行时间。
当用户通过Shell进入linux系统时,系统首先会将.bash_history文件中的历史指令加载到历史记录缓存区中。在用户正常退出Shell之前,所有执行的指令都会被记录在缓存区中。只有在用户正常退出Shell(例如通过exit命令或使用Ctrl+D)时,Shell进程才会将缓存区中的历史记录写入到.bash_history文件中。
要查看历史记录缓存区中的指令,可以使用以下命令:
history #查看历史记录缓存区中保存的历史指令
历史记录可以从最开始到现在的所有时间段内查看。
用户可以通过键盘的上下箭头键快速浏览历史缓存区中的指令。
如果只想查看最近的n条历史指令,可以使用以下命令:
history n #查看缓冲区中最近的n条历史指令
如果用户执行了几条指令,例如两次ls和ll,这些指令会首先记录在历史缓存区中。
检查.bash_history文件时,用户会发现这些新指令尚未写入,因为它们仍在历史缓存区中,只有在退出Shell时才会自动保存到.bash_history。
如果希望手动将历史缓存区的内容写入.bash_history,可以使用以下命令:
history -w #手动将历史缓存写入用户目录下的.bash_history
通常,只有在Shell正常退出时,缓存区的内容才会保存到.bash_history。如果需要主动保存历史记录,可以使用-w选项。
要清除历史缓存区中的记录,可以使用以下命令:
history -c #清除历史缓冲区
清除历史缓存区只会删除当前会话中的操作记录,不会影响.bash_history文件中已保存的之前的历史记录。
要重复执行历史缓存区中的某条指令,可以使用以下命令:
!n #重复执行缓冲区中的第n条历史指令
如果要重复执行倒数第n条指令,可以使用:
!-n #重复执行缓冲区中倒数第n行历史指令
要重复执行上一条指令,可以使用:
!! #重复执行上一条命令
搜索历史命令时,可以使用以下快捷键:
快捷键:Ctrl + R # 输入残缺指令,搜索对应完整历史指令