Linux history -w 与 history -a 功能区别

结论:

history -w 与history -a区别

-w 写出全部历史数据。将所有缓存中(内存)的历史命令数据写入历史命令文件,这里有一点很重要——缓存中的历史命令和session中的历史命令的区别:缓存中的所有数据可能是很多次session积累下来的历史命令数据,所以在向历史文件中添加历史命令数据是此时执行history可见的所有缓存历史命令。另外可以做另存为操作,将缓存中的所有历史命令数据保存至其他文件。

-a 写出一个session中没有写出过的历史数据。只是将发起一个session后所执行的全部历史命令写出给历史文件。发起一个session如在xshell中开启的一个tab页就是一个session。这里需要注意:写过的历史命令数据不会重新再写入,只写新增的内容。

-w 向文件中写入的数据可能更多,而-a只是将一个session中执行的命令写入。

实验:  

(1)删除历史数据,缓存中数据和历史数据文件 ~ . bash_history(下文统称历史文件)

  

(2)创建历史文件,添加历史命令,注销后让缓存自动写入历史文件。

 

(3)重启终端session,查看历史文件。

 (4)再执行两个简单命令

 以下验证内容很关键:

(5)查看目前缓存中的历史命令,分析构成内容

(6)通过使用-a 参数看如果将缓存中的数据添加到历史文件中。执行-a后系统将本次会话中(session)中执行过的命令都写入了历史文件。

(7)通过使用-w 参数,前提先删除历史文件再分别执行-a, -w参数

 删除历史文件

 查看目前缓存中的历史命令

 执行-a参数,再查看历史文件。(将session2中没用写过的命令写进历史文件中)

再删除历史文件,执行-w 参数

 

所以可简单理解为:

-w 写出全部历史数据

-a 写出一个session中没有写出过的历史数据。


版权声明:本文为weixin_44629980原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。