了解这些 macOS 终端快捷键并减少打字时间
许多人远离 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。 (您不需要将光标移回行尾。)
您可以使用命令编辑来更改命令并在不同的文件上运行它们。例如,如果您的 Pictures 目录中有多个文件,您可以使用向上箭头重新显示上一个命令,更改文件名,然后对另一个文件再次运行该命令。
更改参数和选项
使用相同的技巧来更改命令的参数或选项。在前面的示例中,我将图片复制到我的 Users/Shared 目录中。我可以轻松地按向上箭头重新显示命令,然后更改命令以将其中一个文件复制到其他位置。无需重新输入整行。
出于同样的原因,假设您列出了目录中的文件,然后决定使用 -l
选项来显示长列表。按向上箭头重新显示命令,然后将光标向左移动以添加 -l
。例如, ls -l /etc/periodic
。
糟糕,我忘记了 sudo
如果没有 root 用户权限,您将无法访问计算机上的许多命令和区域。如果您拥有计算机的管理员权限,则可以使用 sudo
命令提示您输入密码。
但是输入很长的命令却让终端阴郁地回复”权限被拒绝”,这很烦人。如果您忘记在命令前添加 sudo
前缀,只需输入 sudo !!
。此命令告诉 shell 再次执行上一个命令,这次以 sudo
开头。在提示符处输入密码,然后按 Enter 键,命令将运行。无需重新输入。
编者注:本文摘录自Mac OS X 命令行:Unix 底层,作者:Kirk McElhearn(2004 年;经 Sybex 许可重印)。它已更新以反映 macOS Big Sur 终端中的更改。