单选选择复习题
1、Linux的根分区的文件系统类型是:( c )
A. FAT16
B. FAT32
C. ext3
D. NTFS:
2、建立一个新目录hello的命令:( b )
A. touch hello
B. mkdir hello
C. rmdir hello
D. new hello
3、如果忘记了mv命令的用法,可以采用( c )命令获得帮助
A. mv
B. help mv
C. man mv
D. get mv
4、在vi编辑器的命令模式中,删除一行的命令是( a )
A. dd
B. u
C. I
D. a
5、使用以下什么命令可以使文件的读写执行权限为-rwxr-xrw- ( c )?
A. chmod 765
B. chown 755
C. chmod 756
D. chgrp 766
6、如果使用gcc编译c代码文件,使生成的执行文件为自定义名字用什么参数:
A. –o
B. 无参数
C. -c
D. -S
7、以下哪个命令可以移动文件
A. mv
B. cp
C. rm
D. ln
8、杀死进程的命令是
A. bg
B. fg
C. kill
D. jobs
9、下面的命令哪个命令不能用于查看文件的位置:
A. find
B. which
C. locate
D. du
10、Linux系统下能够使安装软件变得更容易同时解决程序之间版本依赖的问题是哪种?:
A.源码安装
B.rmp包安装x
C.deb包安装
D.网络安装
11、查看ip地址的命令是:
A. chfn
B. ipconfig
C. ip
D. ifconfig
12、以下哪个命令可以将文件重命名?
A. mv
B. rem
C. rml
D. ln
13、使用gcc编译器编译程序时,用来定位头文件所在路径的参数为
A. -I
B. -l
C. -L
D. -i
14、已知某用户stud1,其用户目录为/home/stud1。如果当前目录为/home,进入目录/home/stud1/test的命令是:
A. cd test
B. cd /stud1/test
C. cd stud1/test
D.cd home
15、Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在____目录中。
A. /bin
B. /etc
C. /dev
D. /lib
16、当程序执行时,产生段错误(core dump),是因为什么原因:
A.内核版本问题
B.内存访问问题
C.shell版本冲突
D.ulimit命令没有设置正确
17、系统中有用户user1和user2,同属于users组。在user1用户目录下有一文件file1,它拥有644的权限,如果user2用户想修改user1用户目录下的file1文件,应拥有___权限。
A. 744
B. 664
C. 646
D. 746
18、在LINUX系统中,所有打开的文件都对应一个_文件描述符__。
19.Linux文件系统中,文件在外存的物理地址放在( a )中
A.i 节点
B.用户打开文件表
C.系统打开文件表
D.进程控制块
20.为卸载一个软件包,应使用( b )
A.rpm -i
B.rpm -e
C.rpm -q
D.rpm -V
21.下列那一个指令可以在档案中搜寻关键词( d )
A.ps
B.cat
C.more
D.grep
22.fg 这个指令是指( b )
A.前台执行
B.背后执行
C.立即执行
D.不要执行
23、write与fwrite两个函数,哪个函数相对来说写操作效率更高?
A. 一样
B. write
C. fwrite
D. 都不高
24、按Ctrl + c快捷键可以发送哪种信号?
A. SIGINT
B. SIGSTOP
C. SIGKILL
D. SIGQUIT
25、Kill函数的作用是?
A.终止进程
B.查杀病毒
C.中断任务
D.发送信号
26、信号量主要用途是___。
A.共享数据空间
B.发送信号
C.保护临界资源
D.进程阻塞
27、如下判断fork()函数返回值为多少,是父进程执行的代码?
A.pid < 0
B.pid == 0
C.pid > 0
D.pid <=0
28、_B__是进程间共享数据的一种最快的方法。
A.管道
B.共享内存
C.消息队列
D.信号量
29、pipe适合哪种情况下的通信:
A.任意两个进程间
B.父子进程间
C.任意两个线程间
D.父子线程间
30、面向非连接的套接字是基于哪个协议?
A.udp
B.arp
C.http
D.tcp
31.不是进程和程序的区别( b )
a.程序是一组有序的静态指令,进程是一次程序的执行过程
b.程序只能在前台运行,而进程可以在前台和后台运行
c.程序可以长期保存,进程是暂时的
d.程序没有状态,而进程是有状态的
32. 在LINUX系统中,所有打开的文件都对应一个( a )
a.文件描述符
b.文件节点
c.数据区
d.文件指针
33. write与fwrite两个函数,哪个函数相对来说写操作效率更高?( b )
a.一样
b.write
c.fwrite
d.都不高
34.Bash下按Ctrl + z快捷键可以发送哪种信号?( b )
a. SIGINT
b. SIGSTOP
c. SIGKILL
d. SIGQUIT
35.Kill函数的作用是?( a )
a. 终止进程
b. 查杀病毒
c. 中断任务
d. 发送信号
36.信号量主要用途是( c )
a. 共享数据空间
b. 发送信号
c. 保护临界资源
d. 进程阻塞
37.如下判断fork()函数返回值为多少,是父进程执行的代码( c )
a. pid < 0
b. pid == 0
c. pid > 0
d. pid <=0
38. 按下 ( a )键能终止当前运行的命令
A. CtrI-C
B. CtrI-F
C. CtrI-B
D. CtrI-D
39.vi 中哪条命令是不保存强制退出 ( c )
A. :wq
B. :wq!
C. :q!
D. :quit
40.Linux系统的开发模型是 ( b )
A.教堂模型
B. 集市模型
C. 层次模型
D. 网状模型
41.( b )属于SYSTEMV进程间通信方式。
A.管道
B. 信号量
C. 软中断信号
D. 锁机制
42.( b )是进程间共享数据的一种最快的方法
a. 管道
b. 共享内存
c. 消息队列
d. 信号量
43.pipe适合哪种情况下的通信:( b )
a. 任意两个进程间
b. 父子进程间
c. 任意两个线程间
d. 父子线程间
44.面向非连接的套接字是基于哪个协议( a )
a. udp
b. arp
c. http
d. tcp
45.下列文件哪种文件是Linux系统下的动态库文件:( a )
A.libc.so
B.libc.o
C.libc.dll
D.libc.a
47.如果忘记了ls命令的用法,可以采用( d )命令获得帮助
A.ls
B.help ls
C.man ls
D.get ls
48.在vi编辑器的命令模式中,在光标所在位置的后面插入字符的命令是( d )
A. dd
B. u
C. i
D. a
7.以下哪个命令可以移动文件?( a )
A. mv
B. cp
C. rm
D. ln
44.列出系统进程的命令是( b )
A. bg
B. ps
C. kill
D. jobs
54.在 vi 编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用( c ) 命 令。
A. 上箭头
B. 下箭头
C. “. ”
D. “*”
55.某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为( d ) 。
A. 467
B. 674
C. 476
D. 764
56.在 Redhat 公司发布的 Linux 版本中,若要使得用户登录验证,需要修改以下( c )脚 本。
A. /etc/inittab
B. /etc/passwd
C. /etc/shadow
D. /etc/group
57.下列不是 Linux 系统进程类型的是( d )。
A. 交互进程
B. 批处理进程
C. 守护进程
D. 就绪进程
58.下列关于 /etc/fstab 文件描述,正确的是 ( d )。
A. fstab 文件只能描述属于 linux 的文件系统
B. CD_ROM和软盘必须是自动加载的
C. fstab 文件中描述的文件系统不能被卸载
D. 启动时按 fstab 文件描述内容加载文件系统
59.Linux 文件权限一共 10 位长度,分成四段,第三段表示的内容是( c )
A. 文件类型
B. 文件所有者的权限
C. 文件所有者所在组的权限
D. 其他用户的权限
60.下面哪个命令是用来定义 shell 的全局变量 ( d )
A. exportfs
B. alias
C. exports
D. export
61.哪个目录存放用户密码信息 ( b )
A. /boot
B. /etc
C. /var
D. /dev
62.如果要列出一个目录下的所有文件需要使用命令行 ( c )。
A. Is -i
B. Is -l
C. Is -a(所有)
D. Is -p
63.开启vim环境下显示行号的命令是:( a )
A.set nu
B.syntax on
C.set highlight
D.set autoindent
65.以下哪个命令可以将文件重命名?( a )
A. mv
B. ren
C. rm
D. ln
66.不属于linux下常用的shell:( a )
A.bash
B.sh
C.ash
D.bach
68.下列( c )环境变量表示当前目录:
A.PATH
B.HOME
C.PWD
D.SHELL
69.make命令自动读取哪个文件来编译程序:( c )
A. include_directoreies
B. link_directories
C. Makefile
D. target_link_libraries
70.为时程序可以用gdb调试,在gcc编译时需要使用哪个参数:( b )
A. –o
B. –g
C. –debug
D. –c
73.CentOS是什么:( a )
A.linux
B.unix
C.max os
D.windows
75.如果忘记了ls命令的用法,可以采用( c )命令获得帮助
A.ls
B.help ls
C.man ls
D.get ls
76.在vi编辑器的命令模式中,在光标所在位置的后面插入字符的命令是( a )
A. dd
B. u
C. i
D. a
78.-rwxr-xr-x 对应的权限数字是:( C )
A.766
B.644
C.755
D.666
83.开启vim环境下显示行号的命令是:( a )
A.set nu
B.syntax on
C.set highlight
D. set autoindent
88.用户编写了一个文本文件 a.txt ,想将该文件名称改为txt.a。
A. cd a.txt txt.a
B. echo a.txt > txt.a
C. rm a.txt txt.a
D. cat a.txt > txt.a
89.在使用 mkdir 命令创建新的目录时, 在其父目录不存在时先创建父目录的选项是( d )
A. -m
B. -d
C. -f
D. -p
90.下面关于 i 节点描述错误的是( a ) 。
A.i 节点和文件是一一对应的
B.i 节点能描述文件占用的块数
C.i 节点描述了文件大小和指向数据块的指针
D.通过i节点实现文件的逻辑结构和物理结构的转换
填空复习题
1.链接分为_Hard Link____和___Symbolic Link_____。(2分)
2.命令cp …/name ./ 的目的是 复制文件或目录_(2分)
3.唯一标识每一个用户的是_UID _和__用户名。(4分)
4.在vi编辑环境下,使用__Enter键____键进行模式转换。(2分)
5.文本文件为file,请写出在此文件中定位查找hello字符串的命令_find / -name “*.file” | xargs grep “hello”__(2分)
6.至少写出5种进程间通信的机制 管道、FIFO管道、消息队列、信号量、_共享内存。(5分)
7.LINUX文件编程遵循__传值_调用和_引用__调用两种方式。(2分)
8.Linux下的多线程程序,需要使用头文件_pthread.h__,连接时需要使用库_libpthread.a__。(2分)
9.等待子进程退出的系统调用是_wait()__。(1分)
10.当一个管道建立时pipe(int filedis[2]),它会创建两个文件描述符,_filedis[1]_用于读管道用于写管道。
11. 进程的状态至少有( 就绪 )( 执行 ) 和 ( 阻塞 )
12.链接分为( 硬链接 )和( 符号链接 )。
13.某文件的权限为:d-rw-_r–_r–,用数值形式表示该权限,则该八进制数为( 664 ) ,该文件属性是( 目录 )
14.前台起动的进程使用( Ctrl+c )终止。
15.编写的Shell程序运行前必须赋予该脚本文件 ( 执行 ) 权限。
16.结束后台进程的命令是 ( kill )。
17.在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入( w test.txt )。
###18.在vi编辑环境下,使用( ESC )键进行模式转换。
19.Linux系统通过( write )命令给其他用户发消息。
20.用命令ls -al显示出文件ff的描述如下所示,由此可知文件ff的类型为( 普通文件 )-rwxr-xr-- 1 root root 599 Cec 10 17:12 ff
21.Linux 文件名的长度不得超过( 256 )个字符。
22.将helloworld.c编译成可执行程序,需要执行命令( gcc -o helloworld /home/helloworld.c )
23.命令cp …/name ./ 的目的是( 复制 )
24.vi的配置文件是( vimrc ).存放在( /etc/vim/vimrc ) 路径下
25.请写出linux中常用的压缩命令( .zip .gz .bz2 .tar.gz .tar.bz )
26.file为文本文件,请写出显示文件内容的命令( cat file.txt )
判断题
1. fork的奇妙之处在于它被调用一次,却返回两次。( 1 )
2. getppid函数返回的是子进程id 。( 0 )
3. exec系统调用执行后会产生2个进程。( 1 )
4. 进程接收信号后的三种处理方法是终止进程、忽略信号、调用函数。( 1 )
5. 管道是双向的、先进先出的字节流。( 0 )
6. 一个文件打开多次,描述符相同。( 0 )
7. 在成功地读取了一条消息以后,消息队列中的这条消息仍存在。( 0 )
8. 计数信号量的值可以取任意非负值。( 1 )
9. 如果进程中任何一个线程中调用exit,则整个进程都会终止。( 1 )
10. 线程函数中return会使线程非正常退出。( 0 )
简答题(每题7分,共14分)
1.从文本源代码到可执行文件,gcc可以对哪些步骤进行控制?
预处理、编译、汇编、链接
2.简述vi的几种操作模式
四种模式:
正常模式(Normal-mode)vi+enter进入,所输入的所有键盘按键都是对vi下的命令,常见的复制粘贴是在这种模式下
插入模式(Insert-mode)按’i’进入,进行文本内容的输入
命令模式(Command-mode)按’:'进入,按esc返回正常模式,保存、退出、查找、替换等操作
可视模式(Visual-mode)按‘v’、‘V’、‘ctrl+v’进入,对文件大量重复操作
3.请简述线程与进程的区别
(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.
(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。
4.请简述孤儿进程、僵尸进程、守护进程的区别
一个正常运行的子进程,如果此刻子进程退出,父进程没有及时调用wait或waitpid收回子进程的系统资源,该进程就是僵尸进程
系统收回就是正常退出,如果一个正常运行的子进程,父进程退出了但是子进程还在,该进程此刻是孤儿进程,被init收养,
如果父进程是故意被杀掉,子进程做相应处理后就是守护进程
5.ls命令执行什么功能?可以带哪些参数,有什么区别?
ls用来打印出当前目录的列表
-a 显示所有文件及目录
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-t 将文件依建立时间之先后次序列出
6.什么是线程的互斥和同步,程序应怎样达到互斥或同步?
互斥:运行其中一个程序片段时,其它任务就不能运行它们之中的任一程序片段,只能等到该任务运行完这个程序片段后才可以运行。
同步:运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。
同步是一种更为复杂的互斥,而互斥是一种特殊的同步
7.简述exit()、_exit()和return()的区别?
_exit()函数:直接使进程停止运行,清除其使用的内存空间,并销毁其在内核中的各种数据结构;
exit()函数则在这些基础上作了一些包装,在执行退出之前加了若干道工序。
return()将控制权移交给递归的前一级,直到最初的那一级,此时return才会终止程序
8.怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?
clear命令
exit命令
suspend命令
whoami命令
man命令
9.有三个C文件:send.c、recv.c、main.c,其中send.c封装了send函数,recv.c封装了recv函数,主函数在main.c中,所有函数的声明在main.h中,请针对这个工程编写makefile文件。
要求:编译和链接环节分开实现。
vim makefile
main: main.c send.c recv.c
gcc -o main main.c send.c recv.c
./main
10.使用Linux命令在/home/neusoft目录下
(1)分别新建以Hello 和Linux命名的目录;
(2)在Hello目录下创建两个.c的文件file1.c和file2.c;
(3)将file1.c文件更换名称为file.c;
(4)将file2.c文件拷贝到目录Linux中;
(5)删除Hello目录及其下的文件。
写出使用的所有命令。
1.mkdir Hello
mkdir Linux
2.touch file1.c
touch file2.c
3.mv file1.c file.c
4.cp file2.c Linux/file2.c
5.rm -rf Hello
11.怎么查看当前进程?怎么执行退出?怎么查看当前路径?
查看当前进程:PS
执行退出:exit
查看当前路径:pwd
12.请写出创建动态库的过程,要求分别写出创建库文件的命令以及将库文件编译到可执行程序中的命令。
其中:动态库的源文件为helloworld.c,生成的库名为hello,调用库函数的源文件为main.c
gcc -fPIC -shared -o libhello.so
gcc main.c -o main -L . -l helloworld.c
13.fork()与vfork()系统调用的区别是?
1.vfork保证子进程先运行,在它调用exec或exit之后父进程才可能被调度运行。如果在调用这两个函数之前子进程依赖于父进程的进一步动作,则会导致死锁。\
2.fork要拷贝父进程的进程环境;而vfork则不需要完全拷贝父进程的进程环境,在子进程没有调用exec和exit之前,子进程与父进程共享进程环境,相当于线程的概念,此时父进程阻塞等待。
14.随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
写文件命令:vi
向屏幕输出带空格的字符串:echo hello world
15.终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
终端 /dev/tty
黑洞文件 /dev/null
16.移动文件用哪个命令?改名用哪个命令?
mv
17.复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
复制文件用cp命令
如果需要连同文件夹一块复制:
cp -r
如果需要有提示功能:
cp -v