Linux复习

第一章

1、简述 Linux 系统的应用领域。

  • Linux服务器
  • 嵌入式Linux系统
  • 软件开发平台
  • 桌面应用

2、简述 Linux 系统的特点。

  • 开放性
  • 多用户
  • 多任务
  • 良好的用户界面
  • 设备独立性
  • 丰富的网络功能
  • 可靠的系统安全
  • 良好的可移植性

3、简述 Linux 系统的组成。

  1. 内核
  2. Shell
  3. 文件系统
  4. 应用程序

4、简述主流的 Linux 系统发行版本。

  • Red Hat
  • SUSE
  • Oracle
  • CentOS
  • Ubuntu
  • Debian
  • Mandriva
  • Gentoo
  • Slackware
  • Fedora

5、简述 RHEL 7 系统的新特性。

  • 包含 Kernel 3.10 版本,支持 swap 内存压缩可保证显著减少 I/O 并提高性能,采用 NUMA(统一内存访问)的调度和内存分配,支持APIC(高级程序中断控制器)虚拟化, 全面的 DynTick 支持,将内核模块列入黑名单,kpatch 动态内核补丁等。
  • 在存储和文件系统方面,RHEL 7 使用 LIO 内核目标子系统,支持快速设备为较慢的块设备提供缓存,引进了 LVM 缓存,将 xfs作为默认的文件系统。
  • 引进网络分组技术作为链路聚集的捆绑备用方法,对 NetworkManager 进行大量改进,提供动态防火墙守护进程 firewalld,加入 DNSSEC 域名系统安全扩展,附带 OpenLMI 用来管理 Linux 系统提供常用的基础设施,引进 了可信网络连接功能等。
  • 对 KVM(基于内核的虚拟化)提供了大量改进,诸如使用 virtio-blk-data-plane 提高快 I/O 性能 (技术预览),支持 PCI 桥接,QEMU 沙箱,多队列 NIC,USB 3.0 支持等。
  • 引入 Linux 容器 Docker。
  • 编译工具链方面,RHEL 7 包含 GCC 4.8.x、glibc 2.17、GDB 7.6.1。
  • 包含 Performance Co-Pilot、SystemTap 2.4、Valgrind 3.9.0 等性能工具。
  • 包含 Ruby 2.0.0、Python 2.7.5、Java 7 等编程语言。
  • 包含 Apache 2.4、MariaDB 5.5、PostgreSQL 9.2 等软件包。
  • 在系统和服务方面,RHEL 7 使用 systemd 替换了 SysV。
  • 引入 Pacemaker 集群管理器,同时使用 keepalived 和 HAProxy 替换了负载均衡程序 Piranha。
  • 对安装程序 Anaconda 进行了重新设计和增强,并使用 GRUB 2 引导装载程序。

第二章

1、简述安装 Linux 系统的硬件要求。

  • CPU:主流计算机和服务器都能达到要求
  • 内存:安装 Linux 系统至少需要 1GB 内存(建议使用 2GB 甚至更高内存)
  • 硬盘空间:若要安装所有软件包至少需要 10GB 以上硬盘空间
  • 显示器和显卡
  • DVD光驱

2、在你的计算机上设计一个合理的分区规划。

  • 最简单的分区规划
swap 分区 即交换分区,实现虚拟内存,建议大小是物理内存的 1~2 倍。
/boot 分区 用来存放与 Linux 系统启动有关的程序,比如引导装载程序等,最少 200MB。
/ 分区 建议大小至少在 10GB 以上。
  • 合理的分区规划
swap 分区 实现虚拟内存,建议大小是物理内存的 1~2 倍。
/boot 分区 建议大小最少为 200MB。
/usr 分区 用来存放 Linux 系统中的应用程序,其相关数据较多,建议大小最少为 8GB。
/var 分区 用来存放 Linux 系统中经常变化的数据以及日志文件,建议大小最少为 1GB。
/ 分区 Linux 系统的根目录,所有的目录都挂在这个目录下面,建议大小最少为 1GB。
/home 分区 存放普通用户的数据,是普通用户的宿主目录,建议大小为剩下的空间。

