[TOC]
命令行的目标:
- 懒惰;用最少的击键次数来完成最多的工作。
- 手指永远不必离开键盘,永不触摸鼠标。
命令行编辑
Bash 使用了一个名为 Readline 的库(共享的线程集合,可以被不同的程序使用)实现命令行编辑。
元键(meta key):在当今的键盘上,这个元键是指 Alt 键,但并不总是这样。
移动光标
在命令行输入时移动光标。
按键 | 功能 |
---|---|
Ctrl + a | 移动光标到行首。 |
Ctrl + e | 移动光标到行尾。 |
Ctrl + f | 光标后移一个字符;和右箭头作用一样。 |
Ctrl + b | 光标前移一个字符;和左箭头作用一样。 |
Alt + f | 光标前移一个字。 |
Alt + b | 光标后移一个字。 |
Ctrl + l | 清空屏幕,移动光标到左上角。等同于 clear 命令。 |
修改文本
在命令行中编辑字符。
按键 | 功能 |
---|---|
Ctrl + d | 删除光标位置的字符。 |
Ctrl + t | 光标位置的字符和光标前面的字符互换位置。 |
Alt + t | 光标位置的字和其前面的字互换位置。 |
Alt + l | 把从光标位置到字尾的字符转换成小写字母。 |
Alt + u | 把从光标位置到字尾的字符转换成大写字母。 |
剪切和粘贴文本
Readline 的文档使用术语 killing 和 yanking 来指我们平常所说的剪切和粘贴。剪切下来的本文被存储在一个叫做剪切环 (kill-ring) 的缓冲区中。
按键 | 功能 |
---|---|
Ctrl + k | 剪切从光标位置到行尾的文本。 |
Ctrl + u | 剪切从光标位置到行首的文本。 |
Alt + d | 剪切从光标位置到词尾的文本。 |
Alt + Backspace | 剪切从光标位置到词头的文本。如果光标在一个单词的开头,剪切前一个单词。 |
Ctrl + y | 把剪切环中的文本粘贴到光标位置。 |
Tab键 - 自动补全
通常用于路径名、变量名自动补全。
按键 | 功能 |
---|---|
Alt + ? | 显示可能的自动补全列表。在大多数系统中,你也可以完成这个通过按两次 tab 键,会更容易些。 |
Alt + * | 插入所有可能的自动补全。当你想要使用多个可能的匹配项时,这个很有帮助。 |
可编程自动补全
目前的 bash 版本有一个叫做可编程自动补全工具。可编程自动补全允许你(更可能是,你的
发行版提供商)来加入额外的自动补全规则。通常需要加入对特定应用程序的支持,来完成这个
任务。例如,有可能为一个命令的选项列表,或者一个应用程序支持的特殊文件类型加入自动补全。
默认情况下,Ubuntu 已经定义了一个相当大的规则集合。可编程自动补全是由 shell 函数实现的,
shell 函数是一种小巧的 shell 脚本,我们会在后面的章节中讨论到。如果你感到好奇,试一下:
set | less
查看一下,如果你能找到它们的话。默认情况下,并不是所有的发行版都包括它们。
clear
清空屏幕
格式:clear
。等同于:Ctrl+L。
history
显示历史命令
- bash 维护着一个已经执行过的命令的历史列表。这个命令列表被保存在你主目录下,一个叫做 .bash_history 的文件里。对于管理员而言,可以读取某一个用户主目录下的 .bash_history 文件。
- 默认情况下,bash 会存储你所输入的最后 500 个命令。
- 只能列出当前用户的操作记录。
- 显示最近 n 条历史命令:
history Number
。
示例:找到列出目录 /usr/bin 内容的命令:
$ history | grep /usr/bin
1506 2018-11-20 10:46:32 root readlink -f /usr/bin/mongodump
1507 2018-11-20 10:46:39 root readlink -f /usr/bin/mongo
1508 2018-11-20 10:46:45 root readlink -f /usr/bin/node
命令行号 命令时间
递增搜索
bash 具有按递增顺序来搜索历史列表的能力。这意味着随着字符的输入,我们可以告诉 bash 去搜索历史列表,每一个附加字符都进一步提炼我们的搜索。
按键 | 功能 |
---|---|
Ctrl + p | 移动到上一个历史条目。类似于上箭头按键。 |
Ctrl + n | 移动到下一个历史条目。类似于下箭头按键。 |
Alt + < | 移动到历史列表开头。 |
Alt + > | 移动到历史列表结尾,即当前命令行。 |
Ctrl + r | 反向递增搜索。从当前命令行开始,向上递增搜索。 |
Alt + p | 反向搜索,不是递增顺序。输入要查找的字符串,然后按下 Enter,执行搜索。 |
Alt + n | 向前搜索,非递增顺序。 |
Ctrl + o | 执行历史列表中的当前项,并移到下一个。如果你想要执行历史列表中一系列的命令,这很方便。 |
Ctrl + j | 从历史列表中复制这一行到当前命令行 |
Ctrl + g / Ctrl + c | 退出搜索 |
历史命令展开
执行某个历史命令:!历史命令行号
序列 | 功能 |
---|---|
!! | 重复最后一次执行的命令。可能按下上箭头按键和 enter 键更容易些。 |
!number | 重复历史列表中第 number 行的命令。 |
!string | 重复最近历史列表中,以这个字符串开头的命令。 |
!?string | 重复最近历史列表中,包含这个字符串的命令。 |
图形模式与文字模式的切换
图形用户界面让简单的任务更容易完成, 而命令行界面使完成复杂的任务成为可能。
- 命令行窗口:Ctrl + Alt + F1 ~ F6
- 图形界面:Ctrl + Alt + F7
VMWare 虚拟机下:
- 命令行窗口: Alt + Space + F1~F6
- 图形界面 —> 命令窗口:Alt + Shift + Ctrl + F1~F6
网友评论