2021年04月18日Linux专项练习1

考点1:Linux文件权限

在linux文件系统权限中(rwx),只读权限对应的数值为()

  • A 4
  • B 2
  • C 1
  • D 选项均不正确

解析

显示答案/隐藏答案正确答案: A

“4=r,2=w,1=x”
r 代表读,w 代表写,x 代表执行,
如果可读,权限是二进制的100,十进制是4;
如果可写,权限是二进制的010,十进制是2;
如果可运行,权限是二进制的001,十进制是1

考点2:cp -f命令

cp拷贝命令的-f参数含义为?

  • A 拷贝目录
  • B 递归处理
  • C 显示执行过程
  • D 强制进行拷贝

解析

显示答案/隐藏答案正确答案: D

-r :recursive,递归处理
-v :verbose,显示详细过程
-f :force,强制执行,多用于覆盖拷贝。无论目的目录是否有同名文件,强制复制

cp:将一个或多个源文件或者目录复制到指定的文件或目录。
选项:
-a:与”-dpR”相同
-d:当复制符号链接时,把目标文件或目录也建立为符号链接,并指向与源文件或目录连接的原始文件或目录
-f:强行复制文件或目录,不论是否存在
-i:覆盖既有文件前先询问用户
-l:对源文件建立硬链接,而非复制文件
-p:保留源文件或目录的属性
-R/r:递归处理指定目录与子目录
-s:对源文件建立符号链接,而非复制文件
-u:只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在才复制文件
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件默认后缀
-b:覆盖已经存在的文件目标前将目标文件备份
-v:详细显示命令执行的操作

举个栗子:
将文件jieni复制到usr/tmp下,并改名为pika
cp jieni /usr/tmp/pika

将目标/usr/jieni下所有文件复制到/usr/pika
cp /usr/jieni /usr/pika

交互式方式(询问)将目录/usr/jieni中a开头的所有.c文件复制到/usr/pika中
cp -i /usr/jieni a*.c /usr/pika

考点3:Vsftpd配置

Vsftpd 配置本地用户传输速率的参数?

  • A Local _max_rate
  • B anon _max_rate
  • C user _max_rate
  • D max_user

解析

显示答案/隐藏答案正确答案: A

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。
local_max_rate=0 实体用户的传输速度限制,单位为bytes/second, 0 为不限制。

Vsftpd 配置

local_max_rate=0:

本地用户使用的最大传输速度,单位为B/s,0 表示不限制速度。预设值为0。

anon_max_rate=0


设置匿名登入者使用的最大传输速度,单位为B/s,0 表示不限制速度。默认值为0。

考点4:Linux命令返回直含义

linux命令执行成功后会返回

  • A 0
  • B 1
  • C 2
  • D -1

解析

显示答案/隐藏答案正确答案: A

考点5:

你在一台Windows 2000 Server 上部署了几个web 站点,这些Web 站点都已启用了日志。你用一个第三方的报表工具来分析web站点产生的日志文件,你发现所有从上午7:00到午夜的数据都被包含在第二天的日志文件中。你希望这些数据包含在当天的日志文件中,你该怎么做?

  • A 确保日志类型被设置为W3C
  • B 在web站点的日志属性中修改日志翻转属性
  • C 在web服务器的时间属性中修改时间区域设置
  • D 在web服务器上配置时间服务器使用LocalSystem账户

解析

显示答案/隐藏答案正确答案: B

考点6:UNIX系统代码段和数据段分开的目的

关于UNIX系统代码段和数据段分开的目的,错误的说法有()。

  • A 可共享正文
  • B 可共享数据
  • C 可重入
  • D 可保护代码为只读
  • E 方便编程
  • F 更好支持内存回收策略

解析

显示答案/隐藏答案正确答案: E
1)防止程序指令被修改,设置代码段权限为只读,设置数据段权限为可读写

2)代码段和数据段分开有利于提高程序的局部性,现代CPU缓存一般设计为数据缓存和指令缓存分离,指令和数据分开存放可以提高CPU缓存命中率。

3)共享指令,当系统运行多个程序的副本时,它们指令时一样的,因此内存只需保存一份程序的指令代码。每个副本进程的数据区是进程私有,可以节省内存。
1)代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存中的镜像。代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作——它是不可写的。
2)数据段:数据段用来存放可执行文件中已初始化全局变量,换句话说就是存放程序静态分配的变量和全局变量。
3)BSS段:BSS段包含了程序中未初始化的全局变量,在内存中 bss段全部置零。
4)堆(heap):堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)
它的物理内存空间是由程序申请的,并由程序负责释放。
5)栈:栈是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)。除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。由于栈的先进先出特点,所以栈特别方便用来保存/恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区。
实际上,在Linux系统下并没有强调分段,每个进程缺省情况下“数据段”,“堆栈段”和“代码段”都使用等价的段描述,映射到相同的线性地址空间,除非你个别设置LDT.

考点7:dvm进程和Linux进程

下面关于andriod dvm的进程和Linux的进程,应用程序的进程说法正确的是

  • A DVMdalivk的虚拟机,每一个Andriod应用程序都在它自己的进程中运行,都拥有一个独立的Dalivk虚拟机实例,而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念
  • B DVMdalivk的虚拟机,每一个Andriod应用系统程序都在它自己的进程中运行,不一定拥有一个独立的Dalivk虚拟机实例,而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念
  • C DVMdalivk的虚拟机,每一个Andriod应用系统程序都在它自己的进程中运行,不一定拥有一个独立的Dalivk虚拟机实例,而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念
  • D DVMdalivk的虚拟机,每一个Andriod应用程序都在它自己的进程中运行,都拥有一个独立的Dalivk虚拟机实例,而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念

解析

显示答案/隐藏答案正确答案: D

Android系统用的就是Linux的内核,DVM可以理解成在Linux上跑的程序,每个应用程序运行时,都会启动一个DVM实例,也就是一个Linux的进程,因此DVM进程和Linux进程实际上是一回事。

考点8:线程

下面说法哪个正确的:

  • A 各个线程拥有相同的堆栈
  • B i++是线程安全的,不需要同步
  • C x=y是线程安全的,不需要同步
  • D 对进程来说,其虚拟内存的大小不受物理内存大小的限制

解析

显示答案/隐藏答案正确答案: D

线程有自己的栈,但没有堆所以A错。普通整数的一般赋值、增量和减量语句会产生多条机器指令,操作均不具有原子性,需要同步,BC错。虚拟存储器具有请求调入和置换功能,所以虚拟内存的大小不受物理内存大小的限制。D对。

考点9:进程通讯方式

进程之间通信都有哪些方式?

  • A 共享内存
  • B 消息传递
  • C 系统管道
  • D 临界区

解析

显示答案/隐藏答案正确答案: ABC