3、简述分区命名方案。

  • Linux 系统使用字母和数字的组合来指代硬盘分区,使用一种更加灵活的命名方案,该命名方案是基于文件的,文件名的格为 /dev/xxyN
/dev 这是 Linux 系统下所有设备文件所在的目录名。
xx 分区名的前两个字母表示分区所在设备的类型,通常是 hd(IDE硬盘)或 sd(SCSI硬盘)。
y 这个字母表示分区所在的设备。
N 最后的数字N代表分区。

4、简述在安装 Linux 系统时设置计算机 IP 地址的方法。

5、FirewallID 防火墙的默认连接区域是什么?

  • 默认情况下 FirewallD 防火墙的连接区域为 public,public 在公共区域内使用,指定外部连接可以进入内部网络或主机。

第三章

1、进入字符界面有哪些方式?

  1. 可以通过使用如下命令修改为进入字符界面
    • systemctl set-default multi-user.target
  2. 打开终端命令行界面的方式,终端方式允许用户通过输入命令来管理计算机。
  3. 如果用户在图形界面下,那么可以使用 [Ctrl+Alt+F2]~[Ctrl+ Alt+F6] 组合键切换字符虚拟控制台,使用 [Ctrl+Alt+F1] 可以切换到图形界面。

2、可以使用哪些命令关闭计算机系统?

  • shutdown
    • 可以安全地关闭或重启 Linux 系统。
  • halt
    • halt 命令就是调用 shutdown –h 命令执行关机任务。
  • init
    • 所有进程的祖先,其中 init 0 为关闭系统。

3、简述 Linux 系统中的目标概念。

  • 在 RHEL 7 之前的版本,使用运行级别代表特定的操作模式。运行级别被定义为七个级别,用数字 0~6 表示,每个运行级别可以启动特定的一些服务。
  • RHEL 7 使用目标(target)替换运行级别。目标使用目标单元文件描述,目标单位文件扩展名是 .target,目标单元文件的唯一目标是将其他 systemd 单元文件通过一连串的依赖关系组织在一起。比如 graphical.target 单元,用于启动一个图形会话 systemd 会启动像 GNOME 显示管理(gdm.service)、帐号服务(axxounts-daemon)这样的服务,并且会激活 multi-user.target 单元。相似的 multi-user.target 单元,会启动必不可少的 NetworkManager.service、dbus.service 服务并激活basic.target 单元。
  • 每一个目标都有名字和独特的功能,并且能够同时启用多个。一些目标继承其他目标的服务,并启动新服务。systemd 提供了一些模仿 System V init 启动级别的目标,仍可以使用旧的 telinit 启动级别命令切换。
运行级别 目标 目标的链接文件 功能
0 poweroff.target runlevel0.target 关闭系统
1 rescue.target runlevel1.target 进入救援模式
2 multi-user.target runlevel2.target 进入非图形界面的多用户方式
3 multi-user.target runlevel3.target 进入非图形界面的多用户方式
4 multi-user.target runlevel4.target 进入非图形界面的多用户方式
5 graphical.target runlevel5.target 进入图形界面的多用户方式
6 reboot.target runlevel6.target 重启系统

4、在 Linux 系统中获取帮助有哪些方式?

  1. 使用 man 手册页
    • man [选项] [命令名称]
  2. 使用 help 命令
    • [命令] --help
  3. 使用 whereis 命令
    • whereis [选项] [命令名]

5、有哪些重定向方式?

输出重定向 command > file
输入重定向 command < file
错误重定向 command 2> file
追加重定向 command >> file
同时实现输出和错误的重定向 command &> file

6、简述 vi 编辑器的工作模式。

vi编辑器有3种基本工作模式,分别是命令行模式、插入模式和末行模式。

  • 命令行模式
    • 控制屏幕光标的移动,字符、字或行的删除,移动、复制某区域及进入插入模式,或者到末行模式。
  • 插入模式
    • 只有在插入模式下,才可以做文字输入,按 Esc 键可回到命令行模式。
  • 末行模式
    • 将文件保存或退出 vi 编辑器,也可以设置编辑环境,如寻找字符串、列出行号等。

