5.赋予所有用户读和写backup.tar.gz文件的权限: 参考答案:
1.find /home –name .profile -exec rm{ } \\; 2.tar -xzvf test.tar.gz
3.rpm –Uvh wu-ftpd-2.6.2-8.i386.rpm
4.useradd –g stuff –G stuff -d /home/user2 -s /bin/bash user02 5.Chmod a+rw back.tar.gz
4. 叙述Linux如何使用Windows系统硬盘(设备名为/dev/hda3,分区类型为fat32或ext3,选其一)上的文件,如何实现开机自动挂载该硬盘分区。写出详细的步骤。(12分 每点2分)
答案以fat32为例:
(1) 用fdisk -l /dev/had 命令查看硬盘分区中情况及文件系统情况,决定要挂装Windows分区
(2) 建立挂装目录 mkdir /mnt/dos
(3) 挂装Windows系统 mount –t vfat /dev/had/ /mnt/dos (4) 浏览Windows文件系统 ls /mnt/dos (5) 卸载:umount /mnt/dos (6) 打开/etc/fstab 添加一行
/dev/hda3 /mnt/hd vfat defaults 0 0
5. Linux系统有几种类型文件?它们分别是什么?有哪些相同点和不同点? (8分) 答:3类。分别是普通文件,目录文件和设备文件。(3分) 相同是它们都是文件,都有一个文件名和i节点号。(2分)
不同点是,普通文件的内容为数据,目录文件的内容为目录项或文件名与i节点对应表,设备文件不占用磁盘空间,通过其i节点信息可建立与内核驱动程序的联系。(3分)
6. 综述Linux系统的文件权限及其管理。 (8分)
答:Linux用文件存取控制表来解决存取权限的控制问题。存取控制表以文件为单位,把用户按某种关系画分为若干组,同时规定每组用户的存取权限。每个文件都有一张存取控制表。在实现时,该表存放在文件说明中,也就是i节点的文件权限项。 (4分)
就某个文件而言,它只对三类用户(文件主,同组人,其它人)分配权限。权限的修改或分配可通过命令chmod来实现。当然chmod和chgrp等命令也有着权限控制作用,因为文件的主和组变了,它相应的权限也会随之改变。(4分)
7. 执行命令 ls –l 时,某显如(8分)
-rw-r--r-- 1 chris chris 207 jul 20 11:58 mydata (1)用户chris 对该文件具有什么权限?
(2)执行命令useradd Tom后,用户Tom对该文件具有什么权限? (3)如何使任何用户都可以读写执行该文件? (4)如何把该文件属主改为用户root ? 答:1 读写
2 只读
3 chmod 777 mydata 4 chown root mydata
8. 从内核实现的角度说明Linux进程共享文件的方式有哪几种?举例说明什么情况下会产生对应的共享情况? (5分)
答:进程通过多个file结构共享一个inode,进程共享一个file结构。
9. 某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决 方案: (13分)
(1)在下午5 :50删除/123目录下的全部子目录和全部文件;
(2)从早9:00~下午5:00每小时读取/456目录下x1文件中每行第一个域的全部数据加入到/bak目录下的bak01.txt文件内;
(3)每逢星期一下午4:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;
(4)在下午4:55将IDE接口的CD-ROM卸载(假设设备名为hdc); (5)在早晨8:30前开机后启动。 解决方案:
(1)用vi创建编辑一个名为prgx的crontab文件;(2分 ) (2)prgx文件的内容:
50 17 * * * rm -r /123/* (2分 )
0 9-17/1 * * * cut -f1 /456/x1 >;>; /bak/bak01.txt(2分 )
50 16 * * 1 tar zcvf backup.tar.gz /data (2分 )
55 16 * * * umount /dev/hdc (2分 )
(3)由超级用户登录,用crontab执行 prgx文件中的内容: root@xxx:#crontab prgx;
在每日早晨8:30之前开机后即可自动启动cronta(3分 )
10. 在所用的Linux系统上,根目录下有哪些内容?各自的功能是什么?(10分)
答: /root :root用户的home目录,/dev:设备文件,/media:媒体,/mnt:挂载,/usr:用户程序,/bin:系统应用程序,/user/bin:用户应用程序, /home:其他用户的家目录,/boot:启动文件,/lib:库文件。
第七章
1.编写shell程序,实现自动删除50个帐号的功能。帐号名为stud1至stud50。(10分) 答:1.#!/bin/bash 1分
2.i=1 1分 3.whlie [$ -le 50] 2分 4.do 1分 5.userdel -r stud${i} 3分 6.i=$(($i+1)) 1分 7.done 1分
2. 什么是位置变量?shell的变量类型有哪些种?(5分)
答:位置变量是指命令行上传递给程序的参数。1分
Shell变量可以分为:用户自定义变量、环境变量、位置变量、特殊变量(4分)
3. .水仙花数至少要三位数,下面请用bash shell求 100 到 999的水仙花数程序。10分
#!/bin/bash
for (( a=1; a<10; a++ )) do
for (( b=0; b<10; b++ )) do
for (( c=0; c<10; c++ )) do
number1=$((a*100+b*10+c)) number2=$((a**3+b**3+c**3))
if [ $number1 -eq $number2 ]; then echo \ fi done done done 10分
4. 使用for和while语句编写一个Shell程序,实现1-9的平方值。分别保存文件名为for.sh,while.sh。(10分)
#!/bin/bash
#this is a example for for 1' for num in 1 2 3 4 5 6 7 8 9 1' do
echo $num的平方: 1' espr $ num\\* $num 1' # { echo $num的平方:;expr $num\\* $num; } 1'
done (5')
#!/bin/bash
#this is a example for while 1' # num=1
while [ $num -le 9 ] 1' do
echo $num的平方 1' expr $num \\* $num 1' # { echo $num的平方:;expr $num\\* $num; } 1' expr $num=$num+1
done (5')
5. .编写一个shell脚本,能够显示下面序列的前25个数字。0,1,1,2,3,5,8,13…,前二个数字之和为第三个数字,即著名的Fibonacci序列。(10分)
#gedit shell.sh #!/bin/bash n=0
echo \ \m=1
echo \ \t=1 a=2
while [ $a -lt 25 ] do
t=$(expr $n + $m) echo \ \ a=$(expr $a + 1) n=$m m=$t done
# bash shell.sh
6. 编写一个Shell脚本,它能够显示下面序列的前10个数字:0,1,1,2,3,5,8,13,。。。(10分)
答案: a=0 b=1
echo –n $a,$b for ((i=0;i<8;i++)) do
c=$((a+b)) a=$b b=$c
echo –n,$c