我可以从Perl pdl2 shell中检索命令的完整历史记录(比如bash中的历史记录)吗?

时间:2011-07-08 16:20:24

标签: perl pdl

我正在使用pdl2 shell,如何列出我的所有命令历史记录?

2 个答案:

答案 0 :(得分:3)

您可以在$ HOME / .perldl_hist

中找到您的历史记录

这可能或可能不依赖于安装Term :: ReadLine :: Gnu(我默认拥有)。

如果要在pdl内访问历史记录,只需使用上一个命令的向上箭头键,或键入^ R(control-r),然后键入要搜索的文本(点击^ r进一步反复进行比赛)。

$ pdl
perlDL shell v1.354
...blah blah blah...
pdl> print 1+1
2
pdl> print 2+2
4
pdl> quit

$ cat ~/.perldl_hist 
print 1+1
print 2+2
$ 

编辑:要在 pdl中找到的历史记录,请执行以下操作:

$ pdl
pdl> print join "\n", $PERLDL::TERM->GetHistory

$PERLDL::TERM->GetHistory返回当前历史记录的数组。它只是一个常规数组,所以你可以用它做任何你喜欢的事情。例如,要查找涉及名为mypdl的小提琴的所有最近直方图操作,您可以执行以下操作:

pdl> print join "\n", grep { /histogram/ && /mypdl/ } $PERLDL::TERM->GetHistory

答案 1 :(得分:1)

从PDL文档(即pdldoc perldl):

History mechanism
  If you have the perl modules ReadLines and ReadKeys installed, then
  perldl supports a history and line-editing mechanism using editing keys
  similar to emacs. The last 500 commands are always stored in the file
  .perldl_hist in your home directory between sessions. Set
  $PERLDL::HISTFILESIZE to change the number of lines saved. The command
  "l [number]" shows you the last "number" commands you typed where
  "number" defaults to 20.