课后习题

  • 第一章
  • 第二章
  • 第三章
  • 第四章
  • 第五章
  • 第六章

第一章

  • 1.1 什么是软件?软件分为哪几种?
软件是相对硬件而言的,它是与数据处理系统操作有关的计算机程序和相关数据等的总称。
软件通常可分为三大类,即系统软件、应用软件和支撑软件。
  • 1.5 Linux系统的主要特点
Linux系统具有一系列显著特点,包括:与UNIX系统兼容;自由软件和源码公开;
性能高和安全性强;便于定制和再开发;互操作性强;全面的多任务和真正的64位操作系统。

第二章

  • 2.4 什么是文件?Linux下主要有哪些不同种类的文件?
文件:文件是指文件系统中存储数据的一个命名的对象。
不同种类的文件:普通文件、目录文件、设备文件和符号链接文件。
  • 2.5 确定当前工作目录是什么?把工作目录改到父目录上,然后用长格式列出其中所有的内容?
确定当前工作目录:pwd;
把工作目录改到父目录:cd /
用长格式列出其中所有的内容:ls -l
  • 2.10 cp,copy和mv 命令有何异同?
cp:cp命令将源文件或者目录复制到目标文件或目录中,而源文件或目录依旧存在。
mv:mv命令对文件或目录重新命名或者将文件从一个目录移到另一个目录中,原目录下的文件消失。
copy:在Linux的默认命令中没有copy命令。
  • 2.11 用什么命令能把两个文件合并成一个文件?
使用cat命令,例如:cat file1 file2 >file3 
用cat命令将文件file1和文件file2合并后通过输出重定向符“>”将他们放入文件file3中。

第三章

  • 3.1 进入和退出vi的方法有哪些?
进入vi的方法:

在系统提示符(设为$ )下输入命令vi和想要编辑(建立)的文件名,便可进入vi,如:$ vi filename

退出vi的方法:

(1:wq 把编辑缓冲区的内容写到你编辑的文件中,退出编辑器,回到 shell下。

(其操作过程是,先输入冒号“: ”,再输入命令wq。以下命令操作相同。)

(2:ZZ(大写字母ZZ) 仅当做过修改时才将缓冲区内容写到文件上。

(3:x 与:ZZ相同。

(4:q! 强行退出vi。感叹号(!)告诉vi,无条件退出,丢弃缓冲区内容。
  • 3.7 如果希望进入vi后光标位于文件的第10行上,应输入什么命令?
设要编辑的文件名是abc,且该文件大于10行。在shell提示符后输入以下命令:
vi +10 abc

第四章

  • 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等下述优点:

1.命令行历史。使用命令行历史特性,可以恢复以前输入的命令。

2.命令行编辑。可以利用编辑器(如vi)修改已经输入的命令。

3.命令补全。能在输入文件名的一部分之后,由系统自动填入剩余的部分。

4.别名扩展。能建立代表某些命令的名字。
  • 4.5 说明三种引号的作用有什么区别。
在shell中引号分为三种: 双引号、单引号和倒引号。

(1)由双引号括起来的字符(除$、倒引号ˋ 和转义字符\外)均作为普通字符对待,而那三个字符仍保留其特殊功能。

(2)由单引号括起来的所有字符都作为普通字符出现。

(3)用倒引号括起来的字符串被shell解释为命令行,在执行时,shell会先执行该命令行,并以执行结果取代用倒引号括起的部分。另外,可以将一个命令的执行结果赋给变量,即命令替换。
  • 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

第五章

  • 5.1 说明Linux系统的体系结构分为哪几层。
Linux系统的体系结构大致可分为三层:

1.靠近硬件的底层是内核,即Linux操作系统常驻内存部分。

2.中间层是内核之外的shell层,即操作系统的系统程序部分。

3.最高层是应用层,即用户程序部分。

第六章

  • gcc编译过程一般分为哪几个阶段?各阶段的主要工作是什么?
gcc编译过程可以分为4个阶段,包括预处理(Preprocessing)、编译(Compiling)、汇编(Assembling)和连接(Linking)。

1.预处理程序读取C语言源文件,对其中以“#”开头的指令(伪指令)和特殊符号进行处理。

2.编译程序对预处理之后的输出文件进行词法分析和语法分析,试图找出所有不符合语法规则的部分,并根据问题的大小做出不同处理。在确定各成分都符合语法规则后,将其“翻译”为功能等价的中间代码表示或者汇编代码。

3.汇编程序把汇编语言代码翻译成目标机器代码。

4.连接程序要解决外部符号访问地址问题,也就是将一个文件中引用的符号(如变量或函数调用)与该符号在另外一个文件中的定义连接起来,从而使有关的目标文件连成一个整体,最终成为可被操作系统执行的可执行文件。

更多推荐

Linux教程(第5版)习题部分习题及答案