我使用了很多命令行程序,而且经常使用类似的参数。有人能推荐一个应用程序或工作流程,让我能够使用 GUI 存储常用的 shell 命令并搜索我最近的命令吗?
我有一些经常使用的命令(例如将特定目录 rsync 到服务器),还有一些不太常用的命令。为可能重复使用的每个代码片段创建 shell 脚本似乎有点尴尬。
尤其是对于我很少使用的程序,我最终会一遍又一遍地阅读文档,因为我忘记写下确切的 shell 命令。理想情况下,我希望有一个与 Terminal.app 类似的应用程序,但提供某种历史记录和代码片段管理。
你用什么来跟踪 shell 命令?
答案1
尽我所知回答。我不确定您认为遗漏了什么,所以我可能离题太远。如果是那样的话,请告诉我。
终端(更具体地说是bash
)具有历史记录。按Up-Arrow
或 (之后)Down-Arrow
,或输入history
。它存储在 中,~/.bash_history
任何文本编辑器都可以读取。如果您知道导航组合键。
历史搜索还可以帮助您查找单个调用的特定参数集。例如,输入hdiutil
并使用这些参数集查找该命令的所有最近调用,然后循环查看它们。
这些 (1,2) 商业截屏视频也可能有助于您了解有关 shell 的更多信息。我买了它们并且很喜欢,但是还有很多其他视频解释了 Terminal 或bash
用法的几乎所有方面。
AppleScript ( tell application "Terminal" to do script "..."
) 和 Automator (运行 Shell 脚本动作)也可能帮助你自动执行重复的任务,或者创建“宏”。
对于经常执行的程序,创建一个小的 shell 脚本并不是一个坏主意。它本质上是两行代码,使用 TextMate 等编辑器,加上与要完成的任务相关的命令(例如“使可执行”,这样您就不必输入该chmod
行)会使它变得更加容易。
Mac OS X 使用.tool
和.command
文件扩展名来执行使用终端执行的脚本。遗憾的是,您需要使它们可执行。
答案2
除了 Daniel 给您的建议外,这里还有一些其他建议:
- 您可以设置
HISTSIZE
并HISTFILESIZE
高于其默认值 500 条。这将允许您保留更多历史记录。 - 当创建脚本没有意义时,可以创建别名和小函数。这些可以存储在您的
~/.bashrc
文件中,并且始终可用,或者您可以将它们放在单独的文件中,并从内部~/.bashrc
或甚至从命令行获取它们(如果您并不总是立即需要它们)。 - 使用某种日志记录。我的历史记录功能不仅保留命令和参数,还保留日期和时间(Bash 历史记录也可以做到),并且可以保留发出命令时的当前目录以及终端或 IP 地址和您选择的其他信息(例如,因为我使用多个版本的 Bash,所以我记录了 Bash 版本)。
- 您可以将键盘宏绑定到功能键或其他组合键,以减少重复打字。
- 您可以设置变量来做同样的事情。