发布日期:2023-09-29 浏览次数:7

学习 Linux 命令无疑是你的首要任务,但当你能熟练 运用命令行之后,有另一样东西值得你去关注。
那就是终端快捷键!
如果你不知道如何利用它们提升终端会话的效率,那你就无法真正理解它们的重要性。
在本教程中,我将为你详细讲解顶级的终端快捷键,并且举例说明它们的用法。
在我逐一解释快捷键之前,先来看一下这个备忘录,它对我将在本教程中讨论的内容进行了概览:
| 快捷键 | 功能描述 |
|---|---|
Ctrl + A | 光标快速跳至行首。 |
Ctrl + E | 光标快速跳至行尾。 |
Ctrl + U | 删除光标至行首的所有内容。 |
Ctrl + K | 删除光标至行尾的所有内容。 |
Ctrl + W | 删除光标前的一个单词。 |
Ctrl + L | 清空整个终端屏幕。 |
Ctrl + C | 停止正在执行的进程或命令。 |
Ctrl + D | 注销或退出终端。 |
Ctrl + Z | 暂停正在执行的进程(之后可恢复执行)。 |
Ctrl + R | 在命令历史中进行逆向搜索。 |
上箭头↑ | 从命令历史中显示先前的命令。 |
下箭头↓ | 从命令历史中显示后续的命令。 |
!! | 重复执行最近的命令。 |
!n | 重复执行命令历史中的第 n 条命令。 |
Tab | 自动补全命令,文件名或目录名。 |
连续按Tab两次 | 列出所有可能的补全选项。 |
Ctrl + Shift + C | 复制所选文本或命令。 |
Ctrl + Shift + V | 粘贴已复制的文本或命令。 |
Ctrl + Shift + N | 打开新的终端窗口。 |
Ctrl + Shift + T | 在当前终端中打开新的选项卡。 |
Ctrl + Tab或Ctrl + PageDown | 在终端的选项卡之间切换。 |
? 虽然我在这篇文章中用的是大写字母,但实际上我们不需要使用大写来输入它们。比如
Ctrl+A,意思是同时按下Ctrl键和A键,并不意味着需要同时按下Shift键和a键来输入大写的A。
接下来,我们更详细地看看这些快捷键如何使用。
当你在终端中按下Ctrl + A组合键,光标就会迅速跳到命令的起始处。这个功能在你需要修改一条长命令序列起始部分的时候十分实用。
例如,在以下示例中,你可以看到无论光标处在何位置,只需按下Ctrl + A,光标就会立刻跳转至行首:
在使用终端的过程中,如果你想迅速跳到当前行的末尾,直接按下Ctrl + E组合键就可以了。
在下面的示例中,我使用了一段样本文本,并按下Ctrl + E来快速移动到行尾:
有些时候,你可能需要删除从光标位置到行首的所有内容。
此时,你只需使用左箭头键将光标移动至你想要开始删除的位置,然后按下Ctrl + U:
? 在输完
sudo命令输入密码时,不确定是否输入正确?没必要用退格键一路删除,只需简单地使用Ctrl+U快捷键重新开始输入密码即可。
如你所猜想,当你按下Ctrl + K,它会移除光标至行尾的所有内容(光标位置右侧的所有)。
使用这种快捷操作时,你先要把光标放在你想从那里开始删除的位置,然后按下Ctrl + K,如下图展示的那样:
我日常常用该快捷键,因为我时常打错命令,需要删除命令的一部分,这个时候只需要简单地按Ctrl + W就可以了。
当你按下Ctrl + W键时,它只会删除光标前的一个词:
按下Ctrl + L并不会彻底地清空终端显示,但它可以整理显示内容。如果你向上滚动,你还能找到之前的命令和执行记录。
它与clear命令有所不同。clear命令会消除历史记录,而且你会在命令历史中找到clear命令的执行。
但是当你按下Ctrl + L时,它只是整理当前屏幕的显示内容,并不会出现在历史记录中,因为它本身并不是一条命令。
比如在这个示例中,我执行了历史命令,随后按下Ctrl + L键进行了屏幕清理:
有没有想要 停止进行中的命令,却不知所措,最后只好关闭终端呢?解决办法其实很简单,按下Ctrl + C就行了。
当你按下这一组键时,它将发送SIGINT信号以终别过程。
例如,在这里,我结束了正在执行的命令进程:
最后,你会看到^C符号,表示你按下了Ctrl + C来中止当前执行。
但是,有些进程可能不会被Ctrl + C信号所中止,此时,你可以使用 Linux 中的其他中止信号来终止。
你总是可以使用exit命令来关闭 Shell 会话和终端。你也可以选择使用Ctrl+D快捷键。
当你按Ctrl + D时,如果你正在 SSH 中使用,它会结束会话,如果再次按下,它将直接关闭终端: