通过Python脚本读取.bash_history文件

1 投票
3 回答
827 浏览
提问于 2025-04-16 03:48

我想写一个Python脚本,读取“.bash_history”文件,并打印一些统计信息。另外,我还想打印出使用频率最高的命令。我可以通过终端读取bash历史记录,但我不知道怎么用Python来实现。有没有人能帮我一下,告诉我该怎么开始?

3 个回答

0

这里有一些基本的想法,还有一些重要的Python函数可以用到:

  • 首先,打开文件;用到的函数是 open
  • 然后,逐行读取文件,统计每一行出现的次数;可以使用 for 循环和 dict 字典来实现
  • 如果你只想检查命令的一部分(比如把 cd XYcd .. 看作一样),可以通过去掉空格后的命令参数来规范化这些行;用到的函数是 split
  • 接着,使用 sort 对统计结果进行排序,并用 print 输出出现次数最多的命令。
1

这是一个链接,指向Python的官方文档,内容主要讲解如何读取和写入文件。简单来说,就是教你怎么用Python程序打开文件、查看里面的内容,以及怎么把新的内容写入文件中。如果你想学习如何处理文件,这个文档会很有帮助。

1

有些事情是从…开始的。

#!/usr/bin/env python

import os

homedir = os.path.expanduser('~')
bash_history = open(homedir+"/.bash_history", 'r')

现在我们已经打开了文件…接下来你想做什么操作呢?

打印文件的内容。

bash_history_text = bash_history.read()
print bash_history_text

把字符串变成一行一行的数组…

import re
splitter = re.compile(r'\n')

bash_history_array = splitter.split(bash_history_text)

现在你可以随心所欲地对这个数组进行排序、过滤等等操作。

撰写回答