第四章

1、Linux 系统中有哪些文件类型?

普通文件、目录文件、设备文件、管道文件和符号链接文件等。

2、简述软链接文件和硬链接文件的区别。

  • 硬链接记录的是目标的 inode,软链接记录的是目标的路径。
  • 软链接就像是快捷方式,而硬链接就像是备份。
  • 软链接可以做跨分区的链接,而硬链接由于 inode 的缘故,只能在本分区中做链接。
  • 所以软链接的使用频率要高得多。

3、简述 Linux 系统中的文件目录。

  • Linux 系统都有根文件系统,它包含系统引导和使其他文件系统得以挂载所必要的文件,根文件系统需要有单用户状态所必须的足够的内容,还应该包括修复损坏系统、恢复备份等工具。

  • Linux 系统的目录结构是分层的树形结构,都是挂载在根文件系统 / 下。

4、简述使用 ls -l 命令显示的详细信息。

-rw-r--r-- 1 h2p staff 230 Nov 25 21:33 test.sh

第 1 列 第 1 个字符表示文件的类型
第 2~4 个字符表示文件所有者对此文件的访问权限
第 5~7 个字符表示用户组对此文件的访问权限
第 8~10 个字符表示其他用户对此文件的访问权限
第 2 列 文件的连接数
第 3 列 文件的所有者
第 4 列 文件的用户组名
第 5 列 文件所占的字节数
第 6~8 列 文件上一次的修改时间
第 9 列 文件名

5、使用什么命令可以删除具有子目录的目录?

rm -r {dirPath}

第五章

1、常用的文本内容显示命令有哪些?区别是什么?

这些命令有:cat、more、less、head、tail。

命令 作用
cat 显示文本文件的内容,也可以把几个文件内容附加到另一个文件中。
more 分页显示文本文件的内容。类似于 cat 命令,不过是以分页方式显示文件内容,方便使用者逐页阅读。
less 回卷显示文本文件的内容。less 命令的作用与 more 十分相似,都可以用来浏览文本文件的内容,不同的是 less 命令允许使用者往回卷动。
head 显示指定文件的前若干行文件内容。如果没有给出具体行数值,默认缺省设置为 10 行。如果没有指定文件,head 就从标准输入读取。
tail 查看文件的末尾数据,默认显示指定文件的最后 10 行到标准输出。

2、常用的文本处理命令有哪些?区别是什么?

命令 作用
sort 对文件中的数据进行排序,并将结果显示在标准输出上。
uniq 将文件内的重复行数据从输出文件中删除,只留下每条记录的惟一样本。
cut 从文件的每行中输出选定的字节、字符或字段(域)。
comm 比较两个已排过序的文件,并将其结果显示出来。
diff 逐行比较两个文本文件,列出其不同之处。

3、使用什么命令能显示当前计算机的内核版本?

uname -r

4、使用什么命令能清除计算机屏幕信息?

clear

5、使用什么命令可以以倒序方式排序文件内容?

sort -t

第六章

1、简述一个简单 Shell 程序的创建过程。

  1. 使用 vi 编辑文件,文件第一行为 #!/bin/bash#! 后面表示用来执行该文件的程序)。
  2. 执行 chmod +x 命令设置可执行权限。
  3. 执行 Shell 程序。

2、简述执行 Shell 程序的方法。

  • 执行 chmod +x 设置文件执行权限,输入文件完整路径执行 Shell 程序。
  • 如果不设置可执行权限,需要执行 bash {filePath} 来执行 bash 程序。

3、简述常见的 Shell 环境变量。

$HOME 用户主目录的完全路径名
$PATH 用于保存用冒号分隔的目录路径名,Shell 将按 PATH 变量中给出的顺序搜索这些目录,
找到的第一个与命令名称一致的可执行文件将被执行。
$TERM 终端的类型
UID 当前用户的 UID,由数字构成
PWD 当前工作目录的绝对路径
PS1 主提示符。在 root 用户下默认的主提示符是 #,在普通用户下默认的主提示符是 $
PS2 辅助提示符,提示用户继续输入命令的其余部分,默认的辅助提示符是 >
在 Shell 接收用户输入命令的过程中,如果用户在输入行的末尾输入 \ 然后按回车键,
或者当用户按回车键时 Shell 判断出用户输入的命令没有结束时,就显示这个辅助提示符。

