linux系统及编程基础课后答案(3)

2019-01-19 15:52

步。最后别忘了在工具—-帐户里选中此邮箱并且右键属性设置其smtp服务器需要验证,不然会导致发邮件发不出去。

8. 练习FTP服务器的配置过程,学会字符界面下ftp命令连接服务器上下载文件的基本使用方法。

答:以通过ftp命令连接ftp.dlpu.edu.cn为例:先在cmd中输入ftp进入到ftp命令行状态。输入open ftp.dlpu.edu.cn回车连接上服务器,在提示下输入用户名anonymous,密码随便,成功后输入dir查看远程服务器上的文件目录,用cd 目录名称的方式进入到下一级目录,用cd ..回到上一层目录,用pwd查看当前在服务器的那个目录下,用lcd查看本地当前目录和改变本地目录。

9. 查找资料了解什么是LAMP服务器?它的需要哪些程序?

答:Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案。要安装LAMP服务器步骤是要依次安装apache、mysql和PHP。

第6章 习题答案

1.什么是shell?Linux的shell主要有哪几种类型? 答:

Shell是一个用户接口,是一个命令解释器,除此之外,shell命令本身还可以作为程序设计语言,将多个shell命令组合起来,编写能实现系统或用户所需功能的程序。

Shell类型:bash,bsh,csh,tcsh,ksh,ash,zsh

2.如何编辑一个shell脚本、shell脚本的执行方式有哪些? 答:

Vi+shellscriptname

执行方式:(1)为脚本文件加上可执行权限,然后在命令行直接输入shell脚本文件名执行。 (2)sh shell脚本名 (3). shell脚本名 3.shell变量都有哪些? 答:

在shell编程中可以使用四种变量:用户自定义变量、环境变量、位置变量和特殊变量。 4.shell中都有哪些引号,他们之间的区别是什么? 答:

在shell中引号分为三种:单引号,双引号和反引号。

单引号 (?) 由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后也会失去原有意义,而只作为普通字符解释。

双引号(―)由双引号括起来的字符,除“$”、“\\”、“‘”、和“‖”这几个字符仍是特殊字符并保留其特殊功能外,其余字符作为普通字符对待。

反引号(`)反引号括起来的字符串被shell解释为命令,在执行时,shell首先执行该命令,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。

5.一个shell脚本,内容如下: #!/bin/bash

# finduser----寻找是否有第一个参数指定的用户登录 if [ $# -ne 1 ]

then

echo usage: finduser username >&2 exit 1 fi

who | grep $1 验证该脚本执行结果。 答:

6.一个shell脚本内容如下: echo “enter username: ” read user

until who | grep “$user” > /dev/null do sleep 30 done

验证该脚本执行结果。 答:

7.一个shell脚本,内容如下: #!/bin/bash if [ $# -ne 2 ] then

echo “usage: $0 mdays size ” 1>&2 exit 1 fi

if [ $1 –lt 0 –o $1 –gt 30 ] then

echo “mdays is out of range” exit 2 fi

if [ $2 –le 20 ] then

echo “size is out of range” exit 3 fi

find / -xdev –mtime $1 –size +$2 –print 验证该脚本执行结果。 答:

从根目录开始查找所有$1小时前修改,大小大于$2块的文件。 8.一个shell脚本,内容如下:

echo –n “which color do you like?” read color case “$color” in [Bb]l??)

echo I feel $color echo The sky is $color;; [Gg]ree*)

echo $color is for trees echo $color is for seasick;; red | orange)

echo $color is very warm!;; *)

echo no such color as $color;; esac

echo “out of case” 验证该脚本执行结果。 答:

9.设计一个shell脚本:求命令行上所有整数和。 答: sum=0

while [ $# != 0 ] do

let sum=sum+$1 shift done

echo “the sum of arguments is $sum”

10.设计一个shell脚本:判断当前工作目录下所有的文件类型,如果是目录显示目录名,如果是文件查看文件内容,如果都不是,显示提示信息。

答:

for file in ./* do

if [ -d “$file” ] then

ls “$file”

elif [ -f “file” ] then

more “$file” else

echo “$fiel is not a directory or a regular file.s” done

第7章 习题答案

1.gcc编译过程一般分为哪几个阶段?各阶段的主要工作是什么?

答:gcc编译过程一般分为预处理、编译、汇编、链接四个阶段,各阶段的主要工作如下: (1)预处理阶段

在该阶段,编译器将上述代码中的stdio.h编译进来。GCC首先调用cpp进行预处理,根据以字符#开头的命令修改原始的C程序。如hello.c中#include 指令告诉预处理器读系统头文件stdio.h的内容,并把它直接插入到程序文本中去。结果就得到经过编译预处理的源代码hello.i。

但实际工作中通常不用专门生成这种文件,因为基本上用不到。若非要生成这种文件不可,可以利用下面的示例命令。

$gcc -E hello.c -o hello.i (2)编译阶段

GCC调用cc1检查代码的规范性,是否有语法错误等,以确定代码实际要做的工作,在检查无误后,把代码翻译成汇编语言,生成汇编处理后的汇编代码hello.s。这个阶段对应的GCC命令如下所示。 $gcc -S hello.i -o hello.s

汇编语言是非常有用的,它为不同高级语言不同编译器提供了通用的语言。如:C编译器和Fortran编译器产生的输出文件用的都是一样的汇编语言。 (3)汇编阶段

GCC调用as把编译阶段生成的hello.s文件转成编译后的目标文件hello.o,但hello.c中所引用的其他文件中函数(如printf)的内存位置尚未定义。这个阶段对应的GCC命令如下所示: $gcc -c hello.s -o hello.o (4)链接阶段

GCC调用ld将程序的目标文件与所需的所有附加的目标文件连接起来,最终生成可执行文件。如GCC找到hello.c所调用的函数printf函数库所在位置/user/lib,把函数的实现链接进来,生成最终的可执行文件hello。可以利用下面的示例命令完成。 $gcc hello.o -o hello

如果我们不想生成中间的各类型文件,可用如下命令由源文件直接编译链接成可执行文件。

$gcc hello.c -o hello 2.简述GNU gdb的功能。

答:gdb是Linux系统中一个功能强大的GNU调试程序,它可以调试C和C++程序,使程序开发者在程序运行时观察程序的内部结构和内存的使用情况。gdb提供如下功能: (1)运行程序,设置所有的能影响程序运行的参数和环境; (2)控制程序在指定的条件下停止运行; (3)当程序停止时,可以检查程序的状态; (4)修改程序的错误,并重新运行程序; (5)动态监视程序中变量的值;

(6)可以单步逐行执行代码,观察程序的运行状态; (7)分析崩溃程序产生的core文件。 3.用gdb调试下面的程序。 #include #include #include main () {

char my_string[] = \ my_print (my_string); my_print2 (my_string); }

my_print (char *string) {

printf (\}

my_print2 (char *string) {

char *string2; int size, i;

size = strlen (string);

string2 = (char *) malloc (size + 1); for (i = 0; i < size; i++) string2[size - i] = string[i]; string2[size+1] = `\\0';

printf (\}

答:gcc -g -o greeting greeting.c

这个程序执行时显示结果: The string is hello there The string printed backward is

输出的第一行是正确的, 但第二行打印出的东西并不是我们所期望的。我们所设想的输出应该是: The string printed backward is ereht olleh。

由于某些原因, my_print2 函数没有正常工作。用gdb 看调试程序, 先键入如下命令:


linux系统及编程基础课后答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:生产与运营管理A卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: