c - C 中 shell 命令的历史命令。从哪里开始

标签 c linux shell unix

我无法启动这段代码,我真的不知道从哪里开始。我试图了解该怎么做。我几乎需要做的是,一旦我执行文件,我应该能够只输入“历史记录”,它应该会显示我使用过的所有命令的历史记录。我将如何编写此文件以允许我这样做?任何提示或线索将不胜感激!

最佳答案

基础知识相对简单。您需要为历史设计一种合适的磁盘格式,请记住您可能不希望文件无限大地增长(尽管对于第一个版本来说这可能没问题)。并且您需要一组函数来操作文件(打开、关闭、写入、搜索)。

每次你读取一个命令(完整的命令——一个管道,或者一个for循环,或者其他什么),你也会写入你的历史机制。

您的历史记录机制还应该允许您检索以前的命令,列出它们,或者按内容或编号搜索它们。

您应该考虑的细节包括确保在执行其他命令时关闭历史文件,并确保子 shell 不写入历史(通常)。您需要考虑是否可以让多个 shell 访问同一个历史文件;您的历史记录会跨 session 保留吗?如果同时打开两个终端窗口会怎样?

GNU readline library 有钩子(Hook),可以与历史库集成。它还提供了一个历史库。

关于c - C 中 shell 命令的历史命令。从哪里开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19628314/

相关文章:

c - 如何使用 fwrite 将结构写入文件?

c - 如何在 C 中反转单链表?

c - 智能 Makefile : way scan directory tree and compile . c 文件

linux - 在 Shell 中从配置文件中读取变量

c - 在C中的linux中输出随机数到文件

linux - 如何在 shell 中实现内置命令?

c - fgets 返回更少的字符

linux - pyodbc python linux iSeriesAccess 驱动程序-存储过程-捕获输出参数?

python - Python IDLE Shell 的令人困惑的问题

linux - 记录曾经使用过的每个 linux 命令行?