常用命令:
• clear - 清空屏幕
• history - 显示历史列表内容
这些命令用来在命令行中编辑字符:
Readline 的文档使用术语 killing 和 yanking 来指我们平常所说的剪切和粘贴。
剪切下来的本文被存储在一个叫做剪切环(kill-ring)的缓冲区中。
剪切和粘贴命令:
shell 能帮助你的另一种方式是通过一种叫做自动补全的机制。当你敲入一个命令时, 按下 tab 键,自动补全就会发生。让我们看一下这是怎样工作的。给出一个看起来 像这样的家目录:
[me@linuxbox ~]$ ls
Desktop ls-output.txt Pictures Templates Videos
....
试着输入下面的命令,但不要按下 Enter 键:
[me@linuxbox ~]$ ls l
现在按下 tab 键:
[me@linuxbox ~]$ ls ls-output.txt
看一下 shell 是怎样补全这一行的?让我们再试试另一个例子。这回,也不要按下 Enter:
[me@linuxbox ~]$ ls D
按下 tab:
[me@linuxbox ~]$ ls D
没有补全,只是嘟嘟响。因为”D”不止匹配目录中的一个条目。为了自动补全执行成功, 你给它的”线索”必须不模棱两可。如果我们继续输入:
[me@linuxbox ~]$ ls Do
然后按下 tab:
[me@linuxbox ~]$ ls Documents
自动补全成功了。
这个实例展示了路径名自动补全,这是最常用的形式。
自动补全也能对变量起作用(如果 字的开头是一个”$”),用户名字(单词以”~”开始),命令(如果单词是一行的第一个单词), 和主机名(如果单词的开头是”@”)。主机名自动补全只对包含在文件/etc/hosts 中的主机名有效。
bash 维护着一个已经执行过的命令的历史列表。
这个命令列表 被保存在home目录下,一个叫做 .bash_history 的文件里。这个 history 工具是个有用资源, 因为它可以减少你敲键盘的次数,尤其当和命令行编辑联系起来时。
搜索历史命令
浏览历史列表的内容,通过:
[me@linuxbox ~]$ history | less
在默认情况下,bash 会存储你所输入的最后 500 个命令。
比方说我们想要找到列出目录 /usr/bin 内容的命令。一种方法,我们可以这样做:
[me@linuxbox ~]$ history | grep /usr/bin
比方说在我们的搜索结果之中,我们得到一行,包含了有趣的命令,像这样;
88 ls -l /usr/bin > ls-output.txt
数字 “88” 是这个命令在历史列表中的行号。
我们可以这样做,来使用我们所发现的行:
[me@linuxbox ~]$ !88
bash 会把 “!88” 展开成为历史列表中88行的内容。
bash 也具有按递增顺序来搜索历史列表的能力。这意味着随着字符的输入,我们可以告诉 bash 去搜索历史列表,每一个附加字符都进一步提炼我们的搜索。
启动递增搜索学习步骤:
1、输入 Ctrl-r,其后输入你要寻找的文本。
2、当你找到它以后,你可以敲入 Enter 来执行命令, 或者输入 Ctrl-j,从历史列表中复制这一行到当前命令行。
3、再次输入 Ctrl-r,来找到下一个 匹配项(向上移动历史列表)。
4、输入 Ctrl-g 或者 Ctrl-c,退出搜索。
实际来体验一下:
[me@linuxbox ~]$
首先输入 Ctrl-r:
(reverse-i-search)`':
提示符改变,显示我们正在执行反向递增搜索,搜索过程是”反向的”,因为我们按照从”现在”到过去 某个时间段的顺序来搜寻。
下一步,我们开始输入要查找的文本。在这个例子里是 “/usr/bin”:
(reverse-i-search)`/usr/bin': ls -l /usr/bin > ls-output.txt
可以看到,搜索返回我们需要的结果。我们可以执行这个命令,按下 Enter 键,或者我们可以复制 这个命令到我们当前的命令行,来进一步编辑它,输入 Ctrl-j。复制它,输入 Ctrl-j:
[me@linuxbox ~]$ ls -l /usr/bin > ls-output.txt
我们的 shell 提示符重新出现,命令行加载完毕,正准备行动!下表列出了一些按键组合, 这些按键用来操作历史列表:
历史命令展开
通过使用 “!” 字符,shell 为历史列表中的命令,提供了一个特殊的展开类型。
历史展开命令表:
应该小心谨慎地使用 “!string” 和 “!?string” 格式,除非你完全确信历史列表条目的内容。
知识来源:http://billie66.github.io/TLCL/book/zh/chap09.html