4、简述常用的字符串比较符号。

  • 字符串比较是用来测试字符串是否相同、长度是否为0、字符串是否为 null。
字符串比较符号 描述
= 比较两个字符串是否相同,相同则为“是”
!= 比较两个字符串是否相同,不同则为“是”
-n 比较字符串的长度是否大于 0,如果大于 0 则为“是”
-z 比较字符串的长度是否等于 0,如果等于 0 则为“是”
数字比较符号 描述
-eq $=$
-ge $\ge$
-le $\le$
-ne $\ne$
-gt $\gt$
-lt $\lt$
逻辑测试符号 描述
!
-a
-o
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
myZero=0
myOne=1
myTwo=2

test $myZero -eq 0 -a $myOne -eq 2
echo $?

test $myZero -eq 0 -a $myOne -eq 1
echo $?

# 1
# 0

5、Linux 系统中有哪些条件判断语句和循环控制流程语句?

  • if 条件语句

    • linux shell 之if——-用if做判断

    • if-then-fi

      • if {command}
        then
        {command}
        fi
        
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10

        - `if-then-else-fi`

        - ```bash
        if {command}
        then
        {command}
        else
        {command}
        fi
    • #!/bin/bash
      
      echo -n "Input 0 or 1 : "
      read inputNum
      
      if [ $inputNum -eq 0 ]
      then
      echo 'Input is 0.'
      elif [ $inputNum = 1 ]; then
      echo "Input is 1."
      else
      echo "Invalid num : $inputNum."
      fi
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

      - `case` 条件语句

      - ```bash
      case {param} in
      {exp-1}) {command};;
      {exp-2}) {command};;
      ...;;
      *) {command}
      esac
      1
      2
      3
      4
      5
      6
      7
      8
      #!/bin/bash
      myStr=abc
      case $myStr in
      a) echo 'myStr is a';;
      ab) echo 'myStr is ab';;
      abc) echo 'myStr is abc';;
      *) echo $myStr
      esac
    • 通过计算字符串 param 的值,将其结 果依次与运算式 exp-1 和 exp-2 等进行比较, 直到找到一个匹配的运算式为止。如果找到了匹配项,则执行它下面的命令直到遇到一对分号 ;; 为止。

6、简述 if 条件语句和 case 条件语句的区别。

  • 使用 case 语句的选项比较多

第七章

1、在 Linux 系统中用户账户有哪些分类?

  • root用户、系统用户和普通用户

2、管理用户账户的配置文件有哪些?并描述这些文件各字段的含义。

  • /etc/passwd
    • 每一行表示的是一个用户账户的信息,一行有 7 个段位,每个段位用 : 分隔。
    • zhangsan:x:1000:1000:张三:/home/zhangsan:/bin/bash
字段 字段含义
用户名 也称为登录名,在系统内用户名应该具有惟一性。在本例中, zhangsan 就是用户名。
密码 存放加密用户的密码,看到的是一个 x,其实密码已被映射到 /etc/shadow 文件中。
用户标识号(UID) 在系统内用一个整数标识用户 ID 号,每个用户的 UID 都是惟一 的,root 用户的 UID 是 0,普通用户的 UID 默认从 1000 开始,本例中的用户 zhangsan 的 UID 是 1000。
群组标识号(GID) 在系统内用一个整数标识用户所属的主要组群 ID 号,每个组群的 GID 都是惟一的。
用户名全称 用户名描述,可以不设置。在本例中,zhangsan 用户的用户名全称是张三。
主目录 用户登录系统后首先进入的目录,zhangsan 用户的主目录是 /home/zhangsan。
登录 Shell 用户使用的 Shell 类型,Linux 系统默认使用的 Shell 是 /bin/bash。
  • /etc/shadow
    • zhangsan:$6$E/xvWMmh$rhYLQwwffEqIudVLFzMlvkb0iN4.0Ol uk6H.UovEYN0/99dVoHXcaCNGZZkFY1S3QHYgm7e6JPzEew6ybmN 4e0:16364:0:99999:7:::
