1.1 Linux和Shell概述
1.1.1 Linux简介
Linux是一套可免费使用和自由传播的类UNIX操作系统。1991年,芬兰赫尔辛基大学学生Linus开发了Linux内核。此后,一大批程序爱好者、软件技术专家对Linux进行修改和完善。Linux操作系统从诞生到现在,其开放、安全、稳定的特性得到越来越多用户的认可,又由于其低成本、自由开发以及安全可靠等优势,促使各国政府和企业纷纷对Linux提供强有力的支持。Linux的应用和发展前景变得越来越广阔。
自1991年10月5日Linus Torvalds在新闻组comp.os.minix发表了Linux V0.01,Linux开启了其迅猛发展的步伐。经过近20年的发展,Linux成为了一个支持多用户、多进程、多线程、实时性较好、功能强大而稳定的操作系统。它可以运行在x86、Sun Sparc、Digital Aopha、680x0、PowerPC、MIPS、ARM等平台上,是目前支持硬件平台最多的操作系统。由于用户操作习惯等因素的制约,Linux在桌面领域发展不是很好,但是在其他领域都取得了巨大的进步和成功。在企业应用领域方面,Linux得到了除微软公司之外几乎所有知名软件和硬件公司的支持,这包括IBM、HP、Sun、Intel、AMD、Sony等,软件公司有CA、Veritas、BEA、Oracle、SAP、Borland等,使得Linux操作系统在企业运算领域具有强大的发展潜力。
Linux自诞生以来,像其他许多软件一样发布了很多不同的版本,最常见的有Slackware、RedHat、Debian、S.u.s.E.等。Fedora Core(有时又称为Fedora Linux)是众多Linux发行版本之一,它是一套从Red Hat Linux发展出来的免费Linux系统。Fedora和Redhat这两个Linux的发行版本联系很密切。Redhat自9.0以后,不再发布桌面版,而是把这个项目与开源社区合作,于是就有了Fedora发行版。Fedora可以说是Redhat桌面版本的延续,只不过是与开源社区合作。
Fedora是一个开放的、创新的、具有前瞻性的Linux操作系统和平台,无论是现在还是将来它都允许任何人自由地使用、修改和重发布。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora项目由Fedora基金会管理和控制,得到了Red Hat, Inc.的支持。Fedora项目的目标是与Linux社区一同构造一个完整的、通用的操作系统。Red Hat工程师团队一直参与到构建Fedora Core的过程中,同时邀请并鼓励更多的人参与其中。通过使用这种开放的过程,他们希望可以提供一个更加贴近自由的软件和更受开源社区欢迎的操作系统。
Fedora Core被红帽公司定位为新技术的实验场,与Red Hat Enterprise Linux被定位为稳定性优先不同,许多新的技术都会在Fedora Core中检验,如果稳定,红帽公司才会考虑加入Red Hat Enterprise Linux中。到目前为止,Fedora Core已经发行了12个版本,最新版本为Fedora 12。
注:本书的实验环境选择了Fedora 11,它是在2009年6月发行的Fedora版本,其Shell是bash Shell,版本是4.0.16(1)-release。本书所有的例子和脚本都在Fedora 11系统下测试通过。
1.1.2 Shell简介
Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令,并把它送入内核去执行。内核是Linux系统的心脏,从开机自检时就驻留在计算机的内存中,直到计算机关闭为止,而用户的应用程序存储在计算机的硬盘上,仅当需要时才被调入内存。Shell是一种应用程序,当用户登录Linux系统时,Shell就会被调入内存执行。Shell独立于内核,它是连接内核和应用程序的桥梁,并由输入设备读取命令,再将其转为计算机可以理解的机械码,Linux内核才能执行该命令。图1-1描述了Shell在Linux系统中的位置。
图1-1 Shell在Linux系统中的位置
用户可以通过两种方式打开Shell,第一种是在Linux系统图形用户界面GNOME下单击“终端”打开Shell,图1-2给出了Fedora Core 11系统下打开Shell的方法,“终端”菜单位于“应用程序”→“系统工具”下面。图1-3给出了GNOME下的Shell窗口截图,GNOME与Windows操作系统风格类似,Shell窗口打开后,会在屏幕下方的任务栏上显示出来,用户可以在命令提示符后输入Linux命令。
图1-2 在GNOME下打开Shell
图1-3 GNOME的Shell窗口
十分熟悉Linux系统的用户一般不通过图形用户界面来操纵Linux系统,而是直接通过Shell登录到Linux系统。因此,第二种打开Shell的方式就是利用一些软件工具以SSH的方式远程登录到Linux系统,目前比较流行的Shell软件工具是SSH Secure Shell和PuTTY。两种软件都是非常好用的工具,下面对这两种软件的用法作简单介绍。
(1)SSH Secure Shell软件
该软件的风格十分简洁,单击工具栏中的“Quick Connect”按钮,即可弹出登录设置界面,输入登录主机的IP地址和用户名,如图1-4 所示,单击“Connect”按钮就可远程登录Linux系统。图1-5展示了登录成功的界面,与X Windows的终端类似,可以在命令提示符后输入系统命令。
图1-4 SSH Secure Shell登录设置界面
图1-5 SSH Secure Shell登录成功后的界面
(2)PuTTY软件
该软件是一个非常小巧的工具,而且是绿色软件,无须安装,图1-6显示了PuTTY的登录设置界面,同样是输入登录主机的IP地址,再单击“Open”按钮连接,在图1-7所示的界面中输入登录用户名及其密码,成功登录后会出现命令提示符。
图1-6 PuTTY登录设置界面
图1-7 PuTTY登录成功后的界面
注:本节首先简单介绍了Shell的概念,对Shell概念的介绍并不完整,因为要介绍清楚Shell,必然要涉及很多操作系统方面的知识,而本书的主旨是Shell编程;然后,给出三种启动Shell的方法,这是进行Shell编程的基础,我们通常不建议在GNOME下进行Shell编程,推荐读者使用SSH Secure Shell或PuTTY远程连接Linux主机后进行编程。