强大好用的SHELL
一台完整的计算机是由运算器、控制器、存储器、输入/输出等多种硬件设备共同组成的,而能让各种硬件设备各司其职且又能协同运行的东西就是系统内核。Linux系统的内核负责完成对硬件资源的分配、调度等管理任务,对系统的正常运行起着十分重要的作用。
与修改Windows系统中的注册表类似,直接改动内核参数的难度比较大,而且一旦“手滑”还有可能导致系统直接崩溃。因此不建议同学们直接去编辑内核中的参数,而是用基于系统调用接口开发出来的程序或服务来管理计算机,以满足日常的工作需要。
人类是无法直接控制硬件的(想象一个人捧着块硬盘自言自语的滑稽场景)。硬件设备由系统内核直接管理,但由于内核的复杂性太高,在访问时存在较大的风险,因此用户不能直接访问内核。虽然通过调用系统提供的API(应用程序编程接口)就能实现某个功能,但哪怕实现“将一条信息通过互联网传输给别人”这样简单的任务,都要手动调用几十次API接口,使用起来太不切实际。而最外层的服务程序则是最贴近于用户端的,这些服务程序是集成了大量API接口的完整软件,微信、QQ就是这样的服务程序。
讲到这里,相信大家已经能够明白服务程序对用户和硬件所能发挥的作用了。如果把整台电脑比喻成人类社会,那么服务程序就是一名翻译官,负责将用户提出的需求转换成硬件能够接收的指令代码,然后再将处理结果反馈成用户能够读懂的内容格式。这样一来一回,用户就能使用硬件资源了。
看到被一层层“包裹”起来的硬件设备,大家有没有感觉像一只蜗牛的壳呢?英文中的壳叫作Shell,我们在行业中也将用户终端程序称之为Shell,方便好记。
Shell就是终端程序的统称,它充当了人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端程序,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流Linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器,这个Bash解释器主要有以下4项优势:
通过上下方向键来调取执行过的Linux命令;
命令或参数仅需输入前几位就可以用Tab键补全;
具有强大的批处理脚本;
具有实用的环境变量功能。
大家可以在今后的学习和生产工作中细细体会Linux系统命令行的美妙之处,真正从心里爱上它们。
执行命令的必备知识
既然Linux系统中已经有了Bash这么好用的“翻译官”,那么接下来就有必要好好学习一下怎么跟它沟通了。要想准确、高效地完成各种任务,仅依赖于命令本身是不够的,还应该根据实际情况来灵活调整各种命令的参数。比如,我们切寿司时尽管可以用菜刀,但米粒一定会撒得满地都是,因此寿司刀上设计的用于透气的圆孔就是为了更好地适应场景而额外增加的参数。当您学完本书并具备一定的工作经验之后,一定能够领悟Linux命令的奥秘。
常见的执行Linux命令的格式是下面这样的。
命令名称 [命令参数] [命令对象]