字段 字段含义
用户名 这里的用户名和 /etc/passwd 中的用户名是相同的。
加密密码 密码已经加密,如果有些用户在这里显示的是“!!”,则表示这个用户还没有设置密码,不能登录到系统。
用户最后一次更改密码的日期 从1970年1月1日算起到最后一次修改密码的时间间隔天数。
密码允许更换前的天数 如果设置为 0,则禁用此功能。该字段是指用户可以更改密码的天数。
密码需要更换的天数 如果设置为 0,则禁用此功能。该字段是指用户必须更改密码的天数。
密码更换前警告的天数 用户登录系统后,系统登录程序提醒用户密码将要过期。
账户被取消激活前的天数 表示用户密码过期多少天后,系统会禁用此用户,也就是说系统会不让此用户登录,也不会提示用户过期,是完全禁用的。
用户账户过期日期 指定用户账户禁用的天数(从1970年的1月1日开始到账户被禁用的天 数),如果这个字段的值为空,账户永久可用。
保留字段 目前为空,以备将来Linux系统发展时使用。

3、管理组群账户的配置文件有哪些?并描述这些文件各字段的含义。

  • /etc/group
    • zhangsan:x:1000:
字段 字段含义
组群名 组群名称,如组群名 root。
组群密码 存放加密的组群密码,看到一个 x,密码已被映射到 /etc/gshadow 文件中。
组群标识号(GID) 在系统内用一个整数标识组群 GID,每个组群的 GID 都是惟一的,默认普通组群的 GID 从 1000 开始, root 组群 GID 是 0。
组群成员 属于这个组群的成员,如 root 组群的成员有 root 用户。
  • /etc/gshadow
    • beijing:$6$E/xvWMmh$rhYLQwwffEqIudVLFzMlv1::ou
字段 字段含义
组群名 组群的名称
组群密码 密码已经加密,如果有些组群在这里显示的是 “!”,表示这个组群没有密码。本例中组群 shanghai 没有密码,组群 beijing 已设置密码。
组群管理员 组群的管理者,有权在该组群中添加、删除用户。
组群成员 属于该组群的用户成员列表,如有多个用户用逗号分隔。本例中 beijing 组群的成员是 ou。

4、默认情况下新创建的第一个用户账户 UID 是多少?

  • 新创建的用户账户默认是被锁定的,无法使用,需要使用 passwd 命令设置密码以后才能使用。
    • useradd zhangsan
    • passwd zhangsan
    • usermod zhangsan
    • userdel zhangsan
  • 默认情况下新创建的第一个用户账户 UID 是 1000。

5、简述对用户账户设置密码和不设置密码的区别。

  • 用户账户未设置密码,不能登录到系统。

第八章

1、简述磁盘分区的含义。

  • 磁盘分区是指对硬盘物理介质的逻辑划分。
  • 分区就是磁盘的“段落”,如果用户希望在计算机上安装多个操作系统,将需要更多的分区。

2、简述格式化的含义。

  • 格式化是指对磁盘分区进行初始化的一种操作,这种操作通常会导致现有的分区中所有的数据被清除。
  • 格式化是在磁盘中建立磁道和扇区,建立好之后,计算机才可以使用磁盘来储存数据。

3、fdisk 命令有哪些子命令?其含义分别是什么?

子命令 功能
m 显示所有能在fdisk中使用的子命令
p 显示磁盘分区信息
a 设置磁盘启动分区
n 创建新的分区
e 创建扩展分区
p 创建主分区
t 更改分区的系统ID(也就是分区类型ID)
d 删除磁盘分区
q 退出fdisk,不保存磁盘分区设置
l 列出已知的分区类型
v 验证分区表
w 保存磁盘分区设置并退出 fdisk

