# Linux 常用快捷键

### 常用快捷键

## 常用快捷键

以下是一些在命令行中较为常用的快捷键。

#### Tab 键

命令、文件名等补全。

#### Ctrl + c

取消当前行输入的命令，相当于 Ctrl + Break。

#### Ctrl + z

后端运行。

#### Ctrl + l

清屏，相当于执行 clear 命令。

#### Ctrl + s

暂停当前终端。

#### Ctrl + q

恢复当前终端。


#### Ctrl + a

光标移动到行首（Beginning of line），等同 Home 键。

#### Ctrl + e

光标移动到行尾（End of line），等同 End 键。

#### Alt + f

光标向前（Forward）移动到下一个单词。

#### Alt + b

光标往回（Backward）移动到前一个单词。


#### Ctrl + u

删除光标所在位置左边与行首之间的所有字符。

#### Ctrl + k

删除光标所在位置与行尾之间的所有字符。

#### Ctrl + w

删除光标所在位置前任意个空格及其前的一个单词，或光标所在位置左边至所在单词首的所有字符。

#### Alt + d

删除光标所在位置后任意个空格及其后的一个单词，或光标所在位置至所在单词尾的所有字符。

#### Ctrl + y

复制你上一次删除或剪切的条目。


#### Alt + u

转换光标所在位置后的一个单词为大写，或光标所在单词位置至此单词尾的字母为大写。

#### Alt + l

转换光标所在位置后的一个单词为小写，或光标所在单词位置至此单词尾的字母为小写。


#### Alt + .

在光标处输入最近历史命令的最后一个字符串，如果此命令只有单个字符串，则输入此字符串。可持续使用以持续切换为更前的命令。


#### Ctrl + r

依据用户在：提示符后的输入字符串匹配查找 history 记录中命令条目。

#### Ctrl + g

从历史搜索模式（Ctrl + r）退出。


#### !num

执行 history 记录中第 num 条命令条目，num 正整数时，为正序；负数时，为反序。


#### !string:p

输出最近的以 string 开头的命令条目。等同 !?string?。

#### Bang(!)命令


#### !!

输出并执行最近已执行过的一条命令。

#### !num

执行 history 记录中第 num 条命令条目，num 正整数时，为正序；负数时，为反序。

#### !num:p

输出第 num 条命令条目，不执行。

#### !num:gs/str1/str2/

将第 num 条命令条目中的 str1 字符串替换为str2，（若不加 g，则仅替换第一个匹配）。

#### !string

输出最近已执行过的以 string 开头的命令条目。等同 !?string?。

#### !?string?

输出最近已执行过的以 string 开头的命令条目。等同 !string。

#### !string:p

输出最近已执行过的以 string 开头的命令条目。


#### ^abc

删除最近已执行过的命令中的 abc 字符串，并执行。

#### \^foo\^bar

将最近已执行过的命令中的 foo 字符串替换为 bar，并执行。

#### !$

执行最近已执行过的命令中的最后一个参数。

#### !*

执行最近已执行过的命令中的所有参数。

#### !*:p

输出最近已执行过的命令中的所有参数。


## 移动光标


#### Ctrl + a

光标移动到行首（Ahead of line），即 Home 键。

#### Ctrl + e

光标移动到行尾（End of line），即 End 键。

#### Ctrl + xx

光标在输入的命令行首与行尾切换跳转。

#### Ctrl + f

光标向前（Forward）/右移动一个字符位置。

#### Ctrl + b

光标往回（Backward）/左移动一个字符位置。

#### Alt + f

光标向前（Forward）移动到下一个单词。

#### Alt + b

光标往回（Backward）移动到前一个单词。


## 编辑命令


#### Tab 键

命令、文件名等补全。

#### Ctrl + d

删除一个字符，即 Delete 键(命令行若无字符，相当于exit，处理多行标准输入时也表示 EOF)。

#### Ctrl + h

