福州大学linux复习.docx
《福州大学linux复习.docx》由会员分享,可在线阅读,更多相关《福州大学linux复习.docx(36页珍藏版)》请在冰豆网上搜索。
福州大学linux复习
shell编程时,注释符是#
$temp=’world’;echohello’$temp’
上述命令执行的结果为hello$temp。
如果计算机的内存为128MB,则SWAP分区(交换分区)的大小通常设定为256M。
常用的socket类型有两种:
流式socket(流式套接字,SOCK_STREAM),数据报式socket(数据报式套接字,SOCK_DGRAM)
将文件file1和文件file2连接成文件file3的命令是:
catfile1file2>file3
在shell编程时,如果将测试条件置于方括号内,应注意方括号两边必须有:
空格。
有时用户需要在一行给出多个shell命令,假定输入的命令都需要运行,则在shell提示符下输入命令时,可在命令之间加上符号;。
为了获得父进程的ID号,可是使用函数:
getppid()
在用bash命令调试shell程序时,为了将shell执行的每一个命令行都显示出来,应该使用bash的选项-v
在Linux下调试c程序时,在提示符(gdb)下输入b10表示:
在第10行设置断点。
在用vi编辑好文件后,为了将文件内容存入test..txt文件中并退出vi(开始进入vi时并未输入文件名),应在末行模式下键入:
wqtest.txt或者xtest.txt
Linux中常见的文本编辑器有vi和Emacs
为了将一个命令置于后台运行,需要在命令后面加上符号&
将命令“command”的标准输出重定向到文件“filename”中的方法是:
command>filename
在用vi编辑文件时,为了将文件内容存入test..txt文件中(但不退出vi),应在命令模式下键入:
wtest.txt
1.在创建Linux分区时,一定要创建(D)两个分区
A.FAT/NTFSB.FAT/SWAPC.NTFS/SWAPD.SWAP/根分区
3.当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么(B)
A.NIDB.PIDC.UIDD.CID
4.下面哪个命令是用来定义shell的全局变量(D)
A.exportfsB.aliasC.exportsD.export
5.哪个目录存放用户密码信息(B)
A./bootB./etcC./varD./dev
13.Linux启动的第一个进程init启动的第一个脚本程序是(B)。
A./etc/rc.d/init.dB./etc/rc.d/rc.sysinitC./etc/rc.d/rc5.dD./etc/rc.d/rc3.d
14.按下(A)键能终止当前运行的命令
A.Ctrl-CB.Ctrl-FC.Ctrl-BD.Ctrl-D
15.下面哪个命令用来启动XWindow(C)
A.runxB.StartxC.startXD.xwin
17.用"rm-i",系统会提示什么来让你确认(B)
A.命令行的每个选项B.是否真的删除C.是否有写的权限D.文件的位置
18.以下哪个命令可以终止一个用户的所有进程(D)
A.skillallB.skillC.killD.killall
19.在RedHatLinux9中,一般用(D)命令来查看网络接口的状态
A.pingB.ipconfigC.winipcfgDifconfig
20.vi中哪条命令是不保存强制退出(C)(第五章)
A.:
wqB.:
wq!
C.:
q!
D.:
quit
21.局域网的网络设备通常有(ABCDE)
A.交换机B.路由器C.网桥D.双绞线E.HUB
22.在下列分区中,Linux默认的分区是(B)
A.FAT32B.EXT3CFATDNTFS
23.若要将鼠标从VM中释放出来,可按(A)键来实现
A.Ctrl+AltB.Ctrl+Alt+DelC.Ctrl+Alt+EnterDCtrl+Enter
24.如果用户想对某一命令详细的了解,可用(C)
A.lsB.help(内部)C.man(列举的信息多)Ddir
26.在Linux系统中,以_文件的_方式访问设备。
28.Linux文件系统中每个文件用__i节点_____来标识。
32.安装Linux系统对硬盘分区时,必须有两种分区类型:
文件系统分区和交换分区。
33.编写的Shell程序运行前必须赋予该脚本文件__执行___权限。
一、选择题(单选题,每小题2分,共20分)
1.用户编写了一个文本文件a.txt,想将该文件名称改为txt.a,下列命令__D____可以实
现。
A.cda.txtxt.aB.echoa.txt>txt.a
C.rma.txttxt.aD.cata.txt>txt.a
3.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是___D__。
A.-mB.-dC.-fD.-p
4.下面关于i节点描述错误的是__A___。
A.i节点和文件是一一对应的
B.i节点能描述文件占用的块数
C.i节点描述了文件大小和指向数据块的指针
D.通过i节点实现文件的逻辑结构和物理结构的转换
5.在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用__C____命
令。
A.上箭头B.下箭头C.“.”D.“*”
7.在Redhat公司发布的Linux版本中,若要使得用户登录验证,需要修改以下__C____脚
本。
A./etc/inittabB./etc/passwd
C./etc/shadowD./etc/group
8.下列不是Linux系统进程类型的是_D_____。
A.交互进程B.批处理进程C.守护进程D.就绪进程
9.下列关于/etc/fstab文件描述,正确的是___D___。
A.fstab文件只能描述属于linux的文件系统
B.CD_ROM和软盘必须是自动加载的
C.fstab文件中描述的文件系统不能被卸载
D.启动时按fstab文件描述内容加载文件系统
1.安装Linux系统对硬盘分区时,必须有两种分区类型:
Linux原始分区(根分区)和Linux
交换分区。
2.在Linux的两种链接文件中,只能实现对文件链接的一种方式是:
软链接(符号链接)。
4.对于SystemV类型的共享内存页面,Linux基于__Clock____算法决定哪些页面应当被
换出物理内存。
7.将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存
到/home目录下,实现此任务的tar命令格式__tarczvfwang.tar.gz
/home/stud1/wang____。
8.对于给定的文件file,统计其中所有包含字符串”WHU”的行数的一条命令是_grepWHUfile
|wc-l
9.对于Shell脚本程序,若输入参数数量多于9个,则程序遍历每个参数可通过使用
__shift__命令实现。
2.在当前目录/home/zheng下新建一个目录back,将当前目录改为back,在back下新建2
个长度为0的文件test1、test2,然后把test2移到其父目录中并改名为file12。
答:
$mkdirback
$cdback
$touchtest1test2
$mvtest2../file2
3.现在需要统计当前目录/home/zheng下普通文件的数目并显示结果,如何实现?
$find–typef|wc–l
4.假设你是系统管理员,需要增加一个新的用户账号zheng,为新用户设置初始密码,锁
定用户账号uly,并删除用户账号chang。
答:
.#useraddzheng
#passwdzheng
#passwd–luly
#userdelchang
5.若给需要将/home/zheng目录下的所有文件打包压缩成/tmp/zheng.tar.gz,你准备怎么做?
当需要从压缩包中恢复时,又该如何处理?
答:
#tar–zcvf/tmp/zheng.tar.gz/home/zheng
#tar-zxvf/tmp/zheng.tar.gz
五、下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序完
成的功能。
(8分)
#!
/bin/sh
DIRNAME=`ls/root|grepbak`#
(1)
if[-z"$DIRNAME"];then#
(2)
mkdir/root/bak;cd/root/bak#(3)
fi
YY=`date+%y`;MM=`date+%m`;DD=`date+%d`#(4)
BACKETC=$YY$MM$DD_etc.tar.gz#(5)
tarzcvf$BACKETC/etc#(6)
echo"filebackfinished!
"
答:
#
(1)获取/root中名称包含bak的文件或目录
#
(2)判断1结果为空
#(3)创建目录/root/bak并进入该目录
#(4)获取当前时间的年月日
#(5)按照年(2位)月(2位)日(2位)_etc方式构造压缩文件名
#(6)压缩etc目录并保存在/root/bak中6分
程序功能:
若/root/bak不存在则创建之,然后将/etc按日期打包保存于该目录中。
2分
七、设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户
名的形式为stdxx,其中xx从01到30。
(6分)
答:
#!
/bin/sh
i=1
groupaddclass1
while[$i-le30]1分
do
if[$i-le9];then
USERNAME=stu0${i}1分
else
USERNAME=stu${i}1分
fi
useradd$USERNAME1分
mkdir/home/$USERNAME
chown-R$USERNAME/home/$USERNAME1分
chgrp-Rclass1/home/$USERNAME
i=$(($i+1))#或let“i=i+1”1分
done
1.Linux系统的开发模型是__B____。
A.教堂模型B.集市模型C.层次模型D.网状模型
3.__B___属于SYSTEMⅤ进程间通信方式。
A.管道B.信号量C.软中断信号D.锁机制
5.Linux文件系统中,文件在外存的物理地址放在___A___中。
A.i节点B.用户打开文件表
C.系统打开文件表D.进程控制块
7.当字符串用单引号(’’)括起来时,SHELL将__C____。
A.解释引号内的特殊字符B.执行引号中的命令
C.不解释引号内的特殊字符D.结束进程
8./etc/shadow文件中存放_B_____。
A.用户账号基本信息B.用户口令的加密信息
C.用户组信息D.文件系统信息
9.Linux系统中,用户文件描述符0表示____A__。
A.标准输入设备文件描述符B.标准输出设备文件描述符
C.管道文件描述符D.标准错误输出设备文件描述符
10.为卸载一个软件包,应使用___B__。
A.rpm-iB.rpm-eC.rpm-qD.rpm-V
3.Linux为用户提供的接口有shell、XWINDOW、系统调用
六、在Linux系统中运行下面程序,最多可产生多少个进程?
画出进程家族树。
(6分)
main()
{
fork();
fork();
fork();
}
答:
最多可以产生7个进程3分
家族树如右
七、试编写一个SHELL程序,该程序能接收用户从键盘输入的100个整数,然后求出其总和、
最大值及最小值。
(6分)
答:
#!
/bin/sh
readmax
min=$max
sum=$max
i=1
while[$i–lt100]
do
readx
sum=`expr$sum+$x`
if[$max–lt$x]
then
max=$x
fi
if[$x–lt$min]
then
min=$x
fi
i=`expr$i+1`
done
echo"sum=$sum;max=$maxmin=$min"
3.如何快速切换到用户John的主目录下?
()
A.cd@JohnB.cd#JohnC.cd&JohnD.cd~John
4.启动DNS服务的守护进程()
A.httpdstartB.httpdstopC.namedstartD.namedstop
6.REDHATLINUX9默认使用的文件系统类型为()
A.ext2B.ext3C.FATD.swap
8.光盘所使用的文件系统类型为()。
A.ext2B.ext3C.swapD.ISO9660
10.LINUX所有服务的启动脚本都存放在()目录中。
A./etc/rc.d/init.dB./etc/init.dC./etc/rc.d/rcD./etc/rc.d
13.若要将当前目录中的myfile.txt文件压缩成myfile.txt.tar.gz,则实现的命令为
()。
A.tar–cvfmyfile.txtmyfile.txt.tar.gz
B.tar–zcvfmyfile.txtmyfile.txt.tar.gz
C.tar–zcvfmyfile.txt.tar.gzmyfile.txt
D.tar–cvfmyfile.txt.tar.gzmyfile.txt
14.LINUX交换分区的格式为()。
A.ext2B.ext3C.FATD.swap
15.以下文件中,只有root用户才有权存取的是()
A.passwdB.shadowC.groupD.password
第1章概述
UNIX的两个重要分支:
SystemV和BSDUNIX,Linux属于BSD分支。
GNU(GNUisnotUNIX)计划——基于自由软件思想
GNU软件是在GNU公共许可证(GPL)的条款下发布的。
POSIX:
不同UNIX类系统之间兼容性的规范。
Linux版本号的命名规则:
Linux的内核版本由3部分组成。
版本号的第二位数字,可以确定Linux内核版本的类型,稳定版本:
第二位数字是偶数
Linux里一切皆文件。
LINUX的组成:
●LINUX的内核:
内核是系统的核心,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
●LINUXSHELL:
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口
●LINUX文件系统:
Linux文件系统是文件存放在磁盘等存储设备上的组织方法。
Linux能支持多种目前浒的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS等。
●LINUX应用系统:
标准的Linux系统都有一整套称为应用程序的程序集。
linux中几个标准特殊目录
/bin二进制文件目录,用于存放启动系统用到的二进制文件。
/usr/bin用户二进制文件目录,用于存放用户使用的标准程序。
/home:
用户目录,包括用户信息等。
/etc:
配置目录,系统配置时使用。
/proc:
虚拟目录,文件系统内存产生。
/root:
超级用户目录,包括桌面管理等。
/usr:
共享目录,所有用户的共享文件。
C语言中,系统调用和库函数的头文件主要在/usr/include目录及子目录下
标准系统库文件一般存储在/lib和/usr/lib目录中。
掌握vi三种模式:
命令模式、输入模式、末行模式的切换;保存退出的几个命令。
Esc,a,i,o,:
/,?
:
q离开
:
w保存
:
q!
强制离开不保存
:
wq保存后离开
第2章Shell及其常用命令
Linux终端:
Linux提供6个虚拟终端,XWindow在第7个终端上。
虚拟控制台的选择可以通过按下键和功能键来实现。
在XWindow图形操作界面中按就可以进入控制台字符操作界面。
命令自动补齐:
键
Shell里头几种特殊的字符含义:
“#”提示符,root用户
“$”提示符符号,普通用户
“*”,代表0到无穷多个任意字符
“?
”,代表一定有一个任意字符
“~”符号,用户的主文件夹
单引号,不具有变量置换功能
双引号,具有变量置换功能
后向的单引号,可以执行命令
重定向符号“<”,
重定向符“>”和
“>>”,
管道“|”。
掌握基本命令:
▪列出目录内容:
ls
▪创建特殊文件:
mkdir,mkfifo
▪文件操作:
cp,mv,rm
▪修改文件属性:
chmod,chown,chgrp
▪查找文件:
find
▪字符串匹配:
grep
▪其它:
echo,pwd,cd,file,more,cat,gzip,tar
▪进程操作:
ps,kill
▪用户和组账号操作:
useradd,userdel,groupdel,passwd
▪网络命令:
ifconfig
▪其他:
who,whoami,su,sudo,uname,man,mount,unmount,du,df
▪
掌握文件和目录权限的表示方法
第3章Shell程序设计
Shell:
用户和操作系统之间的接口
Linux的Shell主要有sh(Bourne),cshbash,ksh
Shell的工作步骤:
打印提示符;得到命令行;解析命令;查找文件;准备参数;执行命令
重定向:
•系统定义三个标准文件:
标准输入(stdin)、标准输出(stdout)、标准错误输出(stderr),对应的文件描述符为0,1,2。
•用“>”改变输出,用“2>”改变错误输出,用“>>”来追加到已有的文件中
kill–l1234>killout.txt2>&1(把标准输出和错误输出都放入同一个文件killout)
可以用管道操作符|来连接进程,前一个命令的输出是后一个命令的输入。
如:
who|wc–l
掌握管道和重定向的用法。
执行shell文件的两种方法:
方法1:
$shscript_file
方法2:
$chmod+xscript_file(chown,chgrpoptionally)
$./script_file
用户环境:
~/.bash_profile,~/.bash_logout,~/.bashrc
环境变量:
$HOME
当前用户的登陆目录
$PATH
以冒号分隔的用来搜索命令的目录清单
$#
传递到脚本程序的参数个数
$0
脚本程序的名字
$1,$2,…
脚本程序的参数
$*
一个全体参数组成的清单
几个shell内置命令:
•exitn:
以退出码”n”退出脚本运行
•export:
将变量导出到shell,使之成为shell的环境变量
掌握基本的shell程序设计。
第4章程序开发和调试
掌握gcc用法,掌握o、c、g、I、L、l、x选项用法。
gcctest.c
gcctest.c-otest
gcc-Stest.c-otest.s
gcc-ctest.c-otest.o
gcc-O1test.c-otest
gcc-gtest.c-otest
库是一组预先编译好的函数的集合。
标准的库文件一般存储在/lib和/usr/lib目录中。
库文件的名称总是以lib开头,其中.a代表静态函数库,.so代表共享函数库。
静态库的创建:
gcc-c+arcrv
如arcrvlibfoo.abill.ofred.o
make&makefile
▪makefile描述模块间的依赖关系;
▪make命令根据makefile对程序进行管理和维护;make判断被维护文件的时序关系
掌握make命令的用法
掌握makefile文件编写(包括宏和内置宏、后缀、模式规则的使用)
Makefile的内置宏定义:
$@规则中的目标名字
$<依赖文件中的第一个
$^所有的依赖文件
$?
依赖文件中所有比目标新的文件
以下两个特殊字符,出现在命令之前:
-:
忽略所有错误
@:
执行某些命令前不将该命令本身输出到屏幕
调试工具gdb
掌握几个常用的命令:
file,break,run,list,next,step,display,print,quit
Unix在源码管理方面有三个被广泛使用的系统
RCS:
版本控制系统
CVS:
协同版本控制系统
SCCS:
源代码控制系统
file打开要调试的文件
break设置断点
run
list列出源代码的一部分
next执行一条语句,但不进入函数内部
step执行一条语句,是函数则进入函数内部
display显示表达式的值
print临时显示表达式的值
kill终止正在调试的程序
quit退出gdb
第5章文件系统
Linux文件类型:
普通文件,目录文件,设备文件,管道文件,链接文件。
Linux能支持多种目前的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。
LINUX的标准文件系统为EXT系列。
EXT2文件系统inode结构:
每个文件都有唯一一个索引节点
EXT2文件系统块组是由:
超级块、组描述符表、块位图、inode位图、inode表、data数据块构成。
超级块:
描述EXT2文件系统整体信息的数据结构。
位于每个块组的最前面,所有块组中的基本超级块的内容是相同的。
VFS:
VFS屏蔽了各种文件系统的差别,为处理各种文件系统提供了统一的接口。
文件管理和操作:
对系统中打开的文件,主要从两个方面进行管理:
1、系统通过打开文件表进行统一管理,即把所有进程打开的活动文件集中进行管理,系统打开文件表是一个双向链表,它的每个节点是一个file结构,称为文件结构体。
2、进程用两个私有结构对打开的文件进行管理:
fs_struct、files_struct,其中fs_struct结构描述进程与文件系统的关系,files_struct包含进程的打开文件表,由于进程打开文件表fd[]数组的每个元素对应进程的一个活动文件,所以在linux中把fd[]数组的下标作为一个进程的活动文件标志,称为文件描述符。
系统调用与库函数的区别:
所有的操作系统都提供多种服务的入口点,这些入口点被称为系统调用(Systemcall),是内核的对外接口,用户程序和内核之间唯一的接口。
库函数依赖于系统调用,提供较复杂功能。
掌握几个系统调用
名称
含义
open
close
read
write
lseek
unlink
remove
打开一个文件来读、写或创建一个空文件
关闭以前打开的文件
从文件中读取数据
将数据写到文件