4、Linux 系统中常用的文件系统有哪些?

  • XFS、ext4、JFS、ReiserFS、ext2、 ext3、ISO9660、MSDOS,VFAT、NFS 等

5、使用新磁盘存储数据一般要经过哪些操作?

  1. 对磁盘进行分区
  2. 格式化分区
  3. 创建文件系统
  4. 挂载文件系统

6、要实现开机自动挂载文件系统,可以通过哪些方式来实现?

  1. 修改 /etc/fstab 文件
    • /dev/sda5 /mnt/kk ext4 defaults 0 0
      • 设备、挂载目录、文件系统类型、挂载选项、转储选项(0 表示文件系统不需要备份)、文件系统检查选项(0 表示不检查文件系统)
      • 其中设备
        • 使用设备名:/dev/sda5
        • 使用 UUID:UUID=f084b8a6-c9ab-425b-99da-b64cb35e4fc2
        • 使用卷标:LABEL=www
          • xfs_admin -l /dev/sda5 查看卷标信息

第九章

1、使用 RPM 软件包管理的用途是什么?

  • RPM(Red Hat Package Manager,Red Hat 软件包管理器)是一种开放的软件包管理系统,按照 GPL 条款发行,可以运行于各种 Linux 系统上。
  • RPM 简化了 Linux 系统安装、卸装、更新和升级的过程,只需要使用简短的命令就可完成。

2、简述升级 RPM 软件包和刷新 RPM 软件包的区别。

  • 使用 rpm -Uvh 命令可以在 Linux 系统中升级 RPM 软件包,升级软件包是删除和安装的组合。不管该软件包的早期版本是 否已被安装,升级选项都会安装该软件包。
  • 使用 rpm -Fvh 命令可以在 Linux 系统中刷新 RPM 软件包。使用 RPM 刷新软件包时,系统会比较指定的软件包的版本和系统上已安装的版本。当 RPM 的刷新选项处理的版本比已安装的版本更新,它就会升级到更新的版本。如果软件包先前没有安装,RPM 的刷新选项将不会安装该软件包,这和 RPM 的升级选项不同。

3、简述在本地磁盘上创建本地软件仓库的步骤。

  1. 安装 deltarpm、python-deltarpm 和 createrepo 软件包。
  2. 复制 Linux 系统安装光盘中的软件包。
  3. 创建软件仓库配置文件。
  4. 使用 createrepo 命令创建软件仓库。

4、tar 命令可以调用哪些压缩程序?

  • tar cvf {name}.tar {filePath}
  • tar xvf {name}.tar
  • 调用 gzip
    • 使用 -z 选项来调用 gzip
    • tar -zcvf {name}.tar.gz {filePath}
  • 调用 bzip2
    • 使用 -j 选项来调用 bzip2
    • tar -jcvf {name}.tar.gz {filePath}
  • 调用 xz
    • 使用 -J 选项来调用
    • tar -Jcvf {name}.tar.gz {filePath}

第十章

1、文件有哪些权限?其含义分别是什么?

  • 三种用户访问
    • 文件所有者、文件的组群所有者、系统中的其他用户
基本权限 含义
r 对文件而言,该用户具有读取文件内容 的权限;对目录来说,该用户具有浏览目录的权 限;
w 对文件而言,该用户具有新增、修改 文件内容的权限;对目录来说,该用户具有删除、移动目录内文件的权限;
x 对文件而言,该用户具有执行文件的 权限;对目录来来说,该用户具有进入目录的权限;
特殊权限 含义
SUID(u+s) 对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的用户所有者身份来执行;对一个目录无影响。
SGID(g+s) 对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的组群所有者身份来执行;对一个目录,在该目录中创建的任意新文件的所属组与该目录的所属组相同。
Sticky(o+t) 对一个可执行文件无影响;对目录设置 Sticky 之后,尽管其它用户有写权限,也必须由文件所有者执行删除和移动等操作。

