前几天有个朋友给我发消息:"问你个问题,Linux 命令行有没有快捷键一下从行末会到行头?经常敲了很多命令发现忘加 sudo 了,然后把命令删了重新敲一遍"。

正好借此机会给不知道的朋友总结一下:

首先说说历史记录个数的 "HISTFILESIZE" 和 "HISTSIZE"的区别

默认情况下 HISTFILESIZE 和 HISTSIZE的值都是 500,表示可以记录 500 条命令记录。

· HISTFILESIZE 表示记录在文件中的命令条数

· HISTSIZE 表示记录在内存中的命令条数

当我们在 shell 命令行执行命令的时候,最近的 HISTSIZE 条命令被保存在内存当中可以使用上下光标或者 ctrl+p,ctrl+n 上下查找命令。

当退出 shell 时 HISTFILESIZE 条命令被保存到历史命令文件中,下次登录 shell 时会从历史命令文件中读取命令道内存历史命令道中。

当网络中断等异常时,你会发现之前的历史命令,下次登录时用上下光标找不到上次的历史命令,所以要正常退出或者发送探测包保持 shell 在线。

如果想增加历史命令保存的数量,可以在 ~/.bash_profile 中手动修改 HISTFILESIZE 和 HISTSIZE 这两个变量的值。

必须知道的Linux命令行

我想提一下一些快捷键可能依赖于你使用的 Shell。 Bash 是最受欢迎的 shell,所以列出的快捷键集中在 Bash。 如果你愿意,你也可以称其为 Bash 快捷键列表。

注意我在键盘快捷键中使用了大写字母,但这并不意味着你在使用快捷键时必须按下 shift 键。

常用

1. Tab

这是你不能没有的 Linux 快捷键。它将节省你 Linux 命令行中的大量时间。

只需要输入一个命令,文件名,目录名甚至是命令选项的开头,并敲击 tab 键。它将自动完成你输入的内容,或为你显示全部可能的结果。

如果你只记一个快捷键,这将是必选的一个。

2. Ctrl + C

这些是为了在终端上中断命令或进程该按的键。它将立刻终止运行的程序。

如果你想要停止使用一个正在后台运行的程序,只需按下这对组合键。

3. Ctrl + Z

该快捷键将正在运行的程序送到后台。 通常,你可以在使用 & 选项运行程序前之完成该操作, 但是如果你忘记使用选项运行程序,就使用这对组合键。

4. Ctrl + D

这对键盘快捷键将使你退出当前终端。如果你使用 SSH 连接,它将会关闭。 如果你直接使用一个终端,该应用将会立刻关闭。

把它当成"退出"命令。

5. Ctrl + L

你怎么清空你的终端屏幕?我猜是用 clear 命令。

你可以使用 Ctrl+L 清空终端,代替输入 C-L-E-A-R。得心应手,不是吗?

6. Ctrl + A

该快捷键将移动光标到所在行首。

假设你在终端输入了一个很长的命令或路径,并且你想要回到它的开头, 使用方向键移动光标将花费大量时间。注意你无法使用鼠标移动光标到行首。

这是 Ctrl+A 节省时间的地方。

7. Ctrl + E

这对快捷键与 Ctrl+A 相反。 Ctrl+A 送光标到行首,反之 Ctrl+E 移动光标到行尾。

8. Ctrl + U

输入了错误的命令? 代替用退格键来丢弃当前命令,使用 Linux 终端中的 Ctrl+U 快捷键。 该快捷键会擦除从当前光标位置到行首的全部内容。

9. Ctrl + K

这对和 Ctrl+U 快捷键有点像。 唯一的不同在于不是行首,它擦除的是从当前光标位置到行尾的全部内容。

10. Ctrl + W

你刚才了解了擦除到行首和行尾的文本。 但如果你只需要删除一个单词呢?使用 Ctrl+W 快捷键。

使用 Ctrl+W 快捷键,你可以擦除光标位置前的单词。 如果光标在一个单词本身上,它将擦除从光标位置到词首的全部字母。

最好的方法是用它移动光标到要删除单词后的一个空格上, 然后使用 Ctrl+W 键盘快捷键。

11. Ctrl + Y

这将粘贴使用 Ctrl+W,Ctrl+U 和 Ctrl+K 快捷键擦除的文本。 如果你删除了错误的文本或需要在某处使用已擦除的文本,这将派上用场。

