借助 macOS 中的终端,您可以使用终端外壳中内置的命令历史记录功能来节省大量时间并减少键入次数。shell 会记录您运行的命令,您可以通过几个简单的按键访问此历史记录以再次运行命令或编辑它们,这样您就不必重新键入它们。
您可以随时通过运行命令来查看历史记录中有哪些命令 history 。当您键入 history 并按下 Return 键时,终端会显示历史列表中的命令列表。例如:
1 ls
2 cd ..
3 ls
4 cd kirk
每行包括命令编号(从第一个到最后一个)和命令本身。终端包括所有命令,无论它们是否成功。这意味着错误或拼写错误的将出现在历史记录中。
限制历史列表
有多种显示历史列表的方法。在大多数情况下,您希望查看最近的命令。执行此操作的一种方法是运行history 带有参数的 命令,该参数说明要显示多少命令。
例如, 告诉 shell 显示从历史列表中的第五个开始的命令。您可以输入任何数字作为 命令的参数 ;如果您输入的数字无效(很可能,您的列表没有您输入的数字那么长),终端将回复.history 5historyfc: no such event
节省时间的快捷方式
如 另一篇文章所述,您可以通过按箭头键向上或向下移动历史记录列表。这是重新运行您最近执行的命令的最简单方法。但是,如果您的命令在列表的后面,则有更快捷的方法可以告诉 shell 运行哪个命令。
!: 假设你已经显示了你的长历史列表,它的一部分看起来像这样:
329 locate Walden
330 history
331 ls -l
如果要重新执行命令 locate Walden,请键入 !329。感叹号 ( !) 是历史列表中命令的快捷方式。如果在它后面输入一个数字(中间没有空格),终端将运行历史记录中具有该绝对数字的命令。
相对编号: 另一种指定前一个命令的方法是使用 相对 编号,或 从列表末尾开始的 第 n 个命令。例如,如果您的历史记录有 200 个条目,并且您想从第 200 个条目开始输入第五个命令,请输入!-5.
字符: 您可以告诉 shell 运行以特定字符串开头的最后一个命令。例如,运行相同locate Walden 命令的另一种方法 是键入!loc(感叹号后没有空格)。
在感叹号后输入任意数量的字符。shell 将在第一次出现匹配这些字符的字符串时停止。在刚才提到的例子中,我可以输入, !lo 因为没有其他以这些字母开头的命令。但是,如果我只输入 !l,该示例将运行命令 331,该 ls -l 命令,因为这将是第一个匹配项。
编者注:本文部分内容改编自 The Mac OS X Command Line: Unix Under the Hood ,作者 Kirk McElhearn(2004 年;经 Sybex 许可转载)。它已更新以反映 macOS Big Sur 终端中的更改。借助 macOS 中的终端,您可以使用终端外壳中内置的命令历史记录功能来节省大量时间并减少键入次数。shell 会记录您运行的命令,您可以通过几个简单的按键访问此历史记录以再次运行命令或编辑它们,这样您就不必重新键入它们。
您可以随时通过运行命令来查看历史记录中有哪些命令 history 。当您键入 history 并按下 Return 键时,终端会显示历史列表中的命令列表。例如:
1 ls
2 cd ..
3 ls
4 cd kirk
每行包括命令编号(从第一个到最后一个)和命令本身。终端包括所有命令,无论它们是否成功。这意味着错误或拼写错误的将出现在历史记录中。
限制历史列表
有多种显示历史列表的方法。在大多数情况下,您希望查看最近的命令。执行此操作的一种方法是运行history 带有参数的 命令,该参数说明要显示多少命令。
例如, 告诉 shell 显示从历史列表中的第五个开始的命令。您可以输入任何数字作为 命令的参数 ;如果您输入的数字无效(很可能,您的列表没有您输入的数字那么长),终端将回复.history 5historyfc: no such event
节省时间的快捷方式
如 另一篇文章所述,您可以通过按箭头键向上或向下移动历史记录列表。这是重新运行您最近执行的命令的最简单方法。但是,如果您的命令在列表的后面,则有更快捷的方法可以告诉 shell 运行哪个命令。
!: 假设你已经显示了你的长历史列表,它的一部分看起来像这样:
329 locate Walden
330 history
331 ls -l
如果要重新执行命令 locate Walden,请键入 !329。感叹号 ( !) 是历史列表中命令的快捷方式。如果在它后面输入一个数字(中间没有空格),终端将运行历史记录中具有该绝对数字的命令。
相对编号: 另一种指定前一个命令的方法是使用 相对 编号,或 从列表末尾开始的 第 n 个命令。例如,如果您的历史记录有 200 个条目,并且您想从第 200 个条目开始输入第五个命令,请输入!-5.
字符: 您可以告诉 shell 运行以特定字符串开头的最后一个命令。例如,运行相同locate Walden 命令的另一种方法 是键入!loc(感叹号后没有空格)。
在感叹号后输入任意数量的字符。shell 将在第一次出现匹配这些字符的字符串时停止。在刚才提到的例子中,我可以输入, !lo 因为没有其他以这些字母开头的命令。但是,如果我只输入 !l,该示例将运行命令 331,该 ls -l 命令,因为这将是第一个匹配项。
编者注:本文部分内容改编自 The Mac OS X Command Line: Unix Under the Hood ,作者 Kirk McElhearn(2004 年;经 Sybex 许可转载)。它已更新以反映 macOS Big Sur 终端中的更改。