第7章
1. A 2. B 3. A 4. C 5. B 6. B 7. D 8. D 9. C
10. tar -czvf hello.tar.gz hello.c hello.c.bz5 cp hello.tar.gz /backup tar xzvf hello.tar.gz
11. Stu用户的权限:读;gra组权限:无;其他用户权限:读、写。
第8章
1.
守护进程(Daemon)是指在后台运行而没有终端,或者登录shell与之结合在一起的进程。Linux系统中有许多标准的守护进程,一种一些周期性地运行来完成特定的任务(例如:crond),而其余则连续地运行,等待系统中发生的某些特定事件(例如:xinetd和lpd)。 2. B 3. B。 4. C 5. D 6. D 7. B 8. D 9. crontab -e
编辑crontab文件: 50 16 * * * rm -rf /abc/*
00 8-18/1 * * * tail -5 /xyz/x1 >>/backup/bak01.txt 50 17 * * 1 tar czvf backup.tar.gz /data 55 17 * * * umount /dev/sdc
第9章
1. B 2. C 3. 假设本地光盘作为安装源
1)挂载本地光盘 mount -t iso9660 /dev/sr0 /mnt/cdrom 2) 在目录“/etc/yum.repos.d/”创建文件“.repo”。 3) 配置本地yum源。
[root@fanhui ~]# cd /etc/yum.repos.d #进入yum配置目录 [root@fanhui yum.repos.d]# touch CentOS7.repo #建立yum配置文件
[root@fanhui yum.repos.d]# vim CentOS7.repo #编辑配置文件,添加以下内容 [CentOS-yum]
name=CentOS7 #自定义名称 baseurl=file:///mnt #本地光盘挂载目录
enabled=1 #启用yum源,0不启用,1启用
gpgcheck=0 #检查GPG-KEY(加密算法),0位不检查,1为检查 4.
采用使用软件包方式安装软件时,可以通过rpm工具安装,由于安装时依赖软件包较多,需要解决依赖关系,不太方便。所以我们推荐使用yum工具,实现自动下载软件包,自动解决依赖关系。
第10章
1. 主机地址、网络地址。 2. 通信协议。 3. ping。 4. netstat 5.
Master机器配置如下:
ip address add 192.168.10.10/26 dev ens33 ip route add default via 192.168.10.1 hostname master
为了让修改永久生效,需要修改网卡接口配置文件/etc/sysconfig/network-scripts/目录下,名称为ifcfg-ens33的文件,在此文件中增加IP地址、子网掩码和默认网关,还需要修改/etc/hostname、/etc/resolv.conf方法文件。
Slaver1机器配置如下:
ip address add 192.168.10.20/26 dev ens33 ip route add default via 192.168.10.1 hostname slaver1
Slaver2机器配置如下:
ip address add 192.168.10.30/26 dev ens33 ip route add default via 192.168.10.1 hostname slaver2
在每个机器上执行以下操作,增加DNS服务器地址。 vim /etc/resolv.conf search xijing.edu.cn nameserver 218.30.19.40 nameserver 61.134.1.4 options rotate
options timeout:1 attempts:2
第11章
1. 插入模式、底行模式、命令模式 2.
(1) 命令模式。
命令模式是启动vi/vim后进入的工作模式,并可以转化为插入模式或者底行模式。在
命令模式下,从键盘上输入的任何字符都被当作命令来解释,而不会在屏幕上显示。如果输入的字符是合法的vi/vim命令,则vi/vim完成相应得动作,否则响铃告警。命令模式切换到插入模式只需键入相应的输入命令即可(如a、i),而要从插入模式切换到命令模式,则需在插入模式下键入ESC键。
(2) 插入模式 。
主要用于字符编辑。只有在该模式下,才可以做文字输入,按ESC键可回到命令模式。在命令模式下输入i(插入命令)、a(添加命令)等命令则进入插入模式。此后,输入的任何字符都被看作普通字符显示在屏幕上。
(3) 底行模式。
在命令模式下,按“:”键进入底行模式,此时vi会在屏幕的底部显示“:”作为底行模式的提示符,等待用户输入相关命令。命令执行完毕后,vi自动回到命令模式。
3. A。
4. 利用make工具,可以将大型开发项目分解成多个易于管理的模块。对于一个包含
几百个源文件的应用程序,使用make和makefile工具可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系,提高项目开发的效率。
5.
OBJS=prog.o code1.o code2.o CC=gcc
test:${ OBJS }
${ CC } –o test ${ OBJS }
prog.o:main.c a.h
${ CC } –c main.c –o prog.o
code1.o:2.c a.h b.h
${ CC } –c 2.c –o code1.o
Code2.o:3.c c.h b.h
${ CC } –c 3.c –o code2.o
clean:
第12章
1.
如果将字符串放到一对单引号之间,那么字符串中所有字符的特殊含义将被忽略。 双引号的引用与单引号基本相同,区别在于单引号会忽略其内的特殊字符(直接引用字符串),而双引号会对其内的“$”、“\\”、“`”这3种特殊字符先进行解释,并将以解释后的含义替换字符本身的含义后输出。
反引号的作用和用法与在双引号内的变量引用相似,在shell中会将反引号内的字符串视作命令来执行,并将执行后的结果输出。如果在反引号内的字符不能被识别,那么在输出时就是空值。
2. A、B、D、H。
3. A、D。
rm –f *.o
4. PATH=$PATH:/usr/games 5.
1)shell变量定义时需要指明变量的类型,默认所有的变量为字符串;C程序变量需要 在定义时明确指定类型,不同类型间需要做类型转换。
2)由于shell程序是逐行顺序解释执行的,函数定义必须写在函数调用的前面;而C
程序不必,在文件开头加上函数申明即可。
3)相同的地方。作为编程语言,都有逻辑控制结构,如if语句、switch语句、while
循环语句等。都有函数退出状态返回值。
总之,shell是脚本语言,C语言是高级语言;shell是解释执行,C是编译后执行。 6. #!/bin/bash sum=0
for((i=1;i<=100;i++)) do
[ `expr $i % 5` -eq 0 ] && continue #也可以是:[ $(($i % 5)) -eq 0 ] && continue
sum=`expr $sum + $i` #也可以:sum=$(($sum + $i))
done echo $sum 7. #!/bin/bash
find ~ -size -5 -type f -maxdepth 1|xargs tar zcvpf backup.tar.gz if [ $? -eq 0 ] then
echo “backup is completed” else
echo “backup is error,please check arguments” fi 8. #!/bin/sh cd ~ for file in *.c do
mainname=`basename $file .c` mv $file ${mainname}.cpp