要在 Z Shell 中启用命令历史,可以输入:
$ HISTSIZE=500
$ SAVEHIST=500
这里的命令指定了 Shell 和持久化历史文件应该保留最后的 500 条命令。(在缺省情况下,Z Shell 仅保存最后的 30 条命令。)有关如何捕获和保存命令历史的信息,请查看您的 Shell 文档。
在 Shell 中进行了一段时间的工作之后,您只需输入 history 就可以查看命令历史:
$ history
...
781 /bin/ls -d */
782 /bin/ls -F *(/)
783 /bin/ls -d -F *(/)
784 /bin/ls -d -F */
785 /bin/ls -d */
您所运行的每个命令都会分配到一个顺序的数值标识符。您可以使用这个标识符,如 782,来引用完整的命令和命令中的某些部分。要再次运行一个命令,可以输入 !(感叹号)加上命令对应的数值:
$ !785
ChangeLog-branches/ doc/ po/ src/ util/ Windows/
如果您希望从一个历史命令中获得特定的参数,可以使用 !(感叹号)来引用这个命令,并提供 :N,其中 0 表示命令名,1 表示第 1 个参数,依此类推。例如,要提取历史日志中命令 782 的第二个参数,可以输入清单 4 中所示的代码。
清单 4. 提取命令 782 的第二个参数
$ echo !782:2
echo *(/)
ChangeLog-branches doc po src util windows
$ ls AUTHORS COPYING INSTALL MacHINES
AUTHORS COPYING INSTALL MACHINES
$ echo !!:3
echo INSTALL
$ history -2
788 ls AUTHORS COPYING INSTALL MACHINES
789 echo INSTALL
$ echo !788^
echo AUTHORS
AUTHORS
$ echo !788$
echo MACHINES
MACHINES
标签: