是否有函数可以显示指定函数被使用了多少次?例如,如果我想知道我使用了 cp 函数或类似函数的次数?
答案1
Bash 保留您运行过的最后 N 个命令的历史记录~/.bash_history
(默认情况下,请参阅的值$HISTFILE
),您可以通过运行来查看此列表history
:
$ history | head
1 test.py file.txt outf
2 cat outf
3 test.py file.txt outf
4 cat outf
5 test.py file.txt outf
6 cat outf
7 cat file.t
8 cat file.txt
9 rm file.tex
10 test.py file.txt outf
这些是我历史上的前 10 个命令。如您所见,格式为“命令编号”,后跟实际命令。因此,要计算您使用过的次数man
,您可以执行以下操作:
history | awk '$2=="man"' | wc -l
这将运行history
,awk
这里将仅打印第二个字段为 的行man
,然后将这些行传递给 来wc
计数它们。如果您需要经常运行它,您可以将其变成一个小函数。只需将这些行添加到~/.bashrc
:
countCom(){
history | awk -vcom="$@" '$2==com' | wc -l
}
然后,为了计算man
,你可以这样做:
$ countCom man
4460
但是,这将计算你在整个 shell 历史记录中运行的次数man
。它不仅仅是从打开当前终端以来。这通常是你想要的,因为只看到你从打开以来运行的少数命令这终端几乎毫无用处。毕竟,它们只是整体的一个子集。
如果你真的如果需要每个终端都执行此命令,您可以history -c
在打开新终端时运行。这将清除此终端的历史记录,以便下次运行时history
,您只会看到自打开此终端以来的命令。
不幸的是,您无法将history -c
命令添加到 shell 的初始化文件中(~/.bashrc
例如),因为历史记录是在读取 init 文件后读取的,所以它在那里不起作用。因此,如果您确实需要此终端的历史记录并且只需要此终端的历史记录,则必须history -c
手动运行。