




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.1Shell基础知识3.2X-Windows概述3.3KDE与GNOME本章小结 习题 第3章Linux用户接口
3.1Shell基础知识
3.1.1Shell概述
Shell是一种具备特殊功能的程序,是介于操作者和Unix/Linux操作系统核心程序(kernel)之间的一个接口,也是操作系统与外部最主要的接口。Shell是操作系统的最外层,用于管理系统操作者与操作系统之间的交互,它接收操作者的输入,并向操作系统解释操作者的输入,且处理各种各样的操作系统输出结果。Shell提供了操作者与操作系统之间通信的方式。Shell有两种工作模式,即交互式Shell和非交互式Shell。也就是说,操作者与操作系统的通信可以以交互方式(如从键盘输入便可立即得到响应),或者以Shellscript(非交互)方式执行。Shellscript是放在文件中的一串Shell和操作系统命令,它们可以被重复使用。本质上,Shellscript是将命令行中的命令简单地组合到一个文件中。Shell基本上是一个命令解释器,类似于DOS下的。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的Shell有Unix中标准的BourneShell(SH)和CShell(CSH)。各种操作系统都有自己的Shell,以DOS为例,它的Shell就是。如同DOS下有NDOS、4DOS、DRDOS等不同的命令解释程序可以取代标准的一样,Unix下除了BourneShell(/bin/sh)外,还有CShell(/bin/csh)、KornShell(/bin/ksh)、BourneagainShell(/bin/bash)、TenexCShell(tcsh)等其它的Shell。Unix/Linux中的Shell独立于核心程序之外,使得它就如同一般的应用程序,可以在不影响操作系统本身的情况下进行修改、更新版本或者添加新的功能。1. Shell的激活在系统启动的时候,需要将核心程序加载到内存中,并由其负责管理系统的工作,直到系统关闭为止。核心程序管理并控制着处理程序、内存、文件系统、通信等。系统中的其它程序(包括Shell程序)都存放在磁盘中,在需要时由核心程序将它们加载到内存并执行,执行终止后,系统核心程序会清理系统。Shell是一个公用程序,它在登录时就会启动。当用户登录(Login)并键入一个命令后,Shell会进行以下操作:(1)分析命令的语法;(2)处理万用字符(Wildcards)、转向(Redirection)、管线(Pipes)与作业控制(JobControl);(3)搜寻并执行命令。如果经常会执行一组相同形式的命令,则可以将这些命令放入一个文件(也称为命令档,script)中,以后执行该文件便可。Shell的命令文件很像是DOS下的批处理文件(如Autoexec.bat),它包含了一系列Unix命令。较成熟的命令文件还支持若干现代程序语言的控制结构,例如能做条件判断、循环、文件测试、传送参数等。
2.三种主要的Shell与其分支如前所述,Unix/Linux系统有多种不同的Shell,其中有三种重要的Shell,分别是BourneShell(AT&TShell,在Linux下是BASH)、CShell(BerkeleyShell,在Linux下是TCSH)和KornShell(BourneShell的超集)。这三种Shell在交互(Interactive)模式下的表现相当类似,但作为命令文件语言,在语法和执行效率上却有些不同。BourneShell是标准的UnixShell,由AT&T于1979年底提出,并以其开发者的名字StephenBoume来命名。大部分的系统管理命令文件(例如rcstart、stop与shutdown)都是BourneShell的命令文件,且在单用户模式(SingleUserMode)下以root系统管理者登录。BourneShell是以Algol语言为基础设计的,以简洁、快速著名,但它缺少许多交互使用的特色,如历程、别名和工作控制。BourneShell提示符号的默认值是 $。
CShell是在美国加州大学柏克利分校于20世纪70年代末期发展而成的,作为BSDUnix的一部分来发行。CShell主要是由BillJoy写成的,它提供了一些在标准BourneShell中看不到的特色。CShell以C程序语言作为基础,且它作为程序语言时,能共享类似的语法。CShell在交互式运用有改进,可提供命令列历程(CommandHistory)、别名和工作控制等功能。因为CShell是在大型机器上设计出来的,且增加了一些额外功能,所以CShell有时在小型机器上运行得较慢,即使在大型机器上跟BourneShell比起来也显得缓慢。CShell提示符号的默认值是%。AT&T的DavidKorn在20世纪80年代中期开发了KornShell。 KornShell是BourneShell的超集(Superset)。它比CShell更为先进。KornShell的特色包括了可编辑的历程、别名、函式、正规表达式万用字符(RegularExpressionWildcard)、内建算术、作业控制(JobControl)、并作处理(Coprocessing)和特殊排错功能。BourneShell几乎和KornShell完全向上兼容(UpwardCompatible),所以在BourneShell下开发的程序仍能在KornShell上执行。 KornShell提示符号的默认值也是$。在Linux系统使用的KornShell叫做PDKSH(PublicDomainKornShell)。在Shell的语法方面,KornShell比较接近一般程序语言,而且它具有子程序的功能。在整体考量下,KornShell是三者中表现最佳者,其次为CShell,最后才是BourneShell。但是在实际使用中仍有其它应列入考虑的因素,如速度是最重要的选择时,很可能应该采用BourneShell,因它是最基本的Shell,执行的速度最快。对于习惯DOS命令提示符的用户,首次使用Linux命令行时,一定会感到无所适从。熟悉的DOS命令在Linux中基本不存在,有一种替代方案是利用强大的Linux外壳命令编写Shell脚本,使用户在Linux下也能使用DOS命令。3.1.2Shell命令行环境
Linux系统中常用的Shell命令行格式如下:
Command[flags][argument1][argument2]…命令行的各单词之间必须由一个或多个空格或制表符隔开,其中flags以“-”开始,多个flags可用一个“-”连起来,如
#ls-l-a与
#ls-la相同。在bash中,超级用户的提示符是“#”,普通用户的提示符是“$”。下面以判断tar包为例介绍Shell的编写模式,后面章节中会有详细介绍,此处只需要了解其基本形式即可。例如:
#!/bin/bash
if["${1##*.}"="tar"]
then
echoThisappearstobeatarball.
else
echoAtfirstglance,thisdoesnotappeartobeatarball.Fi将以上命令输入到文件first.sh中,然后输入 “chmod755first.sh” 生成文件即可直接运行。3.2X-Windows概述
X-Windows(X窗口)是一种用于Unix系统的标准图形化用户界面(GUI),它是由美国麻省理工学院开发的。X窗口环境可以远程连接使用,采用了客户机/服务器式的结构设计。考虑到开发人员的使用要求,X窗口为开发基于图形的分布式应用程序提供了软件工具和标准应用程序编程接口。开发与硬件无关的应用,意味着这些应用可以在支持X窗口环境的任何系统上运行。这种完整的环境通常被简单地称为“X”。X窗口系统在屏幕上的一个或多个窗口中运行程序。用户可以在使用窗口的同时在系统上运行多个程序,并且通过用鼠标点击的方式在窗口之间进行切换。在X窗口环境中称为X服务器的程序在本地工作站上运行,并且管理它的窗口和程序。每个窗口都被称为X客户,并且与在同一个机器上运行的X服务器程序以客户机/服务器关系进行交互。图3-1所示为一个X窗口环境。图3-1XWindow客户机/服务器架构视图X服务器用来处理所有X客户的程序,并通过消息传递系统和其它客户进行交互工作。X服务器控制整个本地环境,因而当访问存储器和其它系统资源时,客户程序与XWindow间要进行合作。X服务器运行X窗口管理器程序,由这个程序提供GUI界面。现在常用的两种窗口管理器是:Motif和OpenLook。它们在功能上是类似的。在本地机器上运行的X服务器可以和远程计算机上运行的程序进行交互,并且在本地窗口显示这些程序的输出。它们是一种客户机/服务器的关系,但是由本地服务器全权控制,远程进程被称为客户机,处于本地X服务器的控制之下。
X服务器和远程X客户机之间的接口是面向事件的,并且是基于X协议的。这种协议是基于传输控制协议/Internet协议(TCP/IP)的。X窗口环境的一个优势是,服务器应用程序可以在任何平台上运行,并且这个应用程序可以在公用运输协议上与这个客户机交换一组消息。于是,开发人员就可以在许多系统上建立X窗口认可的应用程序,并且这些应用程序可以被任何支持X窗口的工作站访问。3.3KDE与GNOME
3.3.1KDEKDE,即K桌面环境(KDesktopEnvironment)。KDE是一种著名的运行在Linux、Unix以及FreeBSD等操作系统上面的自由图形工作环境,整个系统采用的都是TrollTech公司所开发的Qt程序库。KDE和GNOME都是Linux操作系统上最流行的桌面环境系统。Unix操作系统是较好的操作系统之一,具有稳定、可扩展和开放性等优点。实际上,Unix在服务器市场占有很大优势,并且是计算机专业人士和科研工作者的首选计算机平台。但是缺乏易于使用的现代化桌面环境已成为Unix进入办公和家庭场合的重大阻碍。KDE是一个用于Unix工作站的现代化桌面环境。它的出现为Unix进入普通计算机用户的应用提供了便利。KDE桌面环境使用图标、窗口、菜单和面板等常用图形化对象,并允许使用鼠标和键盘。启动KDE后,其初始界面如图3-2所示。典型的KDE桌面环境主要包括两大部分:桌面和面板。桌面如图3-3所示。这是Linux桌面环境的主要工作区域,所有运行的应用程序及视窗都位于其中。用户也可以在这个工作区放置应用程序的快捷方式,存放应用程序或文件夹等。面板位于桌面底部,如图3-4所示。其默认设置包含主菜单图标、万维网浏览器、文字处理器和其它常用程序的快速启动按钮。右键单击面板,选择“配置桌面”即可打开“配置”界面,可以在该界面中配置面板的位置和大小,如图3-5所示。图3-2整体KDE桌面环境图3-3桌面部分图3-4面板部分图3-5面板配置Unix/KDE组成了一个可用的完全自由和开放的计算平台,而且完全免费,任何人都可以修改它的源代码。该组合已成为商业操作系统/桌面组合合适的替代品。Unix/KDE组合也将会为普通计算机用户带来一个同样开放、可靠、稳定和专利自由的计算环境,且已受到世界范围内的科学家和计算机专业人士的喜爱。1. KDE应用程序开发框架在Unix/X11下开发应用程序是一个非常困难并且单调乏味的过程。 KDE的开发者已认识到计算平台上和该平台用户可用的应用程序的集合同等重要。从上述观点出发,KDE项目开发出了一流的复合文档应用程序框架,实现了最先进的框架技术,这也使得KDE处于可与诸如微软的MFC/COM/ActiveX技术等流行开发框架竞争的位置。KDE的KParts复合文档技术使得开发人员可以快速创建一流的应用程序。
2. KDE办公应用套件基于KDE应用程序开发框架的优势,已经有大量的应用程序可在KDE桌面环境中使用。KDE的基本发行版中包含了一些这样的程序。例如,KDE环境下基于KParts技术的,由电子表格、幻灯片制作、组织、新闻客户端和其它应用程序组成的办公应用套件。
3. KDE的优点对用户来说,KDE具有以下优点:
(1)美观的现代化桌面;
(2)完整的网络透明性的桌面;
(3) 方便的集成帮助系统,它提供了对KDE桌面及其应用程序帮助的一致化访问途径;(4)所有的KDE应用程序都具有统一的视觉观感;(5)标准化的菜单、工具栏、键盘绑定、颜色样式等;(6)多种语言的支持,KDE已拥有60余种语言的版本;(7)集中化组织的对话框系统,由具体的桌面配置来运作;(8)大量优秀的KDE应用程序。4. KDE新的发行版现在的官方KDE发行版包含以下组件包:(1) aRts:实时模拟音频合成器与声音服务器。它可能在KDE4.0以后被废弃,其替代品将是Phonon。(2) KDE-Libs:一组必须的基本运行库。(3) KDE-Base:KDE的基本组件(窗口管理器、桌面、面板、文件管理器与网络浏览器Konqueror等)。(4) KDE-Network:
包括新闻组阅读器KNode、新闻采集器KNewsticker、拨号工具Kppp等。(5) KDE-Pim:包括电子邮件客户端KMail、地址簿管理器KAddressbook、日程管理器KOrganizer、Palm同步前端KPilot等。(6) KDE-Graphics:一组图形图像相关程序,如DVI文档查看器KDVI、PostScript查看器KGhostView、绘图程序KolourPaint、传真查看器KFax等。(7) KDE-Multimedia:包括音频播放器Noatun、MIDI演奏器KMidi、CD播放器KSCD等。(8) KDE-Accessibility:为生理上有残疾的用户设计的辅助工具。(9) KDE-Utilities:包括文本编辑器KEdit、计算器KCalc、十六进制编辑器KHexEdit、笔记工具KJots等。(10) KDE-Edu:一组与教学相关用途的程序。(11) KDE-Games:包括空间射击游戏KAsteroids、纸牌系列合集KPat、俄罗斯方块KTetris等。(12) KDE-Toys:娱乐小配件。(13) KDE-Addons:提供给Konqueror、Kate、Kicker、Noatun等程序的插件合集。(14) KDE-Artwork:附赠的图标、样式、壁纸、屏幕保护以及窗口装饰的集合。(15) KDE-Admin:一些用于系统管理的工具。(16) KDE-SDK:一组用于简单KDE程序开发的脚本和工具包。(17) KOffice:集成化办公套件。(18) KDevelop:适宜于C/C++的集成化开发环境。(19) KDE-Bindings:提供对若干种编程语言(Python、Ruby、Perl、Java等)的绑定。(20) KDEWebdev:Web开发工具。另外,还有两个名义上的软件包并不属于官方KDE发行版的一部分,但它们也隶属于整个KDE项目。
(1) KDE-Extragear:是一系列和KDE项目有关的KDE软件集合。它不属于核心KDE发行版,但依然属于KDE项目,对翻译者和文档撰写者来说其公示效应比其它第三方软件都更高。
(2) KDE-Playground:和Extragear非常接近,都是不属于核心KDE发行版但属于KDE项目的一部分。需要说明的是,还有数以千计的优秀KDE软件,尽管它们不属于KDE项目官方管辖,但可以在KDE的软件中心里找到。
5. KDE项目的规模
KDE是一个规模宏大的项目,很难用数字去量化它的实质,不过可以注意到:
(1)现在的KDESVN代码仓库已经储存了超过400万行的代码(作为比较,Linux内核2.5.17版的代码量是370万行左右);
(2)超过800名贡献者在协助进行KDE的开发;
(3)独立的翻译小组大约有300人;
(4)仅在2002年5月份,据统计就有11014次CVS代码提交;
(5) KDE在12个国家有17个以上的官方WWW镜像;
(6) KDE在39个国家有106个以上的官方FTP镜像。3.3.2GNOMEGNOME即GNU网络对象模型环境(theGNUNetworkObjectModelEnvironment)。GNOME是一种容易操作和设定电脑环境的工具,其目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,它也是GNU计划的正式桌面。GNOME计划是1997年8月由MigueldeIcaza和FedericoMena发起的,目的是作为KDE的替代品。GNOME计划提供了GNOME桌面环境及GNOME开发平台。其中,GNOME开发平台是一个能使开发的应用程序与桌面其它部分集成的可扩展框架。 GNOME桌面的设计主张简单、好用和恰到好处,因此利用GNOME开发有两个突出的优点。(1)可达性:便于设计和建立适应各类用户的桌面和应用程序;(2)国际化:保证桌面和应用程序可以适用于多种语言。和大多数自由软件类似,GNOME的组织也很松散,关于其开发的讨论散布于众多向任何人开放的邮件列表。为了管理协调GNOME软件的开发,及便于与有关的企业建立联系,2000年8月成立了GNOME基金会。基金会并不直接参与技术决策,而是协调发布和决定哪些对象应该成为GNOME的组成部分。基金会网站将其成员资格定义为“按照GNOME基金会章程,任何对GNOME有贡献者都可能是合格的成员。尽管很难精确定义,贡献者一般必须对GNOME计划有很大帮助。其贡献形式包括代码、文档、翻译、计划范围的资源维护或者其它对GNOME计划有意义的重要活动”。尽管GNOME最初是GNU/Linux的桌面,但它已经运行于大多数类Unix系统(如*BSD变体、AIX、IRIX、HP-UX),并被SunMicrosystems公司采纳为Solaris平台的标准桌面,取代了过时的CDE。SunMicrosystems公司也以JavaDesktopSystem名义发布了一个商业版的桌面——一个被SUSELinux系统使用的基于GNOME的桌面。GNOME也被移植到Cygwin,能运行于MicrosoftWindows。GNOME还被众多LiveCDLinux发行版使用,如Gnoppix、Morphix和Ubuntu。LiveCD能使计算机直接从CD引导,无需删除或者改变现有操作系统(如MicrosoftWindows)。GNOME桌面由不同的部分构成,最重要的部分如下:(1) ATK:可达性工具包。(2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年本科《传感器与测试技术》期末试题及答案
- 安顺市2025-2026学年八年级上学期语文期中模拟试卷
- 中国专家共识解读:成人颅脑损伤院前急诊诊治指南(2025版)
- 活蚕沟站区车辆工队2025年第二季度每日一题
- 社区消防知识培训课件演讲稿
- 河南省洛阳市偃师区2024-2025学年四年级下学期期末质量检测英语试题
- 社区村镇工作基础知识培训课件
- 农牧机械出租合同范本
- 股权出让协议合同范本
- 公司劳务合同范本简单
- 2026高考英语 写作-倡议信 复习课件
- 2025广东广州市从化区社区专职人员招聘33人笔试参考题库附答案解析
- 建材买卖(橱柜订购类)合同协议书范本
- 2025年小学英语教师业务理论考试试题及答案
- 托管老师岗前培训
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- 环境污染刑事案件司法解释学习课件
- 信息技术教学德育融合
- 护理品管圈QCC之提高手术物品清点规范执行率
- 高尔夫基础培训ppt课件
- 暴雨产流计算(推理公式_四川省)
评论
0/150
提交评论