2、可以使用哪些方法设置文件的权限?

  1. 文字设定法
    • chmod [操作对象] [操作符号] [权限] [文件|目录]
    • chmod [ugoa] [+-=] [rwx] [file|dir]
    • chmod u+w a.txt
  2. 数字设定法
    • chmod [n1n2n3] [文件|目录]
    • n1 表示用户所有者的权限 ,n2 表示组群所 有者的权限,n3 表示其它用户的权限。

第十一章

1、简述 Linux 系统的进程分类。

  • 交互式进程
    • 一个由 Shell 启动并控制的进程,交互式进程既可在前台运行,也可在后台运行。
  • 批处理进程
    • 与终端无关,安排在指定时刻完成的一系列进程。
  • 守护进程
    • 在引导系统时启动,以执行即时的操作系统任务,比如 crond、rsyslogd、named 等。

2、简述 Linux 系统的启动过程。

  1. BIOS 自检
  2. 启动 GRUB 2
  3. 加载内核
  4. 执行 systemd 进程
  5. 初始化系统环境
  6. 执行 /bin/login 程序

3、简述 GRUB 2 所具有的新功能。

  • 采用模块化动态加载的思想。
  • 图形接口。
  • 使用模块机制,通过动态加载需要的模块来扩展功能。
  • 支持脚本语言,比如条件判断、循环、变量和函数。
  • 支持救援模式,可以用于系统无法引导的情况。
  • 国际化语言。包括支持非 ASCII 的字符集和类似 gettext 的消息分类、字体、图形控制台等。
  • 有一个灵活的命令行接口。如果不存在配置文件, GRUB 2 会自动进入命令模式。
  • 针对文件系统、文件、设备、驱动、终端、命令、分 区表、系统加载的模块化、层次化、基于对象的框架。
  • 支持多种文件系统格式。
  • 可以访问已经安装在设备上的数据。
  • 支持自动解压。

4、简述 GRUB 2 密码支持的两种格式。

  • 明文密码
    • 密码数据没有经过加密,安全性差。
  • PBKDF2 加密密码
    • 密码经过 PBKDF2 哈希算法进行加密,在文件中存储的是加密后的密码数据,安全性较高。

第十二章

1、简述网卡配置文件的内容。

  • 网卡配置文件保存在 /etc/sysconfig/network-scripts 目录下,一个网卡对应一个配置文件,以 ifcfg- 开头。
关键字 含义
DEVICE 网卡名称
HWADDR Mac 地址、硬件地址
TYPE 网络类型
BOOTPROPT 网卡获取 IP 地址的方式
IPADDR ip 地址
NETMASK 子网掩码
GATEWAY 网关

2、测试网络连通可以使用哪些命令?

  • ping [选项] [目标]
  • netstat -antu | grep [端口号]
  • traceroute [目标]

3、DNS 服务使用什么端口号?

  • DNS 协议运行在 UDP 协议之上,使用端口号 53。

第十三章

1、简述 OpenSSH 替代 telnet 的主要原因。

  • 使用 OpenSSH 工具将增进系统安全性,在使用 OpenSSH 软件进行通信时,登录验证口令将会被加密。
  • OpenSSH 提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据。
  • Telnet 使用纯文本口令,并以明文发送。这些信息可能被截取,口令 kennel 会被检索。
  • OpenSSH 会自动把 DISPLAY 变量转发给客户主机。

2、简述 VNC 软件的组成部分。

  • VNC 软件要由两个部分组成
    • 服务端的 VNC server
    • 客户端的 VNC viewer
  • 用户需要先将 VNC server 安装在被远程操控的计算机上后,才能在主控端执行 VNC viewer 进行远程操控。

第十四章

1、简述 NFS 的含义。

  • NFS(Network File System,网络文件系统)对于在同一个网络上的多个用户间共享目录和文件很有用途。
  • 通过使用 NFS,用户和程序可以像访问本地文件一样访问远程系统上的文件。

2、简述 /etc/exports 文件内容的格式。

  • /etc/exports 文件控制着 NFS 服务器要导出的共享目录以及访问控制。
  • 文件内容的格式:共享目录 客户端 [导出选项]
  • 客户端机器可以是一台计算机,也可以是一个网段,甚至是一个域。
  • 导出选项用来设置客户端访问 NFS 服务器共享目录的权限

