Linux 复习题

Linux 复习题
Linux 复习题

《Linux System Programming》复习题

1.简述API及ABI。

答:API(Application Programming Interface)应用程序接口,API规定了软件模块之间在源代码层交互的接口。它通过提供一组标准接口(通常以函数的方式)进行抽象:一个程序片段(一般是较高层次的代码,但不见得一定是)可以调用另一个程序片段(通常位于较低层次)。

ABI(Application Binary Interface)应用程序二进制接口,ABI定义的是在特定的架构上两个或者多个软件模块之间的二进制接口。定义了一个应用如何和自己交互,如何和内核以及库进行交互。ABI主要关注的问题有调用约定、字节序、寄存器使用、系统调用、链接、库行为和二进制格式。在Linux系统中,每一个机器架构都有自己的ABI集合。

2.简述使用基于系统调用的文件处理函数读写文件的过程。

答:首先使用open函数打开需要调用的文件,open函数有两个参数,第一个是打开的文件路径,第二个是打开的模式,该模式可以为只读、只写等。open函数会返回打开文件的标记符fd。

利用fd可以对文件进行读写操作:

若进行读,则使用read函数,read函数有三个参数,分别是要读的文件的标记符fd,将内容读到何处对应的区域指针buf和读取的长度len。系统会直接将需要读取的内容存入到指定的缓冲区中。

若进行写,则使用write函数,write函数有三个参数,分别是要写的文件的标记符fd,将何处的内容写进文件对应的区域指针buf和写入的长度len。系统会直接将需要写入的内

容存入到指定的文件中。

最后需要利用close函数来关闭打开的文件。

3.简述常用基于系统调用的文件处理函数的使用方法,包括函数原型及参数意义。

答:

(1)打开文件:通过open()函数调用来打开一个文件并获得一个文件描述符。

函数原型:#include

#include

#include

int open (const char *name, int flags);

int open (const char *name, int flags, mode_t, mode);

参数:name:文件路径名。

flags:O_RDONL Y只读、O_WRONL Y 只写、O_RDWR读写

mode:除非创建了新文件,否则mode参数会被省略;而当O_CREA T给出时则需要,mode参数用于指定新文件的权限。

返回值:调用成功时返回一个文件描述符,错误时返回-1。

(2)创建文件:通过creat()函数调用来创建一个文件并获得一个文件描述符。

函数原型:#include

#include

#include

int creat (const char *name, mode_t mode);

参数:name:文件路径名。

mode:用于指定新文件的权限。

返回值:调用成功时返回一个文件描述符,错误时返回-1。

(3)读文件:通过read()函数调用来读取一个文件。

函数原型:#include

ssize_t read (int fd, void *buf, size_t len);

参数:fd:文件描述符。

buf:用于写入的缓冲区。

len:写入缓存区的字节数

返回值:调用成功时返回写入buf中的字节数,错误时返回-1,并置error。

若返回为0。则表示已经读取到文件的末尾。

(4)写文件:通过read()函数调用来读取一个文件。

函数原型:#include

ssize_t write (int fd, const void *buf, size_t count);

参数:fd:文件描述符。

buf:存储要写入的字符的缓冲区。

count:写入的字节数

返回值:调用成功时返回写入的字节数,并更新文件位置,错误时返回-1。

(5)同步输入输出:通过fsync()和fdatasync()控制读写的同步,或使用sync()对所有缓冲区进行同步。

(a)fsync()将fd对应文件的脏数据回写到磁盘上,该调用回写数据以及建立的时间戳和inode中的其他属性等元数据。

函数原型:#include

int fsync (int fd);

参数:fd:文件描述符。

返回值:调用成功时返回0,错误时返回-1,并设置error。

(b)fsync()将fd对应文件的脏数据回写到磁盘上,但该调用不保证元数据同步到磁盘上。

函数原型:#include

int fdatasync (int fd);

参数:fd:文件描述符。

返回值:调用成功时返回0,错误时返回-1,并设置error。

(c)sync()对所有缓冲区进行同步。

函数原型:#include

void sync (void);

参数:无。

返回值:无,总是成功返回。

(6)关闭文件:通过close关闭用fd打开的文件。

函数原型:#include

int close (int fd);

参数:fd:文件描述符。

buf:存储要写入的字符的缓冲区。

count:写入的字节数

返回值:调用成功时返回0,错误时返回-1,并设置error。

(7)文件定位:lseek()能够对给定文件描述符引用的文件位置设定指定值。

函数原型:#include

#include

off_t lseek (int fd, off_t pos, int origin);

参数:fd:文件描述符。

pos:定位到的文件位置。

origin:参考的文件位置,有SEEK_CUR(当前位置)、SEEK_END(文件末尾)、SEEK_SET(文件开头)

返回值:调用成功时返回新文件位置,错误时返回-1,并设置error。

4.简述使用C函数库带缓冲的文件处理函数读写文件的过程。

答:首先使用fopen函数打开需要调用的文件,fopen函数有两个参数,第一个是打开的文件路径,第二个是打开的模式,该模式可以为只读、只写等。fopen函数会返回打开文件的文件指针*FILE。

利用*FILE可以对文件进行读写操作:

若进行读,则使用fread函数,fread函数有四个参数,分别是缓冲区buf,buf的大小,每次读取的buf数,操作的文件指针。系统会将需要读入的内容先存入到系统的缓冲区中,然后按照一定的长度再分批读入指定的区域中。

若进行写,则使用fwrite函数,fwrite函数有四个参数,分别是缓冲区buf,buf的大小,每次写入的buf数,操作的文件指针。系统会将需要写入的内容先存入到系统的缓冲区中,然后按照一定的长度再分批写入文件中。

最后需要利用fclose函数来关闭打开的文件。

5.简述C函数库常用带缓冲的文件处理函数的使用方法,包括函数原型及参数意义。

答:

(1)打开文件:通过fopen()函数调用来打开一个文件并获得一个文件指针。

函数原型:#include

FILE* fopen(const char * path, const char * mode);

参数:path:文件路径名。

mode: 打开的模式:

r读取,定位在文件开头处;

r+读写,定位在文件开头处;

w写入,如果已存在就清空,如果未存在就创建,定位在文件开头处;

w+读写,如果已存在就清空,如果未存在就创建,定位在文件开头处;

a追加写入,如果未存在就创建,定位在文件末尾;

a+追加读写,如果未存在就创建,定位在文件末尾;

返回值:调用成功时返回一个文件指针,错误时返回NULL。

(2)通过文件描述符打开:将一个已打开的文件描述符fd转成一个流。

函数原型:#include

FILE * fdopen (int fd, const char *mode);

参数:fd:文件描述符。

mode:打开的模式:必须和原来fd对应的模式匹配。

返回值:调用成功时返回一个文件指针,错误时返回NULL。

(3)关闭文件:通过fclose()函数调用来关闭一个已经打开的文件。

函数原型:#include

int fclose (FILE *stream);

参数:stream:文件指针。

返回值:调用成功时返回0,错误时返回EOF。

(4)关闭所有流:通过fcloseall()关闭所有和当前进程相关的流,包括标准输入、标准输出、标准错误。

函数原型:#define _GNU_SOURCE

#include

int fcloseall (void);

参数:无。

返回值:调用始终返回0。

(5)读取数据:分为单个字节的读取、单行的读取、二进制数据读取。

(a)单字节的读取:从流中读取下一个字符并把该无符号字符强转为int返回。

