2021年03月22日Linux专项练习3

考点1:Linux添加用户命令

增加一个用户的命令是什么

  • A useradd
  • B usermod
  • C groupadd
  • D userdel

解析

显示答案/隐藏答案正确答案: A
  • useradd 增加用户
  • usermod 修改用户账号信息
  • groupadd 添加组账号
  • userdel 删除用户

考点2:查看线程信息的gdb

写出完成gdb查看线程信息功能的gdb命令。

  • A bt
  • B info thread
  • C set scheduler-locking off
  • D info break

解析

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

backtrace bt

打印当前的函数调用栈的所有信息。

info threads

显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。前面有*的是当前调试的线程。

set scheduler-locking

线程调试显示线程状态,off 不锁定任何线程

info break

可列出所有断点信息,info break 后也可设置要查看的break num

考点3:Linux查看CPU占用

linux查看cpu占用的命令是什么?

  • A top
  • B netstat
  • C free
  • D df

解析

显示答案/隐藏答案正确答案: A
命令 功能
top 查看CPU占用、
netstat 显示网络连接、路由表、网络接口信息、
free 查看内存使用情况、
df 检查文件系统的磁盘空间的占用情况

top

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@localhost ~]# top
top - 14:55:48 up 1 day, 7:53, 1 user, load average: 5.39, 5.48, 5.66
Tasks: 459 total, 5 running, 454 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.9 us, 10.5 sy, 0.0 ni, 86.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3686064 total, 210728 free, 1495188 used, 1980148 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 2154167 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
459 aid_med+ 20 0 105704 25716 8812 S 28.6 0.7 525:05.08 mediaserver
18389 root 20 0 112596 2364 1372 R 23.8 0.1 0:00.13 top
271 root rt 0 0 0 0 S 4.8 0.0 20:48.85 cfinteractive
3100 root 19 -1 0 0 0 S 4.8 0.0 11:05.56 VosRXThread
1 root 20 0 1256 1000 396 S 0.0 0.0 1:29.37 init
2 root -2 0 0 0 0 S 0.0 0.0 0:00.25 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 2:26.66 ksoftirqd/0
6 root 20 0 0 0 0 S 0.0 0.0 0:00.10 kworker/u16:0
7 root 20 0 0 0 0 S 0.0 0.0 3:14.78 rcu_preempt
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:00.68 rcu_sched
10 root rt 0 0 0 0 S 0.0 0.0 0:24.56 migration/0
11 root rt 0 0 0 0 S 0.0 0.0 0:18.06 migration/1
12 root 20 0 0 0 0 S 0.0 0.0 1:50.00 ksoftirqd/1
15 root rt 0 0 0 0 S 0.0 0.0 0:14.80 migration/2
16 root 20 0 0 0 0 S 0.0 0.0 1:36.11 ksoftirqd/2
19 root rt 0 0 0 0 S 0.0 0.0 0:13.23 migration/3
20 root 20 0 0 0 0 S 0.0 0.0 1:26.22 ksoftirqd/3
22 root 0 -20 0 0 0 S 0.0 0.0 0:15.00 kworker/3:0H
23 root rt 0 0 0 0 S 0.0 0.0 0:04.04 migration/4
24 root 20 0 0 0 0 S 0.0 0.0 0:03.91 ksoftirqd/4
26 root 0 -20 0 0 0 S 0.0 0.0 0:00.15 kworker/4:0H
27 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
28 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
29 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 wakelock_printk
30 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 perf
[root@localhost ~]#

考点4:/etc目录下各个文件的作用

下列文件中,包含了主机名到IP地址的映射关系的文件是: 。

  • A /etc/HOSTNAME
  • B /etc/hosts
  • C /etc/resolv.conf
  • D /etc/networks

解析

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

/etc/目录下的文件的作用

/etc/文件 作用
/etc/resolv.conf DNS配置文件。在网卡配置文件中进行配置,默认情况下 网卡配置文件DNS优先于/etc/resolv.conf
/etc/hostname Centos 7,配置主机名,查看修改。
/etc/hosts ip与域名对应关系 ,解析域名(主机名),用/etc/hosts搭建网站的测试环境 (虚拟机)。不同服务器之间相互访问。
/etc/fstab file system table :文件系统挂载表,开机的时候设备与入口对应关系 开机自动挂载列表。
/etc/rc.local 开机自启
/etc/inittabcentos 6 运行级别的配置文件
/etc/profile 环境变量配置文件
/etc/bashrc 命令别名
/etc/motd 文件中的内容 会在用户登录系统之后显示出来
/etc/issue /etc/issue.net 文件中的内容 会在用户登录系统之前显示出来

考点5:Linux系统调用

linux的系统调用是指

  • A 由内核发起的调用
  • B glibc函数库里的函数
  • C 由系统管理员运行的程序
  • D 是用户进程调用内核功能的接口

