Linux history内建命令原理与实操详解(Xshell实验)
2026/7/7 14:23:18
网站建设
项目流程
![]()
一、知识框架体系
- 基础概念
history:bash内建命令,用于查看、操作当前Shell会话的命令历史。
~/.bash_history:历史命令持久化存储文件,默认用户家目录下的隐藏文件。
⚠️重要机制:
正常退出Shell时,当前会话的新命令才会自动写入 .bash_history
会话运行期间,新敲的命令只保存在内存,不会立刻写入文件 - history常用命令与参数
命令用途参数说明history查看内存中当前会话全部历史命令无参数:输出内存历史history -aAppend,把当前会话内存中新的历史命令追加写入 .bash_history-a:append,立即写入文件history -c清空内存中的命令历史-c:clear清空内存history -w覆盖写入整个内存历史到历史文件(会覆盖原有文件)-w:write覆盖history -r把磁盘 .bash_history 的内容读入当前内存-r:read读取二、Xshell实操实验(本次作业两道题目)
实验1:对比 history 和 cat ~/.bash_history 的输出区别
操作步骤:
Xshell连接Linux,随便输入几条新命令:
pwd
ls
whoami
先执行
history
输出:包含本次会话刚刚输入的 pwd、ls、whoami 所有命令(内存中的历史)
再执行
cat ~/.bash_history
输出:看不到刚才新敲的pwd/ls/whoami,只有上一次登录退出前保存的旧历史。
原理总结:
history:读取内存里当前Shell会话的全部命令
cat .bash_history:读取磁盘文件,新命令还没有自动保存进去
实验2:执行 history -a 后再次查看 cat ~/.bash_history
操作步骤:
执行:
history -a
再次查看文件
cat ~/.bash_history
现象:
刚才本次会话新敲的 pwd、ls、whoami 已经出现在 .bash_history 文件里了!
原理:
history -a 强制把内存中本次会话新增的历史命令追加写入磁盘历史文件,不用等到退出shell。
三、拓展补充
其他常用history小技巧:
!100 #执行历史中编号100的命令
!ls #执行最近一条以ls开头的命令
history 10 #只显示最近10条命令
四、实验总结
Linux bash会话中,命令历史先存内存,正常退出才自动落地到 .bash_history
history 操作内存;cat .bash_history 操作磁盘文件
history -a 手动强制把本次会话新命令写入磁盘历史文件