函数原型:#include

int fgetc (FILE *stream);

参数:stream指向的流必须以可读模式打开。

返回值:调用成功时返回字符转换后的int,错误时返回EOF。

(b)把字符放回流中:把c转换成一个无符号字符并放回流中。

函数原型:#include

int ungetc (int c, FILE *stream);

参数:int为要放入的字符对应的int

stream指向的要放回的流。

返回值:调用成功时返回字符转换后的int,错误时返回EOF。

(c)按行读取:从流中读取一个字符串,函数从流中读取size-1个字节的数据,并把数据存入str。

函数原型:#include

int fgets (char *str, int size, FILE *stream);

参数:str用来存放字符串的字符指针

size存储的字符串的长度(最后加一个空字符)

stream指向要读取的文件。

返回值:调用成功时返回str,错误时返回NULL。

(d)读取二进制文件:从流中读取二进制数据。

函数原型:#include

size_t fread (void *buf, size_t size, size_t nr, FILE *stream);

参数:buf用来存放数据的缓冲区

size每个数据长度

nr 一次读取多少个数据

stream指向要读取的文件。

返回值:调用成功时返回读取的数据的个数,错误时返回NULL。

(6)写入数据:分为单个字符的写入、写入字符串、二进制数据读取。

(a)单个字符的写入:将c表示的字节(强制转换为了一个无符号字符)写入stream。

函数原型:#include

int fputc (int c, FILE *stream);

参数:stream指向的要写入的文件。

返回值:调用成功时返回字符转换后的int,错误时返回EOF。

(b)写入字符串:向流中写入一个字符串。

函数原型:#include

int fputs (const char *str, FILE *stream);

参数:str用来写入的字符串的字符指针

stream指向要读取的文件。

返回值:调用成功时返回一个非负整数,错误时返回EOF。

(c)写入二进制文件:向流中写入二进制数据。

函数原型:#include

size_t fwrite (void *buf, size_t size, size_t nr, FILE *stream);

参数:buf用来存放要写入的数据

size每个数据长度

nr 一次写入多少个数据

stream指向要写入的文件。

返回值:调用成功时返回写入的数据的个数,错误时返回小于要写入的数据的个数。(7)流定位:fseek()能够对给定文件指针引用的文件位置设定指定值。

fsetpos()相当于fseek的whence取SEEK_SET

rewind()将位置重置到文件开头

函数原型:#include

int fseek (FILE *stream, long offset, int whence);

int fsetpos (FILE *stream, fpos_t *pos);

void rewind (FILE *stream);

参数:stream指向要操作的文件。

offset:定位到的文件位置。

whence:参考的文件位置,有SEEK_CUR(当前位置)、SEEK_END(文件末尾)、SEEK_SET(文件开头)

pos:定位的位置(相对文件开头)。

返回值:调用成功时返回新文件位置,错误时返回-1,并设置error。

(8)获取当前流位置:ftell用于获取当前文件位置。

函数原型:#include

long ftell (FILE *stream);

参数:stream指向要操作的文件。

返回值:成功返回文件位置,错误返回-1

(9)清洗一个流:用来将用户缓冲区写入内核,并且保证所有的数据都通过write()写出。

函数原型:#include

int fflush (FILE *stream);

参数:stream指向要操作的文件。

返回值:成功返回0,错误返回EOF。

(10)错误测试:判断是否在流上设置了错误标志

函数原型:#include

int ferror (FILE *stream);

参数:stream指向要操作的文件。

返回值:成功返回非零值,错误返回0。

(11)文件结束测试:判断是否到达了文件末尾

函数原型:#include

int feof (FILE *stream);

参数:stream指向要操作的文件。

返回值:成功返回非零值,错误返回0。

6.简述fopen()函数各种打开模式的意义及适用场合。

答:函数原型:#include

FILE* fopen(const char * path, const char * mode);

参数:path:文件路径名。

mode:打开的模式:

r读取,定位在文件开头处;适用于对已存在文件从头开始只读

r+读写,定位在文件开头处;适用于对已存在文件从头开始读写

w写入,如果已存在就清空,如果未存在就创建,定位在文件开头处;适用于创建文件,并只写

w+读写,如果已存在就清空,如果未存在就创建,定位在文件开头处;适用于创建文件,又读又写

a追加写入,如果未存在就创建,定位在文件末尾;适用于对已存在文件从末尾开始写入

a+追加读写,如果未存在就创建,定位在文件末尾;适用于对已存在文件从末尾开始读写

返回值:调用成功时返回一个文件指针,错误时返回NULL。

7.简述fork()函数的功能及基本编程方法。

答:fork()函数用来创建一个和当前进程一样的进程。

函数原型#include

#include

pid_t fork (void);

fork创建的进程被称为子进程,原进程被称为父进程,子进程会继承父进程的所有资源,之后两个进程都会运行。

子进程会在fork函数执行后返回0,而父进程会返回一个大于0的数。

由于exec函数在执行后会调到所执行程序的入口,使得原先的进程无法继续执行,所以通常的做法是先使用fork函数创建一个子进程,在子进程中执行exec,例如:

pid_t pid;

pid = fork ();

if (pid == -1)

perror (”fork”);

/* the child ... */

if (!pid) {

const char *args[] = { ”windlass”, NULL };

int ret;

ret = execv (”/bin/windlass”, args);

if (ret == -1) {

perror (”execv”);

exit (EXIT_FAILURE);

}

}

8.简述exec系统函数的功能及基本编程方法。

答:exec系统函数的功能是用另一个新程序替换当前进程的正文、数据、堆和栈段,而不改变进程的ID使得去执行另一个程序。exec是一组函数,包括以下几个:#include

int execl (const char *path, const char *arg, ...);

int execlp (const char *file, const char *arg, ...);

int execle (const char *path, const char *arg, ..., char * const envp[]);

int execv (const char *path, char *const argv[]);

int execvp (const char *file, char *const argv[]);

int execve (const char *filename, char *const argv[], char *const envp[]);

对execl,系统会调用path所指的镜像载入内存,替换当前进程的镜像。arg是第一个参数,为了遵循unix的习俗,会将执行的程序名作为第一个参数,即argv[0],这样新进程就可以通过检测argv[0]来得知二进制映像文件的名称。后面的...表示可变长度参数表,但要求一定要以NULL结尾。通常情况下exec系列函数是不会返回的,成功时会以调到新的程序的入口点作为结束。

其余函数,首先由l和v进行分类,带l的表明参数是以列表依次给出,带v的表示参数是以数组表示,但都要求最后是以NULL结尾。其次由p和e进行分类,带p的函数,第一个参数file可以直接给出文件名称,系统会在用户设置好的PA TH路径中进行查找,带e 的函数表示提供给新进程新的环境变量。

编程例子:int ret;

ret = execl (”/bin/vi”, ”vi”, ”/home/kidd/hooks.txt”, NULL);

if (ret == -1)

perror (”execl”);

9.简述daemon函数的功能及实现方法。

答:daemon函数原型如下:

#include

int daemon (int nochdir, int noclose);

参数:当nochdir为0时,daemon将更改进程的根目录为root(“/”)。

当noclose为0时,daemon将进程的STDIN, STDOUT, STDERR都重定向到/dev/null。

它的功能:调用daemon使得创建一个新进程成为一个守护进程。

它主要完成以下几个任务:

1. 调用fork函数创建一个新的进程,它会是未来的守护进程。