解析

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

什么是系统调用

系统调用是指内核提供的,功能十分强大的一系列函数。这些系统调用是在内核中实现的,再通过一定的方式把系统调用给用户,一般通过门(gate)陷入(trap)实现。系统调用是用户程序和内核交互的接口。

5个系统调用

  • open,
  • write,
  • read,
  • close,
  • ioctl

考点6:top free /proc/meminfo

如何查看当前Linux系统的状态,如CPU使用,内存使用,负载情况,下列描述正确的是?

  • A 可以使用top命令分析CPU使用,内存使用,负载等情况
  • B 可以使用free查看内存整体的使用情况
  • C 可以使用cat /proc/meminfo查看内存更详细的情况
  • D 以上描述都不正确

解析

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

分析CPU使用 内存使用 负载情况 top

见上述的top

查看内存整体使用情况 free -h

1
2
3
4
5
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 3.5G 1.4G 202M 2.8M 1.9G 2.1G
Swap: 0B 0B 0B
[root@localhost ~]#

查看内存详细信息 cat /proc/meminfo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@localhost ~]# cat /proc/meminfo
MemTotal: 3686064 kB
MemFree: 204972 kB
Buffers: 117712 kB
Cached: 1803660 kB
SwapCached: 0 kB
Active: 1754532 kB
Inactive: 1109552 kB
Active(anon): 949128 kB
Inactive(anon): 2440 kB
Active(file): 805404 kB
Inactive(file): 1107112 kB
Unevictable: 5956 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 84 kB
AnonPages: 948680 kB
Mapped: 467008 kB
Shmem: 2820 kB
Slab: 150864 kB
SReclaimable: 64912 kB
SUnreclaim: 85952 kB
KernelStack: 38384 kB
PageTables: 35820 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1843032 kB
Committed_AS: 86691356 kB
VmallocTotal: 251658176 kB
VmallocUsed: 189540 kB
VmallocChunk: 251341732 kB
[root@localhost ~]#

考点7:哪些是子进程从父进程继承得到的

在Linux上,对于多进程,子进程继承了父进程的下列哪些?

  • A 进程地址空间
  • B 共享内存
  • C 信号掩码
  • D 已打开的文件描述符
  • E 以上都不是

解析

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

参考:

子进程继承父进程

  • 用户号UIDs和用户组号GIDs;
  • 环境Environment;
  • 堆栈;
  • 共享内存;
  • 打开文件的描述符;
  • 执行时关闭(Close-on-exec)标志;
  • 信号(Signal)控制设定;
  • 进程组号;
  • 当前工作目录;
  • 根目录;
  • 文件方式创建屏蔽字;
  • 资源限制;
  • 控制终端;

子进程独有

  • 进程号PID;
  • 不同的父进程号;
  • 自己的文件描述符和目录流的拷贝;
  • 子进程不继承父进程的进程正文(text),数据和其他锁定内存(memory locks);
  • 不继承异步输入和输出;

父进程和子进程拥有独立的地址空间和PID参数。

子进程从父进程继承了用户号和用户组号,用户信息,目录信息,环境(表),打开的文件描述符,堆栈,(共享)内存等。
经过fork()以后,父进程和子进程拥有相同内容的代码段、数据段和用户堆栈,就像父进程把自己克隆了一遍。事实上,父进程只复制了自己的PCB块。而代码段,数据段和用户堆栈内存空间并没有复制一份,而是与子进程共享。只有当子进程在运行中出现写操作时,才会产生中断,并为子进程分配内存空间。由于父进程的PCB和子进程的一样,所以在PCB中断中所记录的父进程占有的资源,也是与子进程共享使用的。这里的“共享”一词意味着“竞争”

考点8:Linux主机负载相关命令

以下哪些命令可以获取linux主机的负载相关指标

  • A uptime
  • B top
  • C ls
  • D sar
  • E crontab

解析

显示答案/隐藏答案正确答案: ABD
命令 描述
uptime命令 能够打印系统总共运行了多长时间和系统的平均负载。可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
top命令 是用来监控 Linux 系统状况,比如cpu、内存的使用。
ls命令 用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
sar命令 (System ActivityReporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。
crontab 是用来定期执行程序的命令。crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
1
2
3
[root@localhost ~]# uptime
15:23:59 up 1 day, 8:21, 1 user, load average: 5.45, 5.51, 5.51
[root@localhost ~]#

考点9:Linux交换分区

关于Linux交换分区的说法正确是( )

  • A 安装Linux系统时必须划分交换分区
  • B 交换分区的作用是虚拟内存空间
  • C 交换分区的数据存取速度比物理内存慢
  • D 计算机内存为8GB,则交换分区的大小通常设置为16GB

解析

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

交换分区一般设置内存的2倍