认识linux之 Linux Shells简介( 三 )


2. 提供了命令列补全功能 。
3. 提供了拼字更正功能 。它能够自动检测并且更正在命令列拼错的命令或是单字 。
4. 危险命令侦测并提醒的功能 , 避免您一个不小心执行了rm* 这种杀伤力极大的命令 。
5. 提供常用命令的快捷方式(shortcut) 。
bash 对 Bourne shell 是向下兼容(backward compatible) , 并融入许多C shell 与Korn shell 的功能 。这些功能其实 C shell(当然也包括了tcsh)都有 , 只是过去 Bourne shell 都未支持 。以下笔者将介绍 bash 六点重要的改进(详细的使用说明笔者会在以后的章节介绍):
1. 工作控制(job contorl) 。bash 支持了关于工作的讯号与指令 , 本章稍后会提及 。
2. 别名功能(aliases) 。alias 命令是用来为一个命令建立另一个名称 , 它的运作就像一个宏 , 展开成为它所代表的命令 。别名并不会替代掉命令的名称 , 它只是赋予那个命令另一个名字 。
3. 命令历程(command history) 。BASH shell 加入了C shell 所提供的命令历程功能 , 它以 history 工具程序记录了最近您执行过的命令 。命令是由 1 开始编号 , 默认值为500 。history 工具程序是一种短期记忆 , 记录您最近所执行的命令 。要看看这些命令 , 您可以在命令列键入 history , 如此将会显示最近执行过之命令的清单 , 并在前方加上编号 。
这些命令在技术上每个都称为一个事件 。事件描述的是一个已经采取的行动(已经被执行的命令) 。事件是依照执行的顺序而编号 , 越近的事件其编号码越大 , 这些事件都是以它的编号或命令的开头字符来辨认的 。history 工具程序让您参照一个先前发生过的事件 , 将它放在命令列上并允许您执行它 。最简单的方法是用上下键一次放一个历程事件在您的命令列上;您并不需要先用 history 显示清单 。按一次向上键会将最后一个历程事件放在您的命令列上 , 再按一次会放入下一个历程事件 。按向下键则会将前一个事件放在命令列上 。
4. 命令列编辑程序 。BASH shell 命令列编辑能力是内建的 , 让您轻松地在执行之前修改您输入的命令 。若是您在输入命令时拼错了字 , 您不需重新输入整个命令 , 只需在执行命令之前使用编辑功能纠正错误即可 。这尤其适合于使用冗长的路径名称当作参数的命令时 。命令列编辑作业是 Emacs 编辑命令的一部份 。您可以用 Ctrl-F 或向右键往前移一个字符 , Ctrl-b 或向左键往回移一个字符 。Ctrl-d 或DEL 键会删除光标目前所在处的字符 。要增加文字的话 , 您只需要将光标移到您要插入文字的地方并键入新字符即可 。无论何时 , 您都可以按 ENTER 键执行命令 。
5. 允许使用者自订按键 。
6. 提供更丰富的变量型态、命令与控制结构至 shell 中 。
bash 与tcsh 一样可以从许多网站上免费下载 , 它们的性质也十分类似 , 都是整合其前一代的产品然后增添新的功能 , 这些新增的功能主要都着重在强化 shell 的程序设计能力以及让使用者能够自行定义自己偏好的作业环境 。除了上述的五种 shell 之外 , zsh 也是一个广为UNIX 程序设计人员与进阶使用者所采用的 shell , zsh 基本上也是 Bourne shell 功能的扩充 。
Shell 的使用
不论是哪一种Shell , 它最主要的功用都是解译使用者在命令列提示符号下输入的指令 。Shell 语法分析命令列 , 把它分解成以空白区分开的符号(token) , 在此空白包括了跳位键(tab)、空白和换行(New Line) 。如果这些字包含了metacharacter , shell 将会评估(evaluate)它们的正确用法 。另外 , shell 还管理档案输入输出及幕后处理(background processing) 。在处理命令列之后 , shell 会寻找命令并开始执行它们 。

推荐阅读