2021年04月12日Linux专项练习3

考点1:find查找更改时间比一个文件新但比另一个文件旧的文件

find . -newer file1 \! \( -newer file2 \)命令的意思是?

  • A 查找更改时间比文件file1新但比文件file2旧的文件
  • B 查找更改时间比文件file1旧但比文件file2新的文件
  • C 查找更改时间比文件file1旧且比文件file2旧的文件
  • D 查找更改时间比文件file1新且比文件file2新的文件

解析

显示答案/隐藏答案正确答案: A
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
[root@localhost exam]# ls -ltr --full-time
总用量 3640
-rw-r--r--. 1 root root 422 2021-03-19 21:12:12.566962591 +0800 StartWriting.bat
drwxr-xr-x. 2 root root 4096 2021-03-19 21:12:12.566962591 +0800 scaffolds
-rw-r--r--. 1 root root 817 2021-03-19 21:12:12.566962591 +0800 package.json
-rw-r--r--. 1 root root 376 2021-03-19 21:12:12.566962591 +0800 HexoSTest.bat
-rw-r--r--. 1 root root 576 2021-03-19 21:12:12.566962591 +0800 HexoD.bat
-rw-r--r--. 1 root root 158 2021-03-19 21:12:12.566962591 +0800 FM.properties
-rw-r--r--. 1 root root 3093 2021-03-19 21:12:12.566962591 +0800 _config.yml
drwxr-xr-x. 3 root root 4096 2021-03-19 21:12:12.636962591 +0800 themes
drwxr-xr-x. 9 root root 4096 2021-03-19 21:12:12.636962591 +0800 source
-rwxr--r--. 1 root root 174 2021-03-19 21:16:37.816962490 +0800 hexos.sh
drwxr-xr-x. 308 root root 8192 2021-03-19 21:19:12.036962431 +0800 node_modules
-rw-r--r--. 1 root root 170424 2021-03-19 21:19:12.746962431 +0800 package-lock.json
-rw-r--r--. 1 root root 3498022 2021-03-22 20:29:10.927984900 +0800 db.json
-rw-r--r--. 1 root root 431 2021-03-22 20:52:44.997984360 +0800 HexoS.bat
[root@localhost exam]# find . -maxdepth 1 -newer StartWriting.bat \! \( -newer HexoS.bat \)
./HexoS.bat
./source
./themes
./hexos.sh
./node_modules
./db.json
./package-lock.json
[root@localhost exam]#

考点2:/etc/passwd中用户组ID与etc/group中的用户组ID不匹配导致用户无法登录的问题

你通过编辑/etc/group文件来改变了sales group的GID,所有的组员都能成功的进行的转换,除了Jack,他甚至都无法登陆,其原因是什么?

  • A Jack忘记了group密码
  • B Jack需要再次被加入到group
  • C 在/etc/passwd里指明了JackGID
  • D Jack的账号需要被删除然后新建

解析

显示答案/隐藏答案正确答案: C
  • /etc/group是用户组信息文件,里面定义了用户组的ID,
  • /etc/passwd是用户基本信息文件,里面定义了用户的ID用户组的ID等相关信息。

所以因为两个文件中都定义了用户组的信息,所以两个文件应该都要改过来,否则会导致用户找不到所属组

考点3:硬链接和符号连接

下列关于链接描述,错误的是 。

  • A 硬链接就是让链接文件的i节点号指向被链接文件的i节点
  • B 硬链接和符号连接都是产生一个新的i节点
  • C 链接分为硬链接和符号链接
  • D 硬连接不能链接目录文件

解析

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

(1)软连接可以跨文件系统,硬连接不可以
(2)硬连接不管有多少个,都指向的是同一个I节点,会把结点连接数增加,只要结点的连接数不是0,文件就一直存在不管你删除的是源文件还是连接的文件。只要有一个存在文件就存在。当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。软链接不直接使用i节点号作为文件指针,
而是使用文件路径名作为指针。所以删除连接文件对源文件无影响,但是删除源文件,连接文件就会找不到要指向的文件。软链接有自己的inode, 并在磁盘上有一小片空间存放路径名。
(3)软连接可以对一个不存在的文件名进行连接 。
(4)软连接可以对目录进行连接。

硬连接不管有多少个,都指向的是同一个I节点,
只有符号链接才产生新的inode节点。

硬连接不能连接文件目录,软连接才可以。
硬连接不会产生新节点,硬连接指向同一节点inode。