退格删除一个字符，即 Backspace 键。

#### Ctrl + u

删除光标所在位置左边与行首之间的所有字符。

#### Ctrl + k

删除光标所在位置与行尾之间的所有字符。

#### Ctrl + w

删除光标所在位置前任意个空格及其前的一个单词，或光标所在位置左边至所在单词首的所有字符。

#### Alt + d

删除光标所在位置后任意个空格及其后的一个单词，或光标所在位置至所在单词尾的所有字符。

#### Ctrl + y

复制你上一次删除或剪切的条目。

#### Ctrl + t

光标处在行尾，则交换前两个字符的位置；否则交换光标处字符与前一字符位置，并且光标向右移动单个字符位置。

#### Alt + t

依据光标所在位置，交换其所处单词和前一个单词的位置；交换其前后两个单词的位置；交换其前最后两个单词的位置（注意空格位置的变化）。

#### Alt + u

转换光标所在位置后的一个单词为大写，或光标所在单词位置至此单词尾的字母为大写。

#### Alt + l

转换光标所在位置后的一个单词为小写，或光标所在单词位置至此单词尾的字母为小写。

#### Alt + .

在光标处输入最近历史命令的最后一个字符串，如果此命令只有单个字符串，则输入此字符串。可持续使用以持续切换为更前的命令。

#### Ctrl + -

依次撤销命令行除添加字符的首次修改及其后的所有修改，否则恢复到空行。等同 Ctrl + x + u。

#### Ctrl + x + u

按住 Ctrl 的同时再先后按 x 和 u，依次撤销命令行除添加字符的首次修改及其后的所有修改，否则恢复到空行。等同 Ctrl + -。


## 查找历史命令


#### Ctrl + p

调出命令历史中的前一条（Previous）命令，即向上箭头键↑。

#### Ctrl + n

调出命令历史中的下一条（Next）命令，即向下箭头键↓。

#### Ctrl + r

依据用户在：提示符后的输入匹配查找 history 记录中命令条目。

#### Ctrl + g

从历史搜索模式（Ctrl + r）退出。


## 控制命令


#### Ctrl + c

取消当前行输入的命令，相当于Ctrl + Break。

#### Ctrl + s

暂停当前终端。

#### Ctrl + q

恢复当前终端。

#### Ctrl + z

后端运行。

#### Ctrl + l

清空屏幕并重新显示当前命令行内容。


#### [Ctrl] + [Alt] + [Delete]

关机并重新引导系统。在正常关机步骤不起作用时，可使用此方式。

#### [Ctrl] + [Alt] + [Fn] / [Alt] + [Fn]

切换虚拟终端。默认， [F1]至[F6] 是命令行终端， [F7] 是 X 终端。

#### [Alt] + [Tab]

在图形化桌面环境中切换任务。

#### [Ctrl] + [Alt] + [Backspace]

杀死当前的 X 会话，返回到登录会话。如果正常退出步骤不起作用，你可以使用这种方法。


## 其它快捷键


#### Esc 键

连续按 3 次显示所有的支持的终端命令。

#### Esc + b

移动到当前单词的开头

#### Esc + f

移动到当前单词的结尾

#### Esc + t

颠倒光标所在处及其相邻单词的位置

#### Esc + d

由光标位置开始，删除单词，直到单词结束，往右侧（还有剪切功能）

#### Esc + c

使下一个单词首字母大写, 同时光标前进一个单词, 如光标停留在单词的某个字母上, 如 word 中的 o 字母上, 则 o 字母变大写. 而不是 w

#### Esc + u

使下一个单词所有字母变大写, 同时光标前进一个单词, 同上, 如光标在 o 字母上, 则 ord 变大写, w 不变.

#### Esc+.

上一个命令的后面的参数

#### Esc + 操作次数 操作动作

指定操作次数，重复执行指定的操作。

## 参考
[知乎专栏](https://zhuanlan.zhihu.com/p/338681998)