补充习题

1、 什么是 LVM?

  • Logical Volume Manager 逻辑卷管理
  • 它是 Linux 环境下对磁盘分区进行管理的一种机制。屏蔽了底层磁盘布局,便于动态调整磁盘容量。

2、 什么是 PV、VG、LV?

PV(Physical Volume) 物理卷:整个磁盘,或使用 fdisk 等工具建立的普通分区
VG(Volume Group) 卷组:一个或多个物理卷组合而成的整体
LV(Logical Volume) 逻辑卷:从卷组中分割出的一块空间,用于建立文件系统

3、 PV、VG、LV 之间的相互关系?

  • PV 基本单元为 4MB 大小的 PE(Physical Extent)。
  • VG 由 N 个 PV 组成。
  • LV 在 VG 的基础上进行分割。

4、 逻辑卷是否可以在线扩容、缩小?

  • 逻辑卷扩容可以在线操作但是缩减必须是离线执行,需要先卸载已挂载的逻辑卷。
    • lvextend -L +大小 /dev/卷组名/逻辑卷名
    • lvreduce -L +大小 /dev/卷组名/逻辑卷名

5、 文件系统是否可以在线扩容和缩小?

  • 逻辑卷扩容可以在线操作但是缩减必须是离线执行,需要先卸载已挂载的逻辑卷。
    • resize2fs -p 逻辑卷设备名

6、 缩小逻辑卷或文件系统应该注意哪些?

  • 扩容逻辑卷我们是先扩大逻辑卷再扩大文件系统,而缩小逻辑卷就需要我们反着来,我们要先缩小文件系统,再去缩小逻辑卷。
  • 缩小文件系统前我们要先对文件系统做个扫描检测,如果我们直接使用 resize2fs 系统会提示让你先对文件系统进行检测,这是为了保护缩减文件系统时不对数据损害。

7、 如何创建逻辑卷?

PV -> VG -> LV -> 格式化,挂载使用文件系统
转换物理卷 -> 创建卷组 -> 创建逻辑卷 -> 格式化并挂载
pvcreate 设备名
vgcreate -s 8M 卷组名 物理卷名1 物理卷名2
lvcreate -L 大小 -n 逻辑卷名 卷组名
umount 文件夹:卸载文件系统
mkfs -t 文件系统 文件夹: 重新格式化
vim /etc/fstab: 修改fstan文件
mount -a: 重新挂载

8、 卷组的 PE 默认大小是多少?

  • 4MB

9、 什么是 SELinux?有什么优点?

  • SELinux 是一组可确定哪个进程能访问文件、目录、端口等的安全规则。是美国国家安全局对于强制访问控制的实现,是 Linux 上最杰出的新安全子系统。
  • 优点
    • 对访问的控制彻底化,对于所有文件、目录和端口都可以设定访问策略。
    • 对于进程只赋予最小的权限。
    • 防止权限升级。

10、 SELinux 的两种状态分别是什么?

  • 状态 0:permissive
    • 不会阻止访问,但会记录日志
  • 状态 1:enforcing
    • 强制开启,每个受限的进程都必然受限

11、 如何修改 SELinux 模式?

  • setenforce 0|1

12、 SELinux 安全上下文的作用是什么?

  • 在 SELinux 中访问控制属性基本上就是安全上下文。
  • 所有的客体和主体有一个相关的安全上下文。
  • SELinux 使用进程和客体的安全上下文来进行访问控制。

13、 SELinux 安全上下文格式是什么?

  • 一个安全上下文由三部分组成:用户、角色和类型标识符

14、 如何修改 SELinux 安全上下文?

  • chcon -t 安全上下文 文件

15、 SELinux 布尔值的概念?

  • SELinux 布尔值是更改 SELinux 策略行为的开关。
  • SELinux 布尔值是可以启用或禁用的规则。
  • 安全管理员可以使用 SELinux 布尔值来调整策略。

16、 SELinux 如何修改布尔值?

  • setsebool P 功能bool值 on|off
-------------本文结束感谢您的阅读-------------