Linux 基础学习训练教材 - CentOS 8.x

课程问题参考解答

单纯提供一个相对的解答,并不是标准答案!

最近更新时间: 2020/06/11

单纯就是个解答的参考,写完之后再来这边查查看答案跟你想的一样不一样!?

第 01 堂课

  • 例题 1.1.1-1:

    大部分的服务器 (除了数据库之外) 主要的任务大多在处理文件数据的传输运作,真正用在计算的时间 (数据酷例外) 相对是少的。 而且,大部分的服务器总是服务多数用户,每个用户都会生成一个进程,每个进程都有自己的数据运作。因此,在数据的传输上面, 可能会占据比较大部份的资源,亦即,服务器大部分都是 I/O bound 的情况。在这种情况下,加大内存 (插更多的主内存) 以及加快磁盘读写 (更换速度更快的 SSD 或 M2 或 RAID 等) ,可能是让服务器性能增加是比较有用的。

  • 例题 1.1.1-2:
    1. 当时 microsoft 为了改善操作系统的信息安全问题,因此采用全新的系统调用设计,同时系统内核层级也进行大幅度的修改,据以开发出新一代的 vista 操作系统, 因此,很多 windows XP 的软件就无法在 vista 上面运作!这是因为系统调用不同所致。故而很多的厂商就不敢更换成 Vista 系统, 免得自家开发的软件不能运行。后来 microsoft 很多系统开发时,就有考虑到软件兼容性的问题,避免再次发生同样的困扰。
    2. 如同四个同心圆的架构,软件依附在操作系统上面,因此,同样是 google chrome 浏览器,就会分 windows 版本、Linux 版本、 Mac 版本等等。 例如下图所示,就是一个简单的范本:
      以 google chrome 为例,不同操作系统须下载不同的版本
      以 google chrome 为例,不同操作系统须下载不同的版本
      上图来源为 https://www.google.com/chrome/,请自行点击参考。由上所知,软件与操作系统有关。
    3. 由于不同的操作系统其编译行为并不相同,因此桌面型 x86 Linux 操作系统是没有办法直接放到 ARM 的手机硬件上面运行的,这也能由 4 个同心圆的图标得到印证。
  • 例题 1.1.2-1:
    1. 早期的系统大多属于 I/O bound 的状态,因为 CPU 的性能相对强大。在此情况下,如何将 I/O 的状态切开,让 CPU 可以省去等待的时间, 就很重要。早期的批量处理系统会让 CPU 无法运行下一个进程,因此,多元程序处理系统,在内存内改变进程的状态, 同时 CPU 也能进行多任务 (在工作中切换),因此将进程设置为中断 (interrupt) 时,此时该进程就会被放置到其他设备独立运作, 而 CPU 的资源就能释放出来,给予其他进程持续进行。如此则可以加速进程运作,并且让 CPU 资源完整被利用!
    2. 指的其实是 1977 年的 BSD 与 SystemV
    3. (1)GNU is Not Unix;
      (2)https://www.gnu.org/;
      (3)是只公牛;
      (4)由 https://www.gnu.org/software/hurd/hurd.html 找到,名为 GNU hurd 操作系统。
  • 例题 1.1.3-1:

    开放原代码基金会 (Free software Foundation, FSF, https://www.fsf.org/) 主要提供了 GNU/GPL 授权, 该授权的使用有相关严格的规定。相对来说,开放原代码基金会 (Open Source Initiative, https://opensource.org/) 则虽然也是开放原代码软件,但至少可以拥有商业化的空间。因此,若想要商业化保留专属软件的封闭内容功能,可能选择 BSD 发布会比较好。 相关的 open source 授权,可以参考 https://opensource.org/licenses/alphabetical

  • 例题 1.1.4-1:
    1. 相关 Android 版本可以参考 https://zh.wikipedia.org/wiki/Android, https://zh.wikipedia.org/wiki/Android版本列表。目前市面上最新的 Android 10 使用的是 Linux kernel 5.0 版本。
    2. 请先前往 https://www.kernel.org/category/releases.html 查看,在制作教材的 2020/02 时,使用的 longterm 版本有 3.16, 4.4, 4.9, 4.14, 4.19, 5.4 等。
  • 例题 1.1.5-1:

    Red Hat 为一家自由软件商业公司,由于 Linux kernel 使用 GPL 授权,因此,Red Hat 就得要将其所开发的软件使用 open source 的方式发布, 这当然也包括 RHEL 这些软件的代码。但是,RHEL 里面含有 Red Hat 本身的商标授权等特别的图案等,这些数据则是 Red Hat 商业拥有! 那是不能够直接取用的。

    CentOS 为社群单位,志工工程师取得 RHEL 的软件之后,会依据 RHEL 建置的流程,先创建开放原代码的服务器树状环境, 之后逐一查看各软件是否有专属的商业图标在内,必需要取出后重新修改与编译。你可以参考 CentOS 的发行注记 (release note) 来了解更多!由于是 GPL 的关系,因此 CentOS 同样以 GPL 发布喔! 因此,你可以享有自由的拷贝与在发行的权力!

  • 例题 1.1.6-1:

    经过追查该系统,其相关信息为:

    • 使用 Intel Xeon Gold 6154,每颗 CPU 有 18 内核,系统总内核数达到 170,352 个,所以,总安装 CPU 颗数应可达到 170352/18 = 9464 颗。
    • 使用内存容量达到 193,536GB,差不多就是 194TB 的等级!
    • 就是使用 CentOS 喔!
    • 实际运作,耗电量达到 797千瓦,台湾一度电测定方式为 1 千瓦小时,所以,该系统开机一天 (24hrs) 时,耗电量为: 797*24 = 19128 千瓦小时。 每度电 5 元,故一天的电费: 19128*5 = 95640 元。这还不考虑冷气与照明设备的额外电力喔!
  • 例题 1.1.6-2:

    经查该系统,发现到主要支持的操作系统有 Oracle Linux (甲骨文,与 CentOS 类似,都是从 RHEL 系统拷贝来的分支), RHEL 与 RHEV (Red Hat 系统的虚拟化架构)、SUSE Linux Enterprise Server (SLES)、Ubuntu等, 这代表硬件制造商认为这几个操作系统是一般商用最常使用的环境,因此才会进行硬件支持度的测试。因此, 要选择 Linux distributions,当然以这几个版本来挑选是最佳的。

  • 例题 1.3.1-1:
    1. 点击『概览』之后,点击类似文档柜的图标,即可打开文件总管
    2. 大致区分为:『上方文件所在工作目录、可工作项目』、『左侧快速链接与其他电脑目录』、『右侧主要文件清单区』
      文件总管大致的三个区块介绍
      文件总管大致的三个区块介绍
    3. 可以点击上图中,在放大镜右侧的按钮,即可变更图标与详细项目的功能切换
    4. 在详细显示的环境下,你先点击上方任务栏最左侧的图标,然后依序运行底下的动作即可:
      操作文件总管显示详细数据的方法 操作文件总管显示详细数据的方法 操作文件总管显示详细数据的方法
      操作文件总管显示详细数据的方法
    5. 依序点击『左侧的"其他的位置"』,然后『双击右侧的"电脑"画面』,即可看到目前系统的所有可用目录
    6. 持续点击『电脑』、『etc』、『passwd』这个文件,然后在 passwd 上面点击右键,选择『拷贝』。 之后点击左侧『家目录』后,鼠标移动到右侧点击右键后粘贴即可。你可以发现到拥有者、群组、修改时间都改变了。
    7. 因为拥有者与群组都是『root』,目前身份是 student,因此,可能是因为权限不足的缘故。
  • 例题 1.3.1-2:
    1. 请点击右上角倒三角形,点击『有线网络』,点击『连接』之后,就可以看到网络图标。
    2. 点击『概览』之后,点击『终端机』,然后输入『 su - 』,之后提示输入密码时,输入『 myCentOS8 』这串密码,即可变身成为 root 管理员。 终端机画面有点像这样:
      [student@station10-101 ~]$ su -
      密码:   <==这里输入 myCentOS8 这个密码
      [root@station10-101 ~]#
      
      如上所示,在中括号内的项目,从 student 变成了 root 了!
    3. 接下来开始安装软件,直接在上述的画面中,继续输入安装指令即可:
      [root@station10-101 ~]# yum install ibus-libzhuyin
      Last metadata expiration check: 0:03:10 ago on Sun 01 Mar 2020 03:45:14 PM CST.
      Dependencies resolved.
      =======================================================================================
       Package                       Architecture     Version           Repository      Size
      =======================================================================================
      Installing:
       ibus-libzhuyin                x86_64           1.8.93-1.el8      AppStream      7.4 M
      Installing dependencies:
       kyotocabinet-libs             x86_64           1.2.76-17.el8     AppStream      328 k
       libpinyin                     x86_64           2.2.0-1.el8       AppStream      340 k
       libpinyin-data                x86_64           2.2.0-1.el8       AppStream      9.3 M
       libzhuyin                     x86_64           2.2.0-1.el8       AppStream      325 k
      
      Transaction Summary
      =======================================================================================
      Install  5 Packages
      
      Total download size: 18 M
      Installed size: 67 M
      Is this ok [y/N]: y
      Downloading Packages:
      (1/5): kyotocabinet-libs-1.2.76-17.el8.x86_64.rpm         586 kB/s | 328 kB     00:00
      (2/5): libpinyin-2.2.0-1.el8.x86_64.rpm                   512 kB/s | 340 kB     00:00
      (3/5): libzhuyin-2.2.0-1.el8.x86_64.rpm                   1.8 MB/s | 325 kB     00:00
      (4/5): ibus-libzhuyin-1.8.93-1.el8.x86_64.rpm             4.0 MB/s | 7.4 MB     00:01
      (5/5): libpinyin-data-2.2.0-1.el8.x86_64.rpm              5.9 MB/s | 9.3 MB     00:01
      ----------------------------------------------------------------------------------------
      Total                                                     6.0 MB/s |  18 MB     00:02
      warning: /var/cache/dnf/AppStream-a520ed22b0a8a736/packages/ibus-libzhuyin-1.8.93-1.el8.
      x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
      CentOS-8 - AppStream                                      1.6 MB/s | 1.6 kB     00:00
      Importing GPG key 0x8483C65D:
       Userid     : "CentOS (CentOS Official Signing Key) <security@centos.org>"
       Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
       From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
      Is this ok [y/N]: y
      Key imported successfully
      Running transaction check
      Transaction check succeeded.
      Running transaction test
      Transaction test succeeded.
      Running transaction
        Preparing        :                                                            1/1
        Installing       : kyotocabinet-libs-1.2.76-17.el8.x86_64                     1/5
        Running scriptlet: kyotocabinet-libs-1.2.76-17.el8.x86_64                     1/5
        Installing       : libpinyin-data-2.2.0-1.el8.x86_64                          2/5
        Installing       : libpinyin-2.2.0-1.el8.x86_64                               3/5
        Running scriptlet: libpinyin-2.2.0-1.el8.x86_64                               3/5
        Installing       : libzhuyin-2.2.0-1.el8.x86_64                               4/5
        Installing       : ibus-libzhuyin-1.8.93-1.el8.x86_64                         5/5
        Running scriptlet: ibus-libzhuyin-1.8.93-1.el8.x86_64                         5/5
        Verifying        : ibus-libzhuyin-1.8.93-1.el8.x86_64                         1/5
        Verifying        : kyotocabinet-libs-1.2.76-17.el8.x86_64                     2/5
        Verifying        : libpinyin-2.2.0-1.el8.x86_64                               3/5
        Verifying        : libpinyin-data-2.2.0-1.el8.x86_64                          4/5
        Verifying        : libzhuyin-2.2.0-1.el8.x86_64                               5/5
      
      Installed:
        ibus-libzhuyin-1.8.93-1.el8.x86_64       kyotocabinet-libs-1.2.76-17.el8.x86_64
        libpinyin-2.2.0-1.el8.x86_64             libpinyin-data-2.2.0-1.el8.x86_64     
        libzhuyin-2.2.0-1.el8.x86_64
      
      Complete!
      
      基本上,系统会自动的帮你进行网络安装的进程,非常简单。
    4. 处理完毕后,注销 root 帐号,而且我们需要注销图形界面,因此使用两次 exit 关闭终端机:
      [root@station10-101 ~]# exit
      logout
      [student@station10-101 ~]$ exit
      
    5. 点击右上角的功能,注销 student ,并再次登录
    6. 再次登录后,点击右上角倒三角形,进入控制台,并点击『地区和语言』的项目,在输入来源的地方,点击 + 号, 如下所示,显示出目前的输入法:
      在控制台改变输入法的方式 在控制台改变输入法的方式 在控制台改变输入法的方式
      在控制台改变输入法的方式
    7. 由『概览』点击左侧的『显示应用程序』,然后选择『文本编辑器』即可打开编辑软件
    8. 在右上角的输入法选择项目,点出『汉语(新注音)』的项目,此时你会看到右上角出现一个『中』的字样。 在此字样下,你可以按下 [shift] 来暂时转换中英文输入。此时就可以开始打字了。
    9. 按下文本编辑器右上角的『保存』按钮,并填写正确的文件名与位置,就可以保存了!如下所示:
      gedit 文书编辑器的保存示意图 gedit 文书编辑器的保存示意图
      gedit 文书编辑器的保存示意图
    10. 由『概览』启动『文件总管』,并点击『家目录』,应该就能看到刚刚处理妥当的文件名了!
      查阅刚刚创建的文件
      查阅刚刚创建的文件
  • 例题 1.3.1-3:

    设置屏幕保护程序的方法如下:

    1. 点击右上角倒三角形,并进入控制台
    2. 点击左侧下方处的『电源』,在『屏幕转黑』的项目调整成为『永不』即可:
      关闭屏幕保护程序
      关闭屏幕保护程序

    修改屏幕分辨率的方法如下:

    1. 点击右上角倒三角形,并进入控制台
    2. 点击左侧最下方处的『设备』
    3. 点击『显示器』,此时就可以调整分辨率。建议上课时的分辨率调整到 1440x900 最佳。
      调整屏幕分辨率
      调整屏幕分辨率
  • 例题 1.3.2-1:
    1. 以 [alt]+[shift]+[F3] 的方式切换到 tty3,并输入 student 帐号与密码来登录
    2. 此时输入 w 之后,画面可能有点像底下这样:
      [student@station10-101 ~]$ w
       16:49:12 up 4 min,  3 users,  load average: 0.04, 0.09, 0.04
      USER     TTY      FROM  LOGIN@   IDLE   JCPU   PCPU WHAT
      student  :1       :1    16:47   ?xdm?  26.29s  0.02s /usr/libexec/gdm-x-session gnome-session
      student  tty3     -     16:46    2:54   0.03s  0.03s -bash
      
    3. TTY 指的是从哪个终端机登录的意思,因此上表中的 tty3 指的是 tty3 有个名为 student 的帐号登录,且正在操作 bash 指令。 还有两个比较特别的终端机,一个是 :0, :1, :2 等等,那个代表从第 0 个开始登录的图形界面。目前 CentOS 8 允许多个图形界面的切换, 所以,你可以一直从 tty1 登录不同的帐号!而启动的图形界面会放置到其他 tty 去喔!所以,你得要自行在 6 个终端机之间切换才行。
  • 例题 1.4.1-1:
    1. 直接输入 clear 之后,你会发现终端机的环境变得干净,指令输入回到第一行,可以清理终端机的画面。
    2. 使用 ll 来查阅,查阅的方式有两种,分别如下:
      [student@station10-101 ~]$ ll /var/spool/mail
      总计 0
      -rw-rw----. 1 rpc     mail 0  2月 26 09:04 rpc
      -rw-rw----. 1 student mail 0  2月 26 09:10 student
      # 可以看到里面只有两个文件名,亦即只有两个文件的意思
      
      [student@station10-101 ~]$ ll -d /var/spool/mail
      drwxrwxr-x. 2 root mail 32  2月 26 09:10 /var/spool/mail
      # 这个方法可以直接看到目录本身,因此可以知道是 2 月 26 日创建这个目录的。
      
      [student@station10-101 ~]$ ll /var/spool
      总计 0
      drwxr-xr-x. 2 root root 63  2月 26 09:04 anacron
      drwx------. 3 root root 31  2月 26 09:06 at
      drwx------. 2 root root  6 11月  9 00:47 cron
      drwx--x---. 3 root lp   17  2月 26 09:05 cups
      drwxr-xr-x. 2 root root  6  5月 11  2019 lpd
      drwxrwxr-x. 2 root mail 32  2月 26 09:10 mail
      drwxr-xr-x. 2 root root  6 11月 22 01:36 plymouth
      drwx------. 2 root root  6 11月 14 12:16 up2date
      # 除了上述的方法之外,也可以通过观察上层目录,也就是 /var/spool 的内部文件名来找到 mail 喔!
      
  • 例题 1.5 课后作业:
    1. 先在图形界面上面,尽量使用图形化机制进行关机 (右上角的倒三角形,选择关机),如果有显示任何还在系统上面的用户,请先到该终端机上面注销后, 再继续进行关机的行为较佳。关机之后, remote-viewer 软件会自动脱机关闭,所以不要紧张。
    2. 重新在 virtualbox 画面,或者是 gocloud 的画面,再以 student 帐号登录,密码为 mystdgo,登录之后,按下『概览』, 再按下左侧『终端机』按钮,即可激活终端机。之后按下 w 之后,你就可以发现类似如下的画面:
      [student@station10-101 ~]$ w
       22:13:37 up 10 min,  2 users,  load average: 0.22, 0.14, 0.07
      USER     TTY      FROM     LOGIN@   IDLE   JCPU   PCPU WHAT
      student  :1       :1       22:12   ?xdm?  21.45s  0.01s /usr/libexec/gdm-x-session gnome-session
      
    3. 上面的画面看到了 :1 的状态,看起来应该有两个图形界面才对。此时请分别使用 [alt]+[ctrl]+[F1~F6],看一下有几个图形界面。 基本上,我们刚刚登录,因此,就可以发现到 tty1 与 tty2 应该就是图形界面,而 student 可以操作的环境, 大概就是在 tty2 了。
    4. 有没有正常运作网络,可以看一下右上方的状态栏是否有出现网络图标来判别。若没有网络图标,请『点击倒三角形』, 然后点击『有线网络未连接』的按钮,并按一下『连接』,如果环境中有正确的网络设置,那就可以连上网络了。 此时,你可以到终端机环境,输入『 nmcli connection show 』看看有没有输出正确的设置,如下所示:
      [student@station10-101 ~]$ nmcli connection show
      NAME    UUID                                  TYPE      DEVICE
      ens3    1eff13ae-e436-407c-bf67-ac0932bd1ed2  ethernet  ens3
      virbr0  83a8603d-a2bc-4607-a3a7-82127e797bd8  bridge    virbr0
      # 若正常设置, NAME 与 DEVICE 字段都会有数据,但是 virbr0 不要里她!
      
    5. 按下『倒三角形』,选择『控制台』,按下左侧的『电源』,就可以看到『屏幕转黑』的设置值,要设置成为『永不』才合理。
    6. 承上,在控制台的环境下,选择左侧『设备』,然后点击『显示器』,就可以看到『分辨率』的设置了。
    7. 承上,在控制台的环境下,选择『地区和语言』,然后查看『输入来源』的项目,就可以看到是否有新注音了。 若无新注音,请依据例题 1.3.1-2 的介绍,自行安装好新注音。
    8. 按下『概览』之后,点击『文件』,然后依序点击『其他的位置』、『电脑』、『etc』,然后将鼠标移动到『放大镜』上面点一下, 之后到搜索的方块,填入 group 关键字,应该就可以看到简化的内容,然后在 group 上面按右键,选择『拷贝』即可。
      利用文件总管拷贝文件
      利用文件总管拷贝文件
    9. 最后按下左侧『家目录』然后按下组合键『 [ctrl]+v 』即可粘贴。
    10. 将鼠标移动到 remote-viewer 画面内,按下 [alt]+[ctrl]+[F6] 进入到 tty6,然后输入 student , 显示出 Password 时,再输入 student 的密码,之后看到『 [student@localhost]$ 』的提示字符,就是登录成功了。
    11. 输入 history 就可以看到曾经下达过的指令,同时指令前面还会有编号喔。
    12. 你可以有几种方式来重复运行 (1)重新打字输入指令 (2)看到前面的编号,输入『 !数值』来重新运行 (3)按下方向键向上慢慢找到该指令来按下 [enter] 运行。 看起来还是第 (2) 个方式比较适合!请运行一次!
    13. 直接输入『 ll /etc 』就可以查阅了。
    14. 可以通过按下 [shift]+[PageUp] 及 [shift]+[Pagedown] 来一页一页向上、向下翻动,不过,实际能容纳的数据还不一定, 所以数据显示还是有限度的。
    15. 你可以分别使用『 ll /etc/pam.d 』以及『 ll -d /etc/pam.d 』来检查输出的结果,就可以知道这一题的用途了。
    16. 由于目前正在家目录,因此直接输入『 ll -a 』即可。如果想要确定是本身的家目录,可以运行『 ll -a ~ 』亦可。 你会发现多了很多小数点开头的文件,那就是隐藏档。
    17. 输入『 clear 』可以清除画面,然后按下 [ctrl]+d 就可以注销了!注销之后,按下 [alt]+[ctrl]+[F2] 即可回到原本的图形画面。
    18. 按下『倒三角形』,选择『student』底下的『注销』,就会回到原本的等待登录的画面。点击右上角的倒三角形, 应该可以看到电源按钮,点下之后就可以选择『Power Off』来关机了。
修改历史:
  • 2020/02/25:尝试直接在课程中加入解答,让大家有个参考依据。不过,没事不要来看啊!
  • 2020/03/10:加入了第三章的后课练习部份。
2020/03/02 以来统计人数
计数器
其他链接
环境工程模式篇
鸟园讨论区
鸟哥旧站

今日 人数统计
昨日 人数统计
本月 人数统计
上月 人数统计