2. 在父进程中调用exit,保证父进程不再运行。

3. 调用setsid,使得守护进程有一个新的进程组和新的会话。保证它不会和控制终端相关联。

4. 用chdir将当前进程切换到根目录,这样做是因为在fork时,子进程会继承父进程所在的工作目录,而作为守护进程一般都需要在系统启动时启动,同时不希望一些随机目录处于打开状态。

5. 关闭所有的文件描述符,因为守护进程不需要继承任何打开的文件描述符。

6. 打开0,1,2号文件描述符(标准输入、标准输出和标准错误)。因为万一这个进程

读写标准输出和输入了。

10.简述硬链接与符号链接的原理及实现方法。

答:硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。硬链接的数量可以是多个,也就是多个文件名称可以指向同一个inode,这些链接不存在先后,共享同一个inode。但要求这些链接是在同一个文件系统下,因为不同的文件系统inode的结构可能会不同。

#include

int link (const char *oldpath, const char *newpath);被用来创建硬链接。

符号链接也称为软链接。它是一类特殊的文件,该特殊文件包含被符号链接指向的文件的路径,运行时,内核会用其中的指向文件的路径来替代符号链接本身的路径,使被链接的文件得到执行,这就使得软链接没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。软链接不增加额外的目录项。

#include

int symlink (const char *oldpath, const char *newpath);被用来创建软链接。

11.简述struct stat结构体各字段的意义。

答:stat中存储了文件的信息

struct stat {

dev_t st_dev; /* ID of device containing file 描述文件位于什么设备节点上*/

ino_t st_ino; /* inode number 文件的inode编号*/

mode_t st_mode; /* permissions 文件的权限*/

nlink_t st_nlink; /* number of hard links 指向文件的硬链接数,每个文件至少一个硬链接*/

uid_t st_uid; /* user ID of owner 文件所有者的用户ID*/

gid_t st_gid; /* group ID of owner 文件所属组的ID*/

dev_t st_rdev; /* device ID (if special file) 如果文件是节点设备,用来描述该节点的信息*/

off_t st_size; /* total size in bytes 文件的字节数*/

blksize_t st_blksize; /* blocksize for filesystem I/O 进行有效文件I/O的首选块大小*/

blkcnt_t st_blocks; /* number of blocks allocated 分配给文件的块数目*/

time_t st_atime; /* last access time 最后文件访问时间*/

time_t st_mtime; /* last modification time 最后文件修改时间*/

time_t st_ctime; /* last status change time 文件元数据最后被修改的时间*/ };

12.简述文件的复制与移动。在Linux系统中文件的复制与移动是怎样实现的。

答:文件的复制是指在至少两个不同目录项下,保存文件的两个独立拷贝。

文件的移动是指在文件所在位置下重命名目录项的行为。

linux系统下没有用于文件复制的函数,完成文件复制主要有以下几个步骤:

1. 打开src

2. 打开dst,如果不存在就创建,如果存在就截断为0

3. 将src的数据块读入内存

4. 将该数据块写入dst

5. 继续操作,直到src中所有的内容都被写到dst中。

6. 关闭dst

7. 关闭src

linux系统下移动文件,可以调用

#include

int rename (const char *oldpath, const char *newpath);

但要求oldpath和newpath必须在同一文件系统。

13.Linux操作系统常用内存管理函数的功能及使用方法。

答:(1)获取动态内存:#include

void *malloc (size_t size);

成功调用时会得到一个size大小的内存区域,并返回一个指向这个区域首地址的指针。这块区域的内容是未定义的。每次调用时,c都会自动将类型转换成需要的类型。

(2)动态数组分配:#include

void *calloc (size_t nr, size_t size);

成功时会返回一个指针,指向一块可以存储下整个数组的内存,并且会全部初始化为0。

(3)调整已分配内存大小:#include

void *realloc (void *ptr, size_t size);

成功时将ptr指向的内存区域的大小调整为size,并返回一个指向新空间的指针。

如果size是0,那么效果就会调用free一样。

如果ptr是NULL,那么效果就会和malloc一样。

(4)动态内存的释放:#include

void free (void *ptr);

调用free会释放ptr所指向的内存空间。前提是使用了malloc、calloc或realloc对内存空间进行了申请。

14.简述信号的概念。举例说明常用信号的意义及处理动作。

答:信号时提供处理异步机制的软件中断。

信号有一个非常明确的生命周期。首先,产生信号;然后,内核存储信号直到可以发送它;最后,一旦有空闲,内核会适当的处理它。

内核处理信号的方式分为三种:

(1)忽略信号,不采取任何措施。但是SIGKILL和SIGSTOP不能被忽略。

(2)捕捉和处理信号,内核会暂停当前进程去处理先前注册过的函数,处理结束之后再跳回捕捉信号的中断点。

(3)进行默认操作,通常的默认操作都是终止该进程。

常用信号举例:

信号

说明默认操

SIGCHL

D 子进程终止。当进程终止或停止时,内核会给进程的父进程发送此信

忽略

SIGHUP

进程的控制终端关闭,常用于守护进程“过载”,用来指示守护进程重

载其配置文件。

终止

SIGKILL 不能被捕获的进程终止信号。用于无条件终止一个进程。终止

SIGSTO

P 挂起进程。用于无条件停止一个进程。

停止

15.简述常用信号函数signal()、pause()及kill()的函数原型及使用方法。

答:signal()函数原型:

#include

typedef void (*sighandler_t)(int);

sighandler_t signal (int signo, sighandler_t handler);

参数:int signo:是信号的名称,它可以取除了SIGKILL和SIGSTOP外的任何一种信号,如SIGINT或SIGUSR1

sighandler_t handler:用来指定接收该信号并处理的函数,它可以取以下三种值:(1)一个无返回值的函数地址

(2)SIG_IGN,这个符号表示忽略该信号。

(3)SIG_DFL,这个符号表示恢复系统对信号的默认处理。

功能:signal()会依参数signo指定的信号编号来设置该信号的处理函数。当指定的信号到达时就会跳转到参数handler指定的函数执行。当一个信号的信号处理函数执行时,如果进程又接收到了该信号,该信号会自动被储存而不会中断信号处理函数的执行,直到信号处理函数执行完毕再重新调用相应的处理函数。但是如果在信号处理函数执行时进程收到了其它类型的信号,该函数的执行就会被中断。

pause()函数原型:

#include

int pause (void);

参数:无

功能:它可以使进程睡眠,直到进程接收到处理或终止进程的信号,必须是可以捕捉到的信号。

kill()函数原型:

#include

#include

int kill (pid_t pid, int signo);

参数:kill()可以用来送参数sig指定的信号给参数pid指定的进程。

pid有几种情况:

pid>0 将信号传给进程识别码为pid 的进程。

pid=0 将信号传给和目前进程相同进程组的所有进程

pid=-1 将信号广播传送给系统内所有的进程

pid<0 将信号传给进程组识别码为pid绝对值的所有进程

signo:信号的名称。

功能:将指定的命令signo,发送给pid指定的进程.

16.试用SIGALRM信号实现一个简单的睡眠函数。

答:暂时没想出来。

linux系统编程试卷(答案)

