今天,我将教你如何在 Linux 中重复上一个命令。 您不必在 Shell 中重新键入先前执行的命令。 当然,我们使用 向上箭头 键选择最后执行的命令,然后按 ENTER 执行它们。 但是,还有其他几种方法可以做到这一点。 在类 Unix 系统中可能有很多方法可以重复最后的命令,但这些是我现在知道的唯一方法。 所有这些命令都在我的 Arch Linux 和带有 BASH shell 的 Ubuntu 桌面上进行了测试。
提醒一句: 当您尝试以下方法时,之前执行的命令将立即运行。 只是 确保您的最后一个命令没有任何危害 例如格式化分区或删除文件、文件夹或任何其他重要数据。
内容
在 Linux 中重复最后一个命令
让我们运行一些命令。
$ ls -l
$ pwd
$ date
$ uname -r
正如我之前提到的,我们可以通过简单地按 向上 箭头和击中 进入 钥匙。 这是很多用户执行上一条命令最常用的方式。 无论您使用哪种 Linux 发行版,此方法都适用于所有 SHELL。
但是,就像我已经说过的那样,还有其他一些方法可以做到这一点。
现在,让我通过一些实际示例向您展示如何执行最后一个命令。
方法 1 – 使用感叹号
要执行任何最后执行的命令,只需键入双感叹号,然后按 ENTER:
$ !!
这将执行最后一个命令。 示例输出为:
uname -r 5.3.0-40-generic
添加 sudo
在…前面 !!
执行最后一个命令 root
像下面这样的用户。
$ sudo !!
您还可以使用以下命令执行前面的命令 sudo
用户:
$ su -c "!!"
样本输出:
su -c "uname -r" Password: 5.3.0-40-generic
酷,不是吗? 您不需要完全键入最后一个命令。 当您已经执行了很长的命令并且不想再次重新键入相同的命令时,它可能会很有用。
方法 2 – 重复第 N 个命令
您可能已经运行了很多命令,并且想要重复特定的命令。 你会怎么做? 简单的! 您可以通过键入上一个命令的特定单词来执行此操作。
重复上一个以特定单词/字母开头的命令,例如 un
,只需键入:
$ !un
上面的命令将执行最后一个以字母开头的命令 “一个”.
样本输出:
!un uname -r 5.3.0-40-generic
正如您在上面的示例中看到的,您不需要键入整个命令(即 uname -r
)。 相反,只需键入命令的几个字母,任何先前包含单词的命令都会运行。
此外,如果您知道完整的命令名称,只需键入如下:
$ !uname
它将执行最后一个命令。
如果您不想重复上一个命令,而只是显示它怎么办。 有时,您不想运行命令,而只是从历史记录中检索它。 如果是这样,请找到您要运行的命令的前缀号:
$ history | grep -i "source"
样本输出:
1664 source googler_at 1678 source googler_at 1685 source ~/.bashrc 2037 history | grep -i "source"
假设您要检索 第 1685 届 命令,但不想立即运行它,添加 :p
在命令旁边,如下所示。
$ !1685:p
这将显示历史记录中的第 1685 个命令,但不会执行它。
方法 3 – 使用反向搜索
另一种方法是使用搜索您的命令行历史记录 CTRL+R
. 按 CTRL+R
键来搜索命令行历史。 我个人更喜欢这种方法。 它以交互方式搜索历史,我认为这比盲目地从 BASH 历史中执行命令更安全。
看看下面的例子。 在以下示例中,我搜索了 "ost"
, 显示最后一条命令 “sudo netctl restart ostechnixjio”
在包含这个词的历史中 "ost"
. 然后,我按 ENTER 立即执行命令或右箭头键完成命令并按 ENTER 键执行它。
(reverse-i-search)`ost': sudo netctl restart ostechnixjio
以防万一,您想在执行前编辑/修改最后一个命令,只需按 左箭头键,然后编辑最后一个命令并按 ENTER 执行它。 某些命令可能以相同的字母开头。 在这种情况下,请继续点击 CTRL+R
键带回您要运行的命令。
方法 4 – 使用带有命令前缀数字的连字符
这是运行上一个命令的另一种方法。
$ !-1
样本输出:
uname -r 5.3.0-40-generic
相似地, !-2
将运行倒数第二个命令, !-3
将运行倒数第三个命令,依此类推。
方法 5 – 使用 CTRL+p 和 CTRL+o
我不想手动输入任何命令。 有没有办法通过简单地按下我键盘中的特定键来重复最后一个命令? 当然是!
按 CTRL+P
切换到最后一个命令,然后按 CTRL+O
执行它。 这将创造奇迹。 无需配置! 您可以使用 CTRL+O
您想继续重新执行最后一个命令的次数。
方法 6 – 使用 fc 命令
这是重复上次执行命令的另一种方式。 这 fc
command 用于列出、编辑和重新运行之前输入的命令。
要使用 fc 重复上一个命令,只需运行:
$ fc -s
样本输出:
uname -r 5.3.0-40-generic
建议阅读:
- 带有初学者示例的 fc 命令教程
- 将标签应用于 Linux 命令以轻松从历史记录中检索它们
- 使用 Apropos 轻松回忆被遗忘的 Linux 命令
- Pet – 一个简单的命令行片段管理器
- 如何 Save 命令并按需使用它们
- 为 Linux 命令添加书签以便于重复调用
方法 7 – 使用 ALT+句号键
正如我们的一位读者在评论部分所说,我们也可以使用 ALT+.
键(按 ALT+句号)检索最后一个命令而不运行它。 但是,有一个限制。 打 ALT+.
只会检索命令中的最后一个参数。 例如,如果您之前的命令是 "uname -r"
,它只会带回 -r
参数,但不是整个命令。
就这样。 您现在知道如何在不输入终端的情况下重复上一个命令。 如果您想查看最后一个命令的输出而无需实际重新键入它们,这些方法将有所帮助。
如果您知道任何其他方法,请在下面的评论部分告诉我。 我将相应地检查并更新指南。
您现在知道如何重复先前执行的命令。 你如何重复一个 Linux 命令或程序直到它成功? 嗯,这很容易! 有关详细信息,请参阅以下指南。
- 如何在 Linux 中重复一个命令直到它成功
希望这可以帮助。
BASH 命令行LinuxLinux 基础Linux 命令Linux 技巧在Linux 中重复上一个命令