Linux教程(第5版)孟庆昌版 课后答案 | 您所在的位置:网站首页 › threecupsoftea课后答案 › Linux教程(第5版)孟庆昌版 课后答案 |
最近在复习Linux,用的教材是《Linux教程(第5版)孟庆昌版》,但每章的课后复习题答案没给,不太方便,我整理了一下 思考题1 1.1 什么是软件?软件分为哪几种? 答:软件是相对硬件而言的,它是与数据处理系统操作有关的计算机程序和相关数据等的总称。 软件通常可分为三大类,即系统软件、应用软件和支撑软件。 1.2 根据你的理解,简述操作系统的定义。 答:(学生可根据自己的理解予以表述,要符合下面定义所包含的基本点) 操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。 1.3 操作系统的主要功能是什么? 答:操作系统的主要功能包括存储管理、进程和处理机管理、文件管理、设备管理和用户接口服务。 1.4 独立运行的多用户系统和单用户机器组成的计算机网络之间有哪些共同点和不同点? 答:共同点:①都是多用户系统,多个用户可以同时上机使用计算机系统;②系统中某些资源可以共享;③系统中各用户可以彼此独立的操作,互不干扰;④系统中的用户可以交换信息。 不同点:①分布性:独立运行的多用户系统是多个用户同时在一台主机上运行多道程序,而单用户机器组成的计算机网络是通过通信线路将地理上分散的多台计算机连接在一起;②自治性:前者中所有用户共享同一CPU、内存、盘空间等资源,有统一任务调度,而后者共享不同计算机上的资源,松散耦合,不具备整个系统统一任务调度;③体系结构:前者是单机系统,后者是多机系统;④通信方式:前者中进程通过共享内存、消息传递等进行通信,后者通过网络互联协议实现数据通信和资源共享目的;⑤容错性:前者中某一部件出现故障将影响整个系统,而后者不受影响,可靠性更高;⑥并行性:前者只能实现并发计算,而后者可以实现并行计算。 1.5 列出Linux系统的主要特点。 答:Linux系统具有一系列显著特点,包括:与UNIX系统兼容;自由软件和源码公开;性能高和安全性强;便于定制和再开发;互操作性强;全面的多任务和真正的64位操作系统。 1.6 解释核心版本和发行版本的含义。Linux 2.1.1版和2.2.1版中,哪一个版本是稳定的? 答:核心版本主要是Linux的内核,由Linus等人在不断地开发和推出新的内核。Linux内核的官方版本由Linus Torvalds本人维护着。发行版本是各个公司推出的版本,它们与核心版本是各自独立发展的。发行版本通常内附有一个核心源码,以及很多针对不同硬件设备的核心映像。所以发行版本是一些基于Linux核心的软件包。 核心版本的序号由三部分数字构成:major.minor.patchlevel。Linux 2.1.1版的次版本号为奇数,不一定很稳定,相当于测试版;而Linux 2.2.1版的次版本号为偶数,是稳定的版本。 1.7 某用户的硬盘空间是10GB,内存是256MB。他想安装普华LinuxV4.0系统,是否可以? 答:不行。因为该计算机的内存空间和硬盘空间配置不满足普华Linux桌面版V4.0的基本需求(最小内存为1GB,最少15.4GB自由硬盘空间,建议20GB以上)。 1.8 安装Linux系统之前,需要做哪几方面的准备工作? 答:比较重要的准备工作有: 备份数据、硬件检查、准备硬盘分区等。 1.9 普华Linux的主要安装过程是什么? 答:将安装光盘放入光驱中,系统将被自动引导。主要安装过程是:语言选择,许可协议,选择安装模式,磁盘分区,检查安装选项,安装系统,初始化设置。 1.10 什么是硬盘分区?一块硬盘上可以有几种类型的分区?各自可以有多少个?在它们上面能否安装Linux系统? 答:硬盘分区是对硬盘的一种格式化,格式化后才能使用硬盘保存各种信息。在创建分区时,就设置好硬盘的各项物理参数,指定硬盘主引导记录和引导记录备份的存放位置。另外,分区时必须把硬盘的主分区设定为活动分区,这样才能够通过硬盘启动系统。 硬盘上的分区有三种类型: 主分区、扩展分区和逻辑分区。 一个硬盘最多只能有4个主分区;扩展分区可以有1个;扩展分区中可以划分出多个逻辑分区(事实上只能建立20多个)。 Linux既可以安装在主分区上,也可以安装在逻辑分区上,但在扩展分区上不能直接安装。 1.11 多启动系统与虚拟机系统有何异同?利用VMWare安装Linux的基本步骤是什么? 答:多启动系统:一台机器上同时存在多个操作系统,每个操作系统单独占用硬盘的一个分区,每一时刻只能运行一个系统,在系统切换时需要重新启动机器。 虚拟机系统:在一台机器上安装多个操作系统,它们在主系统(如Windows)的平台上同时运行,就像标准Windows应用程序那样切换,而且每个操作系统都可以进行虚拟分区、配置而不影响真实硬盘的数据。 利用VMWare安装Linux的基本步骤:下载并安装VMWare,创建虚拟机;安装Linux操作系统;安装VMWare Tools。 1.12 X Window的体系结构包括哪两部分? 答:X Window的体系结构包括两个部分: 客户-服务器模型和X协议。 1.13 系统设置的主要功能是什么?访问它的方法是怎样的? 答:系统设置是普华Linux V4.0提供的一个集成的图形化配置环境。在系统设置中,几乎能找到所有的系统配置和管理工具。它可以方便有效地进行如下几类操作: 查看系统信息,执行系统管理任务。配置系统中的基本硬件设备。定制个性化的桌面环境。管理鼠标、键盘的定制。访问系统设置,可在系统主菜单中选择“程序”→“设置”→“系统设置”。 1.14 KDE桌面环境由哪几部分组成? 答:KDE桌面环境由面板和桌面两部分组成。 1) 面板。屏幕底部是面板,也称K面板。可以从这里启动应用程序和在桌面上切换。它比Windows 7任务栏的配置更灵活,功能更强。面板包括系统主菜单按钮、经常使用的应用程序、桌面小程序图标,以及显示当前运行应用程序的任务条。 2) 桌面。屏幕中间的部分是KDE桌面,上面放置了一些常用的应用程序和文件的图标,在上面双击鼠标左键可运行相应程序或打开文件,也可以拖动它们,改变其位置,或者添加/删除桌面图标。 1.15 试配置所用的显示器。 答:(上机题)配置所用的显示器的基本步骤是:单击屏幕左下角的“开始”按钮,选择“程序”→“设置”→“系统设置”,弹出“系统设置”窗口,双击“硬件”栏中的“显示和监控”。然后在打开的显示配置界面上,在“分辨率”栏中用滑动条设置屏幕分辨率,像素范围从640×480到1920×1080。通常可选择1024×768;“方向”选择“普通”即可。在“刷新率”下拉列表中设定显示器的刷新频率,通常选择“自动”即可。配置完成后单击“应用”按钮。 思考题22.1 简述Linux命令的一般格式。 答:Linux命令的一般格式是: 命令名[选项][参数]… 2.2 请说明下述命令的功能:date,cd,cp,pwd,rm,mkdir,echo,who,ls,cat,more,man。 答:date命令用于在屏幕上显示或设置系统的日期和时间。 cd命令改变工作目录。 cp命令将源文件或目录复制到目标文件或目录中。 pwd命令显示出当前目录的路径。 rm命令可以删除文件或目录。 mkdir命令用来创建目录。 echo命令可以将命令行中的参数显示到标准输出(即屏幕)上。 who命令将列出所有正在使用系统的用户、所用终端名和注册到系统的时间。 ls命令列出指定目录的内容。 cat命令连接文件并打印到标准输出设备上。cat经常用来显示文件的内容。 more命令显示文件内容,每次显示一屏。 man命令格式化并显示某一命令的联机帮助手册页。 2.3 公元2049年的元旦是星期几? 答:运行命令:cal 1 2049 或 cal Jan 2049 从显示结果可知,2049年的元旦是星期五。 2.4 什么是文件?Linux下主要有哪些不同种类的文件? 答:文件(File)是被命名的相关信息的集合体。它通常存放在外存(如磁盘、光盘)上,可以作为一个独立单位存放和实施相应的操作(如打开、关闭、读、写等)。 Linux系统中主要有以下类型的文件: 普通文件、目录文件、特别文件以及符号链接文件。 2.5 确定当前工作目录是什么?把工作目录改到父目录上,然后用长格式列出其中所有的内容。 答:(上机做)执行命令:pwd 在屏幕上显示出当前工作目录的绝对路径名。 然后依次执行命令: cd .. ls -lai 2.6 在所用的Linux系统上,根目录下含有哪些内容?各自的功能是什么? 答:执行命令:cd / 将当前目录改到根目录 ls -l 列出它的清单 上机操作并参照本教材8.3.3节相关内容,阐述根目录下各目录的基本功能。 2.7 说出下列每一项信息各对应哪一类文件: (1)drwxr-xr-x (2)/bin (3)/etc/passwd (4)brw-rw-rw- (5)/dev/fd0 (6)/usr/lib (7)-rwx--x—x 答:(1)目录文件 (2)目录文件(其中包含Linux命令)(3) 普通文件(密码文件)(4) 块设备文件(5)块设备(软盘)文件 (6)目录文件,其中包含用户可共享的库文件 (7) 普通文件(可执行文件) 2.8 要想改变目录列表中下面三部分的内容,应该分别用什么命令? (1)-rwxr--r-- (2)N (3)…ABC 答:(1)使用chmod命令改变相应文件或目录的存取权限。 (2)使用ln命令可以增加指定文件的链接数,使用rm删除文件,可以减少相应文件的链接数。 (3)使用mv命令可以对指定文件或目录重新命名。 2.9 请给出下列命令执行的结果: (1)cd (2)cd .. (3)cd .. / .. (4)cd / 答:(1) cd 将当前目录改到用户主目录。 (2) cd .. 将当前目录向上移一级(即父目录)。 (3) cd .. / .. 将当前目录向上移动两级。 (4) cd / 将当前目录改到根目录。 2.10 cp,copy和mv 命令有何异同? 答:cp命令复制一个文件,而原文件保持不变,这样文件个数就增加了;mv命令将文件从一个目录移到另一个目录中,该文件就从原目录中消失,文件个数不变。 不能直接用copy作为复制文件的命令。因为Linux系统提供的众多命令都是有一定规则和限制的,cp是copy的缩写,是Linux默认的复制文件的命令,而copy并不是Linux的合法命令。 2.11 用什么命令能把两个文件合并成一个文件? 答:使用cat命令,例如:cat file1 file2 >file3 将文件file1和file2合并后放入file3中。 2.12 如何确定系统中是否有ps命令?如果有,它的功能是什么? 答:可以使用man ps 命令。如果系统中有ps命令,将显示ps命令的联机帮助手册页,列出有关该命令的完整说明;否则,将显示出错信息。 ps命令的功能是查看当前系统中运行的进程信息。 2.13 要确定在文件ABC中是否含有表示星期六或者星期日字符的行,应使用什么命令? 答:grep ‘Saturday|Sunday’ ABC 或者 grep -i ‘saturday|sunday’ ABC 2.14 如何对文件ABC分别按字典顺序、月份顺序、算术值进行排序? 答:按字典顺序排序 sort -d ABC 按月份顺序排序 sort --M ABC 按算术值排序 sort –n ABC 2.15 目录ABC下有两个子目录a1,b2,以及5个普通文件。如果想删除ABC目录,应使用什么命令? 答:(1)最简单,但是风险较大的方法:rm -r ABC (2)如果5个普通文件分别在子目录a1和b2之下,则可以使用以下命令: cd ABC/a1 rm * cd ../b2 rm * cd ../.. rmdir -p ABC (3)如果5个普通文件并未全在两个子目录之下,则可以使用以下命令: cd ABC rm -r * cd .. rmdir ABC 2.16 如何用一个命令行统计给定目录中有多少个子目录? 答:设给定目录名为DIR,则可以使用以下命令行: ls -ld DIR|wc -l 2.17 类似于DOS下的dir,del,type命令的Linux命令各是什么? 答:分别是:ls ,rm和cat。 2.18 试说明find,tee,gzip命令的功能。 答:分别使用以下命令: man find 显示该命令的功能是:查找Linux系统上的文件或目录。 man tee 显示该命令的功能是:从标准输入设备读取数据,将其输出到标准输出设备,同时保存到指定的文件中。 man gzip 显示该命令的功能是:对文件进行压缩和解压缩。 思考题3 3.1 进入和退出vi的方法有哪些? 答:进入vi的方法:在系统提示符(设为$ )下输入命令vi和想要编辑(建立)的文件名,便可进入vi,如:$ vi filename 退出vi的方法: (1) :wq 把编辑缓冲区的内容写到你编辑的文件中,退出编辑器,回到 shell下。 (其操作过程是,先输入冒号“: ”,再输入命令wq。以下命令操作相同。) (2) :ZZ(大写字母ZZ) 仅当做过修改时才将缓冲区内容写到文件上。 (3) :x 与:ZZ相同。 (4) :q! 强行退出vi。感叹号(!)告诉vi,无条件退出,丢弃缓冲区内容。 3.2 vi编辑器的工作方式有哪些?相互间如何转换? 答:vi编辑器有三种工作方式: 命令方式、插入方式和ex转义方式。 ●Shell命令→vi的命令方式:输入命令vi进入编辑器时,就处于vi的命令方式。 ●vi的命令方式→Shell命令:在vi的命令方式下使用退出命令,可以返回shell命令方式。 ●vi命令方式→插入方式:通过输入vi的插入命令(i)、附加命令(a)、打开命令(o)、替换命令(s)、修改命令(c)或取代命令(r)可以从命令方式进入到插入方式。 ●插入方式→vi命令方式:由插入方式回到命令方式的办法是按Esc键(通常在键盘的左上角)。 ●vi的命令方式→Ex转义方式:在vi的命令方式下,输入一个冒号(:),就进入Ex转义方式。 ●Ex转义方式→vi的命令方式:转义命令执行后,自动回到vi命令方式。 3.3 建立一个文本文件,如会议通知。 (1)建立文件notes,并统计其大小。 (2)重新编辑文件notes,加上一个适当的标题。 (3)修改notes中开会的时间和地点。 (4)删除文件中第3行,然后予以恢复。 答:上机题。体会vi编辑器的工作方式及相互转换,熟悉基本命令的使用。可参照以下步骤做: (1)进入vi ,建立一个空文件notes; (2)进入插入方式,编辑一个会议通知; (3)返回vi命令方式,保存编辑的内容并退出vi; (4)在shell命令方式下,执行wc命令,统计文件notes的大小; (5)利用vi,重新编辑文件notes,加上一个会议通知的标题; (6)保存编辑内容并退出vi,利用cat命令查看该文件的内容; (7)重新编辑文件notes,修改其中开会的时间和地点; (8)保存内容并退出vi,然后利用cat命令查看该文件的内容,注意内容的变化; (9)重新编辑该文件,利用文本删除命令删除其中的第3行;接着分别利用复原命令u和U恢复删除的内容。注意各个命令执行后屏幕显示内容的变化。从中体会各命令的功能。3.4 建立一个文本文件,将光标移至第5行上。分别利用c,C和cc命令进行修改。 答:上机题。体会在vi编辑方式下,光标移动的方式和不同修改命令的功能。注意各命令的使用方式和光标位置的移动。 3.5 在vi之下,上、下、左、右移动光标的方式有哪些? 答:参照本教材P78的图3-2解答。 3.6 解释下述vi命令的功能: 20G 18 | dM 6H d4B x cw 10cc 3rk 5s 7S >8M /this ?abc?-5 mg g/int/p 答:20G 光标移至第20行的开头。 18 | 光标移至当前行的第18列上。 dM 删除从当前行至屏幕中间行的所有行 6H 将光标移到距离屏幕顶部5行的行首 d4B 从光标位置反向删除4个词(包括光标所在词)。 x 删除光标所在的字符。 cw 将光标所在字符至词尾删除,然后用新输入的文本代替。 10cc 先删除光标所在行及其下面9行(共10行),然后以新输入的文本代替。 3rk 表示从光标位置开始向右共有3个字符被k替代。 5s 光标所在字符及其后的4个字符(共5个字符)被新输入的字符序列替代。 7S 当前行及其下面6行(共7行)被新输入的正文替换。 >8M 将当前行和屏幕中间行之间各行向右移动8个字符 /this 从光标所在行开始向前查找字符串“this”,找到后就做上标记。 ?abc?-5 从光标所在行开始向后查找字符串“abc”,光标停在首次找到行之前的倒数第5行的行首,即行号是(匹配行号-5)。 mg 在光标所在位置做上标记g,但屏幕上并不显示 “ g ”。 g/int/p 在屏幕上显示当前所编辑的文件中所有包含字符串“int”的行。 3.7 如果希望进入vi后光标位于文件的第10行上,应输入什么命令? 答:设要编辑的文件名是abc,且该文件大于10行。在shell提示符后输入以下命令: vi +10 abc 3.8 不管文件中某一行被编辑了多少次,总能把它恢复成被编辑之前的样子,应使用什么命令? 答:使用U(大写字母)命令就能把当前行恢复成被编辑之前的样子。 3.9 要将编辑文件中所有的字符串s1全部用字符串s2替换,包括在一行中多次出现的字符串,应使用什么命令格式? 答:可以使用的命令格式是:g/s1/s//s2/g 思考题4 4.1 常用的shell有哪几种?Linux系统中默认的shell是什么? 答:常用的有: Bourne shell(简称sh)、C shell(简称csh)、Korn shell(简称ksh)和Bourne Again shell(简称bash)。 Linux系统中默认的shell是bash。 4.2 简述shell的主要特点。bash有什么特点? 答:shell具有如下主要特点: (1)命令组合,构成新的命令; (2)提供了文件名扩展字符(通配符,如* 、 ?、 [ ]); (3) 可以直接使用shell的内置命令,而不需创建新的进程; (4)允许灵活地使用数据流,提供通配符、输入/输出重定向、管道线等机制,方便了模式匹配、I/O处理和数据传输; (5) 结构化的程序模块,提供了顺序流程控制、条件控制、循环控制等; (6)提供了在后台(&)执行命令的能力; (7)提供了可配置的环境,允许创建和修改命令、命令提示符和其他的系统行为; (8)提供了一个高级的命令语言,能创建从简单到复杂的程序。这些shell程序称为shell脚本。 bash是Linux系统默认的一个shell。bash不但与Bourne shell兼容,还继承了C shell,Korn shell等下述优点: ① 命令行历史。使用命令行历史特性,可以恢复以前输入的命令。 ② 命令行编辑。可以利用编辑器(如vi)修改已经输入的命令。 ③ 命令补全。能在输入文件名的一部分之后,由系统自动填入剩余的部分。 ④ 别名扩展。能建立代表某些命令的名字。 4.3 执行shell脚本的方式主要是哪些? 答:执行shell脚本的常用方式基本上有两种: (1) 以脚本名作为参数。其一般形式是: $ bash 脚本名 [参数] (2) 将shell脚本的权限设置为可执行,然后在提示符下直接执行它。 例如,设abcd是shell脚本文件,执行步骤如下: $ chmod a+x abcd $ PATH=$PATH:· $ abcd 或者 $ · /abcd 4.4 将主提示符改为用户的主目录名,并予以输出。 答:$ PS1="$HOME> " echo $PS1 $ export PS1 4.5 说明三种引号的作用有什么区别。 答:在shell中引号分为三种: 双引号、单引号和倒引号。 (1)由双引号括起来的字符(除$、倒引号ˋ 和转义字符\外)均作为普通字符对待,而那三个字符仍保留其特殊功能。 (2)由单引号括起来的所有字符都作为普通字符出现。 (3)用倒引号括起来的字符串被shell解释为命令行,在执行时,shell会先执行该命令行,并以执行结果取代用倒引号括起的部分。另外,可以将一个命令的执行结果赋给变量,即命令替换。 4.6 利用变量赋值方式,将字符串DOS file c : > \$student\*显示出来。 答:$ string=’ DOS file c:>\$student\*’ $ echo $string 4.7 显示环境变量的设置情况,说明各自的意义。 答:执行env命令,在屏幕上将会显示出当前环境下的所有环境变量及其值。读者可以依据所用机器上实际显示的信息,进行说明。常用的环境变量有以下几个。 (1) HOME: 用户主目录的全路径名。 (2) LOGNAME: 即用户注册名,由Linux自动设置。 (3) PWD: 当前工作目录的路径。 (4) PATH: shell查找命令的路径(目录)列表,各个目录用冒号(: )隔开。 (5) PS1: shell的主提示符。用户可以设置PS1的值。 ⑹ SHELL: 当前使用的shell。通常,它的值是/bin/bash。 ⑺TERM: 终端类型。 (8) MAIL: 系统信箱的路径。 4.8 分析下列shell脚本的功能: count=$# cmd=echo while [ $count -gt 0 ] do cmd= "$cmd \$$count " count= ` expr $count - 1 ` done eval $cmd 答:该脚本的功能是:逆向输出用户在命令行上提供的各个参数。例如,设该脚本名是ABC,执行该脚本的命令行是:$ ABC apple big cat dog 则结果输出是:dog cat big apple 4.9 编写一个shell脚本,它把第二个位置参数及其以后的各个参数指定的文件复制到第一个位置参数指定的目录中。 答:上机实践题。参考脚本如下: #!/bin/bash
count=$# if [ -d "$1 " ] then n=2 dir=$1 while [ $n –le $count ] do if [ -f $2 ] then cp $2 $dir else echo "$2 is not an ordinary file. " fi shift ((n=n+1)) done else echo "$1 is not a directory. " fi
4.10 编写一个shell脚本,显示当天日期,查找给定的某用户是否在系统中工作。如果在系统中,就发一个问候给他。 答:上机实践题。参考脚本如下: #!/bin/bash
date echo "Input a user name for searching " read name if who|grep "$name " then echo "Lucky, there is $name in my system now. " echo "Hi,how are you! " > /var/spool/mail/$name else echo "Unlucky, there is not $name in my system. " fi
4.11 打印给定目录下的某些文件,由第一个参数指出文件所在的目录,其余参数是要打印的文件名。 答:上机实践题。参考脚本如下: #!/bin/bash
count=$# if [ -d "$1 " ] then cd $1 n=2 while[ $n –le $count ] do if [ -f $2 ] then cat $2 else echo "Sorry, cannot display $2. " fi shift ((n=n+1)) done else echo "$1 is not a directory. " fi
4.12 利用for循环将当前目录下的 .c文件移到指定的目录下,并按文件大小排序,显示移动后指定目录的内容。 答:上机实践题。参考脚本如下: #!/bin/bash
echo "Input the name of a directory. " read dir if [ -d $dir ] then for name in *.c do mv $name dir done ls -S dir ls dir else echo "Sorry!$dir is not a directory. " fi
4.13 利用数组形式存放10个城市的名字,然后利用for循环把它们打印出来。 答:上机实践题。参考脚本如下: #!/bin/bash city=( Beijing Shanghai Tianjin Guangzhou Chongqing Hangzhou Nanjing Shenyang Taiyuan Jinan) for i in ${city[*]} do echo $i done
4.14 编写一个shell脚本,求费波纳奇数列的前10项及总和。 答:上机实践题。参考脚本如下: #!/bin/bash fib[1]=1 fib[2]=1 n=3 ((sum= fib[1]+fib[2])) while [ $n –lt 10 ] do ((fib[n]=fib[n-1]+fib[n-2])) ((fib[n+1]=fib[n-1]+fib[n])) ((sum=sum+fib[n]+fib[n+1])) ((n=n+2)) done for ((i=1;i |
CopyRight 2018-2019 实验室设备网 版权所有 |