12. Ctrl + P

你可以使用该快捷键来查看上一个命令。 你可以反复按该键来返回到历史命令。 在很多终端里,使用 PgUp 键来实现相同的功能。

13. Ctrl + N

你可以结合 Ctrl+P 使用该快捷键。Ctrl+N 显示下一个命令。 如果使用 Ctrl+P 查看上一条命令,你可以使用 Ctrl+N 来回导航。 许多终端都把此快捷键映射到 PgDn 键。

14. Ctrl + R

你可以使用该快捷键来搜索历史命令。

Ctrl+左右键:在单词之间跳转

Alt – d :由光标位置开始,往右删除单词。往行尾删

说明

Ctrl – k: 先按住 Ctrl 键,然后再按 k 键;

Alt – k: 先按住 Alt 键,然后再按 k 键;

M – k:先单击 Esc 键,然后再按 k 键。

移动光标

Ctrl – a :移到行首

Ctrl – e :移到行尾

Ctrl – b :往回(左)移动一个字符

Ctrl – f :往后(右)移动一个字符

Alt – b :往回(左)移动一个单词

Alt – f :往后(右)移动一个单词

Ctrl – xx :在命令行尾和光标之间移动

M-b :往回(左)移动一个单词

M-f :往后(右)移动一个单词

编辑命令

Ctrl – h :删除光标左方位置的字符

Ctrl – d :删除光标右方位置的字符(注意:当前命令行没有任何字符时,会销系统或结束终端)

Ctrl – w :由光标位置开始,往左删除单词。往行首删

Alt – d :由光标位置开始,往右删除单词。往行尾删

M – d :由光标位置开始,删除单词,直到该单词结束。

Ctrl – k :由光标所在位置开始,删除右方所有的字符,直到该行结束。

Ctrl – u :由光标所在位置开始,删除左方所有的字符,直到该行开始。

Ctrl – y :粘贴之前删除的内容到光标后。

ctrl – t :交换光标处和之前两个字符的位置。

Alt + . :使用上一条命令的最后一个参数。

Ctrl – _ :回复之前的状态。撤销操作。

Ctrl -a + Ctrl -k 或 Ctrl -e + Ctrl -u 或 Ctrl -k + Ctrl -u 组合可删除整行。

Bang(!)命令

!! :执行上一条命令。

^foo^bar :把上一条命令里的foo替换为bar,并执行。

!wget :执行最近的以wget开头的命令。

!wget:p :仅打印最近的以wget开头的命令,不执行。

!$ :上一条命令的最后一个参数, 与 Alt - . 和 $_ 相同。

!* :上一条命令的所有参数

!*:p :打印上一条命令是所有参数,也即 !*的内容。

^abc :删除上一条命令中的abc。

^foo^bar :将上一条命令中的 foo 替换为 bar

^foo^bar^ :将上一条命令中的 foo 替换为 bar

!-n :执行前n条命令,执行上一条命令: !-1, 执行前5条命令的格式是: !-5

查找历史命令

Ctrl – p :显示当前命令的上一条历史命令

Ctrl – n :显示当前命令的下一条历史命令

Ctrl – r :搜索历史命令,随着输入会显示历史命令中的一条匹配命令,Enter键执行匹配命令;ESC键在命令行显示而不执行匹配命令。

Ctrl – g :从历史搜索模式(Ctrl – r)退出。

控制命令

Ctrl – l :清除屏幕,然后,在最上面重新显示目前光标所在的这一行的内容。

Ctrl – o :执行当前命令,并选择上一条命令。

Ctrl – s :阻止屏幕输出

Ctrl – q :允许屏幕输出

Ctrl – c :终止命令

Ctrl – z :挂起命令

重复执行操作动作

M – 操作次数 操作动作 : 指定操作次数,重复执行指定的操作。

总结:

在 Linux 下使用命令操作的时候,光标的移动令人头痛。命令输入完了,执行之后发现缺少权限,然后不得不移动光标到行首,而命令又极长……以上是一些每个 Linux 用户必须使用的键盘快捷键。使用命令行时,这些 Linux 快捷键将提升你的工作效率和效率。

欢迎加入  51软件测试大家庭,在这里你将获得【最新行业资讯】,【免费测试工具安装包】,【软件测试技术干货】,【面试求职技巧】... 51与你共同学习,一起成长!期待你的加入: QQ                    群:                   755431660