凌阳教育 嵌入式培训系统编程部分测试试题 注:考试为闭卷,程序题需上机操作运行出结果,考试时间为120分钟 一:选择题(本题共4小题,每题3分共12分) 1)下列不是Linux系统进程类型的是( D ) A 交互进程 B 批处理进程 C 守护进程 D 就绪进程(进程状态) 2)以下对信号的理解不正确的是( B ) A 信号是一种异步通信方式 B 信号只用在用户空间进程通信,不能和内核空间交互 C 信号是可以被屏蔽的 D 信号是通过软中断实现的 3)进程有三种状态( C ) A 准备态、执行态和退出态 B 精确态、模糊态和随机态 C 运行态、就绪态和等待态 D 手工态、自动态和自由态 4)不是进程和程序的区别( B) A 程序是一组有序的静态指令,进程是一次程序的执行过程 B 程序只能在前台运行,而进程可以在前台或后台运行 C 程序可以长期保存,进程是暂时的 D 程序没有状态,而进程是有状态的 二:填空题(本题共6小题,2)、3)两题每空四分,其余每空一分。共23分) 1) 列举八种常见的进程间通信方式无名管道、有名管道、消息队列、信号量、共享内存、信号、套接字 网络上两个主机的进程间通信方式为套接字 2) 命名管道比无名管道的优势提供了一个可以访问的路径名,实现没亲缘关系的进程 间通信 3) 消息队列比命名管道和无名管道的优势可以按类型实现消息的随机查询,没必要先 进先出 4) 按照逻辑结构不同进行数据库划分,Sqlite 数据库属于哪一类关系型数据库 5) 在C语言中操作sqlite数据库,常用的2中方式是sqlite_exec(回调)、

sqlite_gettable(非回调) 6) 列举四种进程调度算法先来先调度(FCFS)、短进程优先调度(SPF)、高优先级调度 (HPF)、时间片轮转调度 三:问答题(本题共7题,每题5分,共35分) 1) 什么是系统调用?系统调用是通过什么方式陷入内核态的?请写出你对系统调用的理解。什么是文件I/O和标准I/O库?文件I/O和标准I/O库的区别? 系统调用是指操作系统提供给用户程序调用的一组特殊接口,用户程序可以通过这组接口获得操作系统内核提供的服务。 系统调用是通过软件中断方式陷入内核的 linux的文件I/O是由操作系统提供的基本IO服务, 标准I/O库通过封装系统调用,提供了一个到底层I/O的接口。 标准I/O默认采用了缓冲机制,还创建了一个包含文件和缓冲区相关数据的数据结构;文件I/O一般没有采用缓冲模式,需要自己创建缓冲区。一种是标准库封装系统调用而成,更高级,一种是系统提供的,比较低级;标准I/O可移植性高、文件I/O可移植性低。 2) 什么是进程?用fork()创建一个子进程时,系统会做什么工作 进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配的单位,不仅是系统内部独立运行的实体也是独立竞争资源的实体。 用fork()时系统会分配子进程一个ID号然后继承父进程的地址空间,包括进程上下文进程堆栈打开的文件描述符等等,他就是父进程的一个复制品。 3) 进程和线程有什么区别? 每个独立的进程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在进程程中,由进程提供多个线程执行的控制。 进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。 4) 什么是线程的互斥和同步,程序应怎样写才能达到互斥或同步? 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。 在写程序时可以用互斥锁和信号量实现线程同步,一个线程访问共享资源时给这个资源上锁其他线程就不能访问了直到上锁的进程释放互斥锁为止。 5) 什么是僵尸进程?孤儿进程?守护进程? 僵尸进程:僵尸进程是指它的父进程已经退出(父进程没有等待(调用wait/waitpid)它),而该进程dead之后没有进程接受,就成为僵尸进程,也就是(zombie)进程。 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成

Linux_期末复习试题(答案)

Linux 期末复习题 一、选择题 1.在创建Linux分区时,一定要创建( D )两个分区 A. FAT/NTFS B. FAT/SWAP C. NTFS/SWAP D.SW AP/根分区 2.在RHEL5中,系统默认的( A )用户对整个系统拥有完全的控制权。 A. root B. guest C. administrator D.supervistor. 3. 哪个目录存放用户密码信息( B ) A. /boot B. /etc C. /var D. /dev 4. 默认情况下管理员创建了一个用户,就会在( B )目录下创建一个用户主目录。 A. /usr B. /home C. /root D. /etc 5. 当使用mount进行设备或者文件系统挂载的时候,需要用到的设备名称位于( D )目录。 A. /home B. /bin C. /etc D. /dev 6. 如果要列出一个目录下的所有文件需要使用命令行( C )。 A. ls –l B. ls C. ls –a D. ls –d 7. 哪个命令可以将普通用户转换成超级用户( D) A. super B. passwd C. tar D. su 8. 除非特别指定,cp假定要拷贝的文件在下面哪个目录下( D) A. 用户目录 B. home目录 C. root目录 D. 当前目录 9. 在vi编辑器里,命令"dd"用来删除当前的( A) A. 行 B. 变量 C. 字 D. 字符 10. 当运行在多用户模式下时,用Ctrl+ALT+F*可以切换多少虚拟用户终端( B) A. 3 B. 6 C. 1 D. 12 11. Linux启动的第一个进程init启动的第一个脚本程序是( B)。 A./etc/rc.d/init.d B./etc/rc.d/rc.sysinit C./etc/rc.d/rc5.d D./etc/rc.d/rc3.d 12. 按下( A)键能终止当前运行的命令 A. Ctrl-C B. Ctrl-F C. Ctrl-B D. Ctrl-D 13. 下面哪个命令用来启动X Window ( B) A. runx B. Startx C. startX D. xwin 14. 用"rm -i",系统会提示什么来让你确认( B) A. 命令行的每个选项 B. 是否真的删除 C. 是否有写的权限 D. 文件的位置 15. 以下哪个命令可以终止一个用户的所有进程( D) A. skillall B. skill C. kill D. killall 16. vi中哪条命令是不保存强制退出( C) A. :wq B. :wq! C. :q! D. :quit 二、填空题 1 在Linux系统中,以_文件__方式访问设备。 2. Linux内核引导时,从文件_/etc/fstad___中读取要加载的文件系统。 3. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,该文件属性是___目录_____。 4. 安装Linux系统对硬盘分区时,必须有两种分区类型:__文件系统分区_______ 和__交换分区_________。

LINUX练习题及参考答案