Inode是UNIX中一种数据结构,包含了与文件系统中各个文件相关的一些重要信息,在文件系统创建时,同时会创建大量的inode。它用作数据索引的标识符,系统找到文件对应的inode,通过inode 号获取inode信息,再找到文件数据锁在的block读取。
硬链接,文件名和inode号对应,也可能多个文件名指向同一个inode号。硬链接实现不同的文件名访问同一个文件,对文件内容的修改会影响到所有的文件名,但删除一个文件名不影响其他文件名的访问。
软链接,也可以通过不同文件名访问同一块数据,但是文件名的inode是不一样的。A是B的软链接,A的内容存放的是B的路径名。
最后在回顾下硬软链接的不同:
本质不同:硬链接是指向同一个文件,软链接指向的不是同一个文件。
删除时:硬链接不受影响,软链接失效
创建链接时:创建硬链接链接数加1,创建软链接连接数不变
是否可以跨分区:硬链接不可以跨分区,软链接可以跨分区
目录是否可以创建链接:硬链接不可以对目录创建,软链接可以对目录创建
硬链接的inode号相同,软链接inode号不同

考点4:vi编辑器全部替换

Vi编辑器中,怎样将字符AAA全部替换成yyy?

  • A p/AAA/yyy/
  • B s/AAA/yyy/g
  • C i/AAA/yyy/
  • D p/AAA/yyy/h

解析

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

全局替换命令为::s/源字符串/目的字符串/g

vi末行模式命令 描述
/pattern 从光标开始处向文件尾搜索pattern
?pattern 从光标开始处向文件首搜索pattern
n 同一方向重复上一次搜索命令
N 在反方向上重复上一次搜索命令
:s/p1/p2/g 将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g 将文件中所有p1均用p2替换

考点5:recv方法

调用recv(int sockfd, void *buf, size_t len, int flags)的过程中,一共进行了几次内存复制操作?

  • A 1
  • B 2
  • C 3
  • D 4

解析

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

内核从对端接受数据,放在socket的缓存中,然后复制到应用层的buffer,所以一共两个buffer。
recv 接受对端socket数据,经过两次系统调用,首先在内核中将数据拷贝到自己的协议栈;然后recv返回将数据从内核缓冲区拷贝到用户buffer中。 内核从对端接受数据,放在socket的缓存中,然后复制到应用层的buffer,所以一共两个buffer。

考点6:Linux卸载设备umount

将光盘/dev/hdc卸载的命令是?

  • A umount /mnt/cdrom /dev/hdc
  • B mount /dev/hdc
  • C umount /dev/hdc
  • D mount /mnt/cdrom /dev/hdc

解析

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

题干没有说明,事先是把/dev/hdc挂载到/mnt/cdrom下。

挂载设备使用mount,
卸载设备使用umount,有三种方式,通过设备名,挂载点或者设备名和挂载点 :

1
2
3
umount /dev/hdc
umount /mnt/cdrom
umount /mnt/cdrom /dev/hdc

考点7:Linux多线程编程 pthread库 函数名和意义

下述是Linux下多线程编程常用的pthread库提供的函数名和意义,说法正确的有?

  • A pthread_create 创建一个线程
  • B pthread_join 用来等待一个线程的结束
  • C pthread_mutex_init 初始化一个线程互斥锁
  • D pthread_exit 结束一个线程

解析

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

考点8:chmod授权

文件aaa的访问权限为rw-r–r–,现要增加所有用户的执行权限和同组用户的写权限,下列哪些命令是正确的?

  • A chmod a+x , g+w aaa
  • B chmod 764 aaa
  • C chmod 775 aaa
  • D chmod o+x , g+w aaa

解析

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

考点9:与用户管理相关的配置文件

Linux系统上,下面哪些文件是与用户管理相关的配置文件()

  • A /etc/passwd
  • B /etc/shadow
  • C /etc/group
  • D /etc/password

解析

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

/etc/passwd 存放用户的UID name 密码过期时间 修改时间等等
/etc/shadow 存放用户的密码密文
/etc/group 存放用户的所属组情况
/etc/password 是错误的,linux没有D 这个文件

考点10:Linux多种复制文件方法

将文件file1复制为file2可以用下面哪些命令()

  • A cp file1 file2
  • B cat file1 >file2
  • C cat < file1 >file2
  • D dd if=file1 of=file2
  • E cat file1 | cat >file2

解析

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

Linux复制cp命令

  • cp命令:cp指令用于复制文件或目录。
    • 将文件file1复制成文件file2命令如下:cp file1 file2

cat命令

  • cat命令:cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的。
    • 一次显示整个文件命令如下: cat filename

输入输出重定向

  • >: linux中的数据流重导向:输出导向,覆盖导向的文件内容。
  • <: linux中的数据流重导向:输入导向,理解为原本由键盘输入改为文本输入
  • |:管道命令操作符,处理经由前面一个指令传出的正确输出信息,然后,传递给下一个命令,作为标准的输入

dd命令

  • dd命令: 作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
    • 参数:
      • if 输入文件(或设备名称)
      • of 输出文件(或设备名称)
    • 将文件file1拷贝到文件file2中命令如下:
      • dd if=file1 of=file2