使用命令历史记录功能可以节省大量时间并减少键入次数。许多人远离 macOS 的终端,因为输入冗长而精确的命令很乏味。但是,您可以通过使用终端 shell 中内置的命令历史记录功能来节省大量时间并减少键入次数。shell 会记录您运行的命令,您可以通过几个简单的按键访问此历史记录以再次运行命令或编辑它们,因此您不必重新键入它们。
终端以后进先出的顺序保存命令历史,这意味着历史列表中的第一个命令是最后发出的命令。如果你想运行一个你已经输入的命令比如说你想重新运行你刚刚输入的最后一个命令你所要做的就是按向上箭头键,shell 会在提示符下显示最后一个运行命令.
如果要运行之前运行的命令,请按几次向上箭头键。执行此操作时,shell 会循环执行您的最后一个命令,并在提示符处显示每个命令。如果您决定不想使用历史列表中的命令,只需按向下箭头键直到返回空提示,然后输入新命令。
改写历史
使用命令历史记录,您可以重新运行以前的命令,但您也可以 修改 命令并使用不同的参数运行它们。执行此操作的最简单方法之一是使用该 !! 命令运行前一个命令,并向其附加新信息。假设您要列出目录的内容,如下所示:
ls ~/Library/Preferences/ByHost
阅读列表后,您决定将此列表保存到文件中。您可以运行以下命令:
!! list.txt
终端代替 !! 您运行的最后一个命令的快捷方式,因此 !! list.txt 与键入以下命令相同:
ls ~/Library/Preferences/ByHost list.txt
编辑命令
除了通过按向上和向下箭头键上下移动命令历史记录,在终端的提示符处显示每个命令,您还可以编辑出现的命令或向它们添加参数。当您需要运行非常相似但不完全相同的命令时,这可以节省时间。
假设你想复制一个文件;你输入这样的命令:
cp /Users/kirk/Pictures/P101068.jpg /Users/Shared
终端说该文件不存在,但您确定它存在。当您转到目录并检查时,您会看到确实有一个名称相似的文件,但您遗漏了一个零。使用命令历史记录,您可以按向上箭头再次显示命令。使用向左箭头将光标移动到需要添加零的位置,键入 0然后按 Enter。(您不需要将光标移回行尾。)
您可以使用命令编辑来更改命令并在不同的文件上运行它们。例如,如果您的图片目录中有多个文件,您可以使用向上箭头重新显示前一个命令,更改文件名,然后在不同的文件上再次运行该命令。
更改参数和选项
使用相同的技巧来更改命令的参数或选项。在前面的示例中,我将图片复制到我的 Users/Shared 目录中。我可以轻松地按向上箭头重新显示命令,然后更改命令以将其中一个文件复制到其他位置。无需重新键入整行。
出于同样的原因,假设您列出目录中的文件,然后决定使用该 -l 选项来显示一个长列表。按向上箭头重新显示命令,然后将光标向左移动以添加 -l。例如,。 ls -l /etc/periodic
糟糕,我忘了 sudo
如果没有 root 用户权限,您将无法访问计算机的许多命令和区域。如果您拥有计算机的管理员权限,则可以使用该 sudo 命令提示您输入密码。
但是键入一个长命令却让终端反复回复权限被拒绝是很烦人的。如果您忘记在命令前加上 sudo,只需键入 sudo !!。这个命令告诉 shell 再次执行上一个命令,这次以 sudo. 在提示符下输入您的密码,然后按 Enter,命令将运行。没有必要重新输入一遍。