一、单选 1 . 存放用户帐号的文件是(C)。 A. shadow B. group C. passwd D. gshadow 2 . 下面哪个系统目录中包含Linux使用的外部设备(B)。 A./bin B. /dev C. /boot D. /home 00 3 . Linux系统的联机帮助命令是(D)。 A. tar B. cd C. mkdir D. man 4 . 如何删除一个非空子目录/tmp (B )。 A. del /tmp/* B. rm -rf /tmp C. rm -Ra /tmp/* D. rm –rf /tmp/* 5. 更改一个文件权限的命令是(C)。 A. change B. attrib C. chmod D. at 6. 如果执行命令#chmod 746 file.txt,那么该文件的权限是(A)。 A. rwxr--rw- B. rw-r--r— C. --xr--rwx D. rwxr--r— 7. 如果您想列出当前目录以及子目录下所有扩展名为―.txt‖的文件,那么您可以使用的命令是(A )。 A. ls *.txt B. find –name ―.txt‖ C. ls –d .txt D. find . ―.txt‖ 8 . 怎样显示当前目录(A)。 A. pwd B. cd C. who D. ls 9 . 欲把当前目录下的file1.txt 复制为file2.txt,正确的命令是(D)。 A. copy file1.txt file2.txt B. cp file1.txt | file2.txt C. cat file2.txt file1.txt D. cat file1.txt > file2.txt 10.为了达到使文件的所有者有读(r)和写(w)的许可,而其他用户只能进行只读访问,在设置文件的许可值时,应当设为:( B )。 A. 566 B. 644 C. 655 D. 744 11.为了将当前目录下的压缩归档文件myftp.tar.gz解压缩,我们可以使用:( A )。 A. tar -xvzf myftp.tar.gz B. tar -xvz myftp.tar.gz C. tar -vzf myftp.tar.gz D. tar -xvf myftp.tar.gz 12.用来保存用户名、个人目录等资料的文件是(B )。 A. /etc/shadow B. /etc/passwd C. /etc/inittab D. /etc/group 13.一个文件的权限是-rw-rw-r--,这个文件所有者的权限是( C )。 A. read-only B. write C. read-write 14.绝大多数Linux分区使用的文件系统类型是( D )。 A. vfat B. nfs C. swap D. ext2 15.在Linux系统中,硬件设备大部分是安装在( B )目录下的。 A. /mnt B. /dev C. /proc D. /swap 16.比较重要的系统配置资料,一般来说大部分位于( A )目录下。 A. /etc B. /boot C. /home D. /usr 17.要改变文件的拥有权,使用命令( B )。 A. chgrp B. chown C. chsh D. chmod 18.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是(D )。 A -m B –d C -f D –p 19.局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是(B )。

Linux复习试题

Linux复习试题 (再次重申:考试并不局限该复习题,一定要看看书,好好复习) 一.填空题 1.vi编辑器具有两种工作模式,------------和--------------。命令模式和输入模式 2.链接分为------------和-------------- 。链接分为硬链接和符号链接;删除原文件,硬链接文件内容仍保留;硬链接和符号连接都是产生一个新的链接文件'; 硬连接只能建立对文件链接。符号链接可以跨不同文件系统创建。 3.我们可以用ls –al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段,其中第一段占--1---位,表示--文件类型-----------,第二段占3位,表示-文件所有者----------对该文件的权限。 4. 某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进制数为----644----------,该文件属性是--目录------------。 5. 唯一标识每一个用户的是---用户ID-----------和用户名。 6. 将前一个命令的标准输出作为后一个命令的标准输入,称之为----管道----------。 7. 在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入w test.txt ----------。 8.在shell编程时,使用方括号表示测试条件的规则是:方括号两边必须有----空格----------。 9.在Linux系统下,第二个IDE通道的硬盘(从盘)被标识为----hdb----------。 10.将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式-tar zcvf /home/wang.tar.gz /home/stud1/wang 。-------------。 11.管道就是将前一个命令的---标准输出-----------作为后一个命令的--标准输入------------。12.shell不仅是--用户命令------------,它同时也是一种功能强大的编程语言。------- bash-------是Linux的缺省shell。 13.增加一个用户的命令是---adduser 或useradd-----------。 14.用--- >;>; -----------符号将输出重定向内容附加在原文的后面。 15. Linux系统中有两块IDE硬盘,第一块硬盘分为三个分区,则第三个分区表示为-------------,第二块硬盘分为五个分区,则第三个分区表示为------------。 16.Linux系统安装完后要配置网卡等信息,其中/etc/sysconfig------------是网络配置文件,保存着IP、网关和域名等信息。 17.Linux系统支持多分区,根据分区的功能,------------是存放所有用户的主目录,------------是交换分区,------------是根目录,------------存放临时文件。 二.判断题

linux期末考试练习题

基础知识 linux系统的应用领域:嵌入式领域、应用服务器、软件开发、桌面应用 linux系统的特点:开放性、多用户、多任务、良好的用户界面、设备独立性、良好的可移植性、丰富的网络功能、可靠的系统安全 linux系统的组成:内核、shell、文件系统、应用程序 linux系统下的文件类型:普通文件、设备文件、目录文件、管道文件、链接文件 软链接文件与硬链接文件的区别:硬链接记录的是目标的inode,软链接记录的是目标的路径。软链接就像是快捷方式,而硬链接就像是备份。软链接可以跨分区的链接,而硬链接由于inode的缘故,只能在本分区中做链接。 Linux的目录结构:/、/home、/root、/bin、/sbin、/dev、/lib、/tmp、/mnt、/boot、/proc、/opt、/selinux、/var、/etc、/usr、/lost+found、/srv 关机与重启.shutdown(-k并不真正关闭,只是发出警告信息给所有用户,-r关闭后立即重启,-h关闭后不重启,-f快速关闭,重启时不进行磁盘检测,-n快速关闭,不经过init程序关机,-c中断关闭系统,[-time]设定关闭前的时间)halt(-w并不是真正关闭或重启,只是写“wtmp “记录,-d不写”wtmp“记录,-f没调用“shutdown”而强制关闭或重启,-i关闭或重启前关掉所有的网络接口,-p该选项为缺省选项,即“power off”)root重启init 0关闭 init 1重启Man手册与help:使用man手册页、使用help命令、whereis命令(b只查找二进制文件,m查找主要文件,s查找来源,u查找不常用的记录文件) 什么是shell:Shell就像一个壳层,这个壳层介于用户和操作系统之间,负责将用户的命令解释为操作系统可以接收的低级语言,并将操作系统响应的信息以用户可以了解的方式来显示。使用;命令先执行命令1,不管命令1是否出错,接下来执行命令2,使用&&命令只有当命令1正确运行完毕后才能执行命令2,命令别名alias,取消别名unalias,输出重定向command > file输入重定向command < file错误重定向command 2> fie追加重定向command >> file同时实现输出和错误重定向command &> file 基础命令 Pwd显示工作目录路径,cd更改工作目录路径,ls列出子目录和文件信息,touch创建空文件、更改文件或目录时间,mkdir创建目录,rmdir删除空目录(-p递归删除目录),cp复制文件和目录,mv移动或更名现有文件或目录(-i系统询问,-f不询问),rm删除文件或目录(-f忽略不存在的文件,不给出提示,-r将参数中列出的全部目录和子目录均递归删除,-i提示是否删除),wc统计文件字节数、字数或行数(-l统计行数,-w统计单词数,-c统计字符数),ln创建链接文件(-s 创建软链接),cat显示文本文件(-n由1开始编号,-b对非空行编号,-s连续两行以上的空白行替换为一行空白行),more分页显示文本文件(按空格键显示下一页,按b返回上一页),less回卷显示文本文件,head显示指定文件前若干行(-n显示开头的几行,默认为前10行,-q表明不显示文件名的首部,-v表明要显示文件名的首部),tail查看文件末尾数据(+num从num行以后开始显示文件内容,-num从距文件末尾num行处开始显示文本内容,默认为后10行,-c以字节为计数单位显示文本文件),sort对文件中的数据进行排序(-m若给定文件已经排好序,合并文件,-c检查给定文件是否已排好序,若都没有排好序,则打印一个出错信息,并以状态值1退出,-u 对排序后认为相同的行只留其中一行,-d按字典顺序排,-f将小写与大写同等对待,-I忽略非打印字符,-r按逆序输出排序结果),uniq将重复行从输出文件中删除(-c在每行行首加上本行在文件中出现的次数,-d只显示重复行,-u只显示不重复行),cut从文件每行中显示出选定的字节、字符或字段,comm比较两个已排过序的文件(-1不显示只在第1个文件里出现过得行,-2不显示只在第二个文件里出现的行,-3不显示只在第1和2文件里出现过得行),diff逐行比较两个文本文件,列出其不同之处(-b忽略行尾的空格,-c采用相异之处的上下文输出格式,-e采用一个合法的ed脚本作为输出,-r当file1和file2是目录时,递归作用到各文件和目录上),grep查找文件中符合条件的字符串,find列出文件系统中符合条件的文件或目录(-name按文件名查找文件,-perm按照文件权限查找,-user按文件属性,-group按文件所属的组,-cmin n在过去n分钟内被修改过的文件,-ctime n在过去n天内被修改过的文件,-size n大小为n的文件,-type查找某一类型的文件),locate在数据库中查找文件,whereis查找指定文件、命令和手册页位置,file 查询文件类型,whatis查询命令功能,which显示可执行命令路径,uname显示计算机及操作系统相关信息(-a显示全部信息,-m显示计算机硬件类型,-n显示在网络上的主机名称,-r显示操作

Linux期末复习试题

一、单项选择题(将题目答案写在答题纸上,每题3分,共60分) 1、下列关于Linux操作系统的描述错误的是(D) A、GNU/Linux是Linux的全称 B、Linux是能够达到主机可靠性要求的少数操作系统之一,许多Linux主机和服务器 在国内和国外大中型企业中每天24小时,每年365天不间断地运行。这是Microsoft Windows Server等操作系统所不能比拟的。 C、Linux系统是世界上唯一能够在嵌入式设备、个人计算机、服务器、小型机直到大 型机上运行的操作系统,没有其他操作系统能够做到这一点。 D、Linux的创始人是就叫Linux 注:linux是一个多任务的多用户的多平台的在保护模式下的遵守POSIX标准的遵守SYSV和BSD扩展的遵守GPL许可的32位(也有64位)的类UNIX的开放源代码的免费操作系统。 Linux最早是Linus Torvalds在1991年开始设计开发的。 2、Linux内核主要有(D) A、进程管理 B、内存管理 C、文件管理 D、以上都包括 注:进程调度-控制着进程对CPU的访问。 内存管理-允许多个进程安全地共享主内存区域 虚拟文件系统-隐藏各种不同硬件的具体细节,为所有设备提供统一的接口。 网络-提供了对各种网络标准协议的存取和各种网络硬件的支持。 进程间通信(IPC)-支持进程间各种通信机制,包括共享内存、消息队列及管道等。 3、下列说法正确的是(C)(或者考察存储器的价格容量速度关系等) A、并发指的是真正意义的同时执行 B、并行仅指宏观上同时执行,微观上每个时间片只有一个进程执行 C、MMU是在CPU中负责内存页面映射的部件单元

Linux复习题

Linux复习题 一、选择题 1.组台键( A )可用于关闭X window图形化用户界面。 A Ctrl+Alt+BackSpace B Ctrl+Alt+Space C Ctrl+Shift+BackSpace D Ctrl+Shift+Space 2.pwd命令功能是(D)。 A 设置用户的口令 B 显示用户的口令 C 相当于Windows命令行界面输入cd命令 D 相当于在Windows命令行界面输入命令dir 3.以下( C )文件保存有用户账号的信息。 A./etc/users B./etc/gshadow C./etc/shadow D /etc/inittab 4.超级用户的用户主目录是(B)。 A /目录 B /root目录 C /home目录 D /home/root目录 5.超级用户的UID为( A )。 A.0 B.1 C. 2 D.500 6.执行命令“chmod o-rw myfile”后,myfile文件的权限变化为( B )。 A.同组用户可读写myfile文件 B.其他用户可读写myfile文件 C.所有用户都可读写myfile文件 D.文件所有者读写myfile文件 7.Linux中与Windows系统中Program Files文件夹功能相类似的目录是( D )。 A /var B /home C /proc D /usr 8.要删除目录/home/user1/subdir连同其下级目录和文件,不需要依次确认,正确命令 是( A )。 A rmdir –p /home/userl/subdir B rmdir -pf /home/userl/subdir C rm -df /home/userl/subdir D rm -rf /home/userl/subdir 9.Linux系统中进程的优先级取值范围是( A )。

Linux题库与答案

一、填空题 1. 建立用户账号的命令是__useradd________。 2. 修改账号密码的命令是__passwd________。 3. 更改用户密码过期信息的命令是__chage________。 4. 创建一个新组的命令是___groupadd_______。 5. 用于在不注销的情况下切换到系统中的另一个用户的命令是___su_______。 6. 显示系统中进程信息的命令是_____ps__-aux_____。 7. 以树状方式表现进程的父子关系的命令是___pstree_________。 8. 显示当前系统正在执行的进程的相关信息的命令是___top_________。 9. 显示或者设置当前系统的主机名的命令是___hostname_________。 10. Linux 系统中使用最多的文件系统是_______ext3/4____________。

11. 列出磁盘分区信息的命令是___df_______。 12. 将设备挂载到挂载点处的命令是__mount________。 13. 检查文件系统的磁盘空间占用情况的命令是____du______。 14. 统计目录(或文件)所占磁盘空间大小的命令是__du________。 15. 为文件建立在其他路径中的访问方法(链接)的命令是__ln_______,链接有两种:___ 软链接______和___硬链接______。 改变文件或目录的读写和执行权限的命令是__chmod________。 17. 指定在创建文件或目录时预设权限掩码的命令是___umask_______。 18. 改变文件或目录所有权的命令是__chown________。 19. ACL 可以为某个文件单独设置该文件具体的某用户或组的权限。需要掌握的命令也只有 三个:__getfacl__、__setfacl__、__chacl__。

嵌入式Linux系统移植试题

嵌入式Linux系统移植试题(时间:1个半小时) 一、选择题(每题2分,共50分,包括单选和多选,多选、少选均不得分) 1.嵌入式linux系统软件部分一般包括() [A] bootloader[B] linux内核[C] 根文件系统[D]用户应用程序 2.一般情况下,在搭建嵌入式linux开发环境时主机需要安装的软件有() [A] 串口通信软件[B] tftp服务器[C] nfs服务器[D]usb 3.下列选项中符合gcc的编译流程的是( ) [A] 预处理->编译->汇编->连接[B] 预处理->汇编->编译->连接[C] 编译->预处 理->汇编->连接[D预处理->连接->汇编->编译 4.gcc使用下列哪个选项可以查看编译的详细过程() [A] -o[B] -v [C] -E [D] -g 5.下列二进制工具哪个是丢弃目标文件的全部或者特定符号,减少文件体积的() [A] size[B] as [C ] nm [D ] strip 6.下列二进制工具哪个是用来反汇编的() [A] nm[B] objdump [C ] objcopy [D ] string 7.下列二进制工具哪个是用来进行目标格式转换的() [A] nm[B] objdump [C ] objcopy [D ] string 8.下列二进制工具哪个是用来把程序地址转换为文件名和行号的() [A] nm[B] objdump [C ] objcopy [D ] addr2line 9.下列二进制工具哪个是用来将目标文件生成静态库的() [A] ar[B]nm [C ] objcopy [D ] objdump 10.FS2410开发板如果从nand flash启动,启动后()访问到nor flash;如果从nor flash 启动,启动后()访问nand flash。 [A] 可以[B] 不可以 11.SMDK2410开发平台上,linux要求bootloader将内核参数存储在什么位置() [A] 0x30008000 [B] 0x30000100 [C ] 0x30004000 [D ] 0x33f80000 12.SMDK2410开发平台上,linux要求bootloader将平台号保存在() [A] r0[B] r1 [C ] r2 [D ] r3 13.SMDK2410开发平台上,linux要求bootloader在运行内核前,让系统进入何种模式() [A] user[B] svc [C ] system 14.u-boot所支持的命令中,哪个是来设置环境变量的() [A] setenv [B] mm [C ] mtest [D ] bootm 15.u-boot支持的命令中,哪个是擦除nor flash的命令() [A] nand erase[B] protect [C ] erase [D ] cp 16.在内核配置时,哪个关键词是来包含下一级Kconfig( ) [A] menu endmenu[B] source [C ] choice endchoice [D ]depends on 17.内核启动过程中,如果终端出现”Error:a”错误,可能出现的原因是()

Linux操作系统期末复习题(含答案)

Linux 期末复习题(一) 一、选择题 (每小题2分,共50分) 2.在Ubuntu Linux中,系统默认的(A)用户对整个系统拥有完全的控制权。 A. root B. guest C. administrator D.supervistor. 3. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( B ) A. NID B. PID C. UID D. CID 4. 下面哪个命令是用来定义shell的全局变量( D ) A. exportfs B. alias C. exports D. export 5. 哪个目录存放用户密码信息( B ) A. /boot B. /etc C. /var D. /dev 6. 默认情况下管理员创建了一个用户,就会在( B )目录下创建一个用户主目录。 A. /usr B. /home C. /root D. /etc 7. . 当使用mount进行设备或者文件系统挂载的时候,需要用到的设备名称位于( D )目录。 A. /home B. /bin C. /etc D. /dev 8. 如果要列出一个目录下的所有文件需要使用命令行( C )。 A. ls –l B. ls C. ls –a(所有) D. ls –d 9. 哪个命令可以将普通用户转换成超级用户(D ) A. super B. passwd C. tar D. su 10. 除非特别指定,cp假定要拷贝的文件在下面哪个目录下( D ) A. 用户目录 B. home目录 C. root目录 D. 当前目录 11. 在vi编辑器里,命令"dd"用来删除当前的( A ) A. 行 B. 变量 C. 字 D. 字符 14. 按下(A )键能终止当前运行的命令 A. Ctrl-C B. Ctrl-F C. Ctrl-B D. Ctrl-D 17. 用"rm -i",系统会提示什么来让你确认( B ) A. 命令行的每个选项 B. 是否真的删除 C. 是否有写的权限 D. 文件的位置 18. 以下哪个命令可以终止一个用户的所有进程( D ) A. skillall B. skill C. kill D. killall 19.在Ubuntu Linux中,一般用(D )命令来查看网络接口的状态 A. ping B. ipconfig C. winipcfg D ifconfig 20. vi中哪条命令是不保存强制退出( C )(第五章) A. :wq B. :wq! C. :q! D. :quit 22.在下列分区中,Linux默认的分区是(B ) A. FAT32 B. EXT3 C FAT .D NTFS 24.如果用户想对某一命令详细的了解,可用(C) A. ls B. help (内部) C. man(列举的信息多) D dir 二、填空题 (每空1分,共10分) 26. 在Linux系统中,以_文件的_方式访问设备。 29. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限644,该文件属性是目录。 30. 静态路由设定后,若网络拓扑结构发生变化,需由__系统管理员___修改路由的设置。 33. 编写的Shell程序运行前必须赋予该脚本文件__执行___权限。

Linux复习习题

复习检测习题 1.关于Linux内核版本的说法,以下错误的是(C)。 A.表示为主版本号.次版本号.修正号B.1.2.3表示稳定的发行版 C.1.3.3表示稳定的发行版D.2.2.5表示对内核2.2的第5次修正 2.除非特别指定,cp假定要拷贝的文件在下面哪个目录下( D )。 A. 用户目录 B. home目录 C. root目录 D. 当前目录 3.在vi编辑器里,命令"dd"用来删除当前的( A )。 A. 行 B. 变量 C. 字 D. 字符 4.DNS域名系统主要负责主机名和( A )之间的解析。 A IP地址 B MAC地址 C 网络地址 D 主机别名 5.自由软件的含义是()。 A.用户不需要付费B.软件可以自由修改和发布 C.只有软件作者才能向用户收费D.软件发行商不能向用户收费 6.系统引导的过程一般包括如下几步:a.MBR中的引导装载程序启动;b.用户登录; c.Linux内核运行;d.BIOS自检。正确的顺序是(D )。 A.d,b,c,a B.d,a,c,b C.b,d,c,a D.a,d,c,b 7.欲把当前目录下的file1.txt 复制为file2.txt,正确的命令是( B )。 A. copy file1.txt file2.txt B. cp file1.txt | file2.txt C. cat file2.txt file1.txt D. cat file1.txt > file2.txt 8.在UNIX/Linux系统添加新用户的命令是(D ) A. groupadd B. usermod C. userdel D. useradd 9.当使用mount进行设备或者文件系统挂载的时候,需要用到的设备名称位于( D )目 录。 A. /home B. /bin C. /etc D. /dev 10.Linux启动的第一个进程init启动的第一个脚本程序是( A )。 A./etc/rc.d/init.d B./etc/rc.d/rc.sysinit C./etc/rc.d/rc5.d D./etc/rc.d/rc3.d 11.按下( A )键能终止当前运行的命令。 A. Ctrl-C B. Ctrl-F C. Ctrl-B D. Ctrl-D 12.启动samba服务器进程,可以有两种方式:独立启动方式和父进程启动方式,其中后 者是在( D )文件中以独立进程方式启动。 A./usr/sbin/smbd B./usr/sbin/nmbd C.rc.samba D./etc/inetd.conf

linux题库

LINUX题库 选择题部分 1.( A )可以实现树形文件结构的递归复制。 A.cp -r B.cp -R C.copy –r D.copy -R 2.chmod g=r 语句的作用是( B )。 A.组对文件拥有读权限 B.给组添加读权限 C.将组的读权限移除 D.赋予读权限的同时移除其他选项 3.使用( A )参数可以将以扩展名的文件解压。 & A.zxvf B.zbvf C.zwf D.xvc 4.超级用户(root)的UID是( A ) A.0 B.502 C.1024 D.可以是任何值5.cron 后台常驻程序 (daemon) 用于:( D ) A. 负责文件在网络中的共享 B. 管理打印子系统Manages the printing subsystem C. 跟踪管理系统信息和错误 D. 管理系统日常任务的调度 (scheduling) 6.在大多数Linux发行版本中,以下哪个属于块设备 (block devices) ( B ) A. 串行口 B. 硬盘 C. 虚拟终端 D. 打印机 7.下面哪个Linux命令可以一次显示一页内容( C ) A. pause B. cat · C. more D. grep 8.怎样了解您在当前目录下还有多大空间( C ) A. Use df B. Use du / C. Use du . D. Use df . 9.怎样更改一个文件的权限设置( B ) A. attrib B. chmod C. change D. file 10.假如您需要找出 /etc/ 文件属于哪个包 (package) ,您可以执行:( C ) A. rpm -q /etc/ B. rpm -requires /etc/ C. rpm -qf /etc/ D. rpm -q | grep /etc/ 11.假如当前系统是在 level 3 运行,怎样不重启系统就可转换到 level 5 运行( B )$ A. Set level = 5 B. telinit 5 C. run 5 D. ALT-F7-5 12.那个命令用于改变 IDE 硬盘的设置( C ) A. hdparam B. ideconfig C. hdparm D. hddparm 13.下面哪个命令可以列出定义在以后特定时间运行一次的所有任务( A )

linux及C试题(含答案)

华清远见嵌入式学院《Linux及C》考试题(B卷) 一、选择题(23题,每空2分,共46分) 1.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项(D )。 A.-m B.-d C.-f D.-p 2.任何时候用户需要回到用户主目录时可以使用命令 ( A ) 。 A. cd B. pwd C. path D. cd . 3.将当前目录下的文件shell.sh移动到目录/home/linux下的命令为( B ) 。 A. cp shell.sh /home/linux B. mv shell.sh /home/linux C. ls shell.sh / home/linux/she ll.sh D. mv /root/shell.sh /home/linux/shell.sh 4.下面( C )命令不能用来显示文件的内容。 [A] more [B] less [C] find [D] cat 5./etc/shadow文件中存放( B )。 A.用户账号基本信息 B.用户口令的加密信息 C.用户组信息 D.文件系统信息 6.LINUX所有服务的启动脚本都存放在( B )目录中。 A./etc/rc.d/init.d B./etc/init.d C./etc/rc.d/rc D./etc/rc.d 7.若要将当前目录中的myfile.txt文件压缩成myfile.txt.tar.gz,则实现的命令为(C )。 A.tar -cvf myfile.txt myfile.txt.tar.gz B.tar -zcvf myfile.txt myfile.txt.tar.gz C.tar -zcvf myfile.txt.tar.gz myfile.txt D.tar -cvf myfile.txt.tar.gz myfile.txt 8.以下程序的运行结果为( C ) #include #include int SubCount(char *dest, int count) { strcpy(dest,"555"); count++; return 0; } int main() { int count = 3; char caBuf[8]; SubCount(caBuf,count); printf("%d\n",count);

Linux操作系统期末复习资料

电信2012级《Linux操作系统》期末复习提纲第1章概述 操作系统的概念与功能 操作系統的概念: 1.操作系统是计算机系统的一种基本软件,它直接管理和控制计算机的硬件和软件资源,合理地调度资源,使之得到充分的利用;并为用户使用这些资源提供一个便当的操作环境和优良的用户界面。 2.从资源角度看,操作系统是管理和控制计算机资源的软件。 3.从用户角度看,操作系统是用户与计算机的接口。 操作系統的功能: 1.处理器管理:在多道程序间分配和调度CPU,协调各程序的运行。 2.存储器管理:对内存储器进行分配、保护和扩充。 3.设备管理:对设备进行有用地管理和分配,并控制设备完成I/O操作。 4.文件管理:管理文件的存储和检索操作,并对文件实施共享、保密和保护措施。 5.用户接口:提供使用界面,便当用户使用系统功能。 Linux系统的特点 1.继承UNIX优秀品质,具有出色的性能和稳定性; 2.遵照GPL许可,自由软件; 3.符合POSIX标准,兼容性好; 4.适用于各种硬件平台,可移植性好; 5.网络功能强大;

6.安全性好。第2章Linux操作基础 命令的格式; 命令名[选项1] [选项2] ... [参数1] [参数2] ... 简单命令的功能与用法:echo、who、date、cal 文件系统概念: 文件命名与通配符 1.文件的命名:Linux文件名的最大长度是255个字符,通常由字母、数字、‘.’、‘_’和‘-’组成。以‘.’开头的文件是隐含文件。 2.文件名中不能含有‘/ ’字符和空字符‘\0’,因为它们对Linux内核具有分外含义。如‘/ ’表示根目录或路径分隔符。 3.文件名中不应含有以下字符,因为它们对Shell具有分外含义:; | < > ` “ “$ ! % & * ? \ ( ) [ ] 文件类型及表示法 1.普通文件(-):包括文本文件、数据文件、可执行的二进制程序等。 2.目录文件(d):一种分外的文件,用于构成文件系统的分层树型结构。 每个目录文件中至少包括两个文件,“..”表示上一级目录,“.”表示该目录本身。 3.设备文件:一种分外文件,Linux系统利用它们来标识各个设备驱动器,核心使用它们与硬件设备通信。有两类特别的设备文件:字符设备(c)和块设备(b)。 文件(包括目录)权限的含义及表示法(字符和数字表示法)

Linux 基础试题

Linux 基础题库 一.单项选择题 1.下列厂商和操作系统相对应正确的是( B ) A.Digital - MVS B.Sun – Solaris C.IBM – VMS D.HP - VMS 2.Linux系统的1.0版内核的发布是在( C ) A.1992年 B.1993年 C.1994年 D.1995年 3.完全安装Red Hat Linux 8.0需要的磁盘空间是( D ) A.1.8GB B.2.3GB C.400MB D.4.5GB 4.Linux系统是一个( D )的操作系统 A.单用户、单任务 B.单用户、多任务 C.多用户、单任务 D.多用户、多任务5.在安装开始前,用光盘启动系统,想要进入字符界面安装,需要输入的命令是( C )A.linux doc B.linux C.linux text D.linux note 6.Red Hat Linux系统中用户默认的Shell是( A ) A.bash B.ksh C.csh D.sh 7.在Linux系统中,管道的符号是( C ) A.> B.< C.| D.: 8.Linux的文件名的长度限制在( D )字符以内 A.11 B.128 C.256 D.255 9.如果忘记了ls命令的用法,可以采用( C )命令获得帮助 A.?ls B.help ls C.man ls D.get ls 10.在vi编辑器的命令模式中,在光标所在位置的右侧插入字符的命令是( A) A.a B.A C.i D.I 11.在vi编辑器的命令模式中,删除一行的命令是( B ) A.yy B.dd C.pp D.xx 12.以下输出重定向命令中,覆盖存在文件的是( B ) A.>> B.> C.< D.<< 13.在GRUB的配置文件grub.conf中,“timeout=-1”的含义是( C ) A.不等待用户选择,直接启动默认的系统 C.一直等待用户选择要启动的系统 B.在10秒钟内,等待用户选择要启动的系统 D.无效 14.系统中文件系统的挂载配置文件是( A ) A./etc/fstab B./usr/fstab C./etc/mount D./usr/mount 15.在挂载文件系统的时候,如果想要以只读的方式挂载,需要的参数是( A ) A.-o ro B.-o rw C.-a ro D.-a rw 16.要给文件file1加上其他人可执行属性的命令是( C ) A.chmod a+x B.chown a+x C.chmod o+x D.chown o+x 17.添加用户“user”的命令是( B ) https://www.360docs.net/doc/427757183.html,er user https://www.360docs.net/doc/427757183.html,eradd user C.add user D.adduser 18.删除用户“user”及其主目录下所有文件的命令是( B ) https://www.360docs.net/doc/427757183.html,erdel –p user https://www.360docs.net/doc/427757183.html,erdel –r user https://www.360docs.net/doc/427757183.html,erdel –a user https://www.360docs.net/doc/427757183.html,erdel –z user 19.查看系统当中所有进程的命令是( D ) A.ps all B.ps aix C.ps auf D.ps aux 20.显示系统启动时间的命令是( B )

相关文档
最新文档