大多数 Linux 都会记住您在终端运行的命令。这对于找出您对系统所做的操作非常有用,尤其是对于服务器。
对于代码较长的常用命令,您无需一遍又一遍地输入所有代码。您可以使用历史命令选项重新运行,只需按几下键即可。
列出历史命令
要查看您在 Linux 中运行哪些命令,只需运行 history
命令:
history
在输出中,你会看到很多你之前运行过的命令。并且每个命令的开头都有一个数字作为命令的顺序。
如果历史命令太多,可能很难浏览并找到某个命令。在这种情况下,需要使用 grep
命令进行过滤。例如,运行以下命令来搜索包含 git submodule
的历史命令。
history | grep "git submodule"
grep 是一个强大的命令,您还可以在 grep
命令之后添加选项 -E
使用正则表达式进行过滤。
重新运行历史命令
一旦您获得历史命令序号,它太长或者您不记得,您可以通过输入 !number
来重新运行它,其中 number 是 history
命令输出最前面的编号。
例如,根据上一个屏幕截图,下面的运行命令将重新运行 ls 命令列出当前目录的所有文件。
并且在终端窗口中,它会输出您按 Enter 后立即要运行的内容。如果你使用是 ohmyzsh,它将会打印命令,但不立即运行,需要你按下 Enter 确认运行。
!4466
为了避免记忆错误的命令,您可以使用以下命令,通过在最后添加 :p
首先预览历史命令的详情:
!4466:p
然后,如果确认这确实是您想要的命令,请重新运行 !4466
。
运行最后一条历史命令
对于最后一条命令,不需要查找历史记录编号,只需使用下面的命令即可重新运行它:
!!
您还可以将它与其他命令一起使用。例如,使用 sudo
权限重新运行上一个命令:
sudo !!
或者重新运行上一个命令,然后关机:
!! && poweroff
你也可以指定上一次运行的命令字符,例如,以指定的字符串重新运行最后一个命令:
!sudo
!sudo
命令将重新运行以 sudo
开头的最后一个命令。并且,以上所有命令在运行前都可以在后面添加 :p
预览将要运行的命令。