操作系统第一次实验报告

Linux的基本使用和管理

一、实验内容简要描述

1、实验目标

  1. 完成Linux的安装和配置
  2. 了解Linux基本环境与使用
  3. 熟悉Linux文件处理
  4. 学习vi编辑器的使用

2、实验要求

  1. 熟悉linux操作系统的基本安装和配置;了解linux操作系统的启动过程和桌面环境;掌握VirtualBox虚拟机的使用
  2. 了解Linux的命令格式,掌握Linux中的操作命令;学会使用各种Shell命令操作Linux;学会如何得到帮助信息
  3. 熟悉Linux文件系统的文件和目录结构,掌握Linux文件系统的基本特征;掌握命令行方式下文件操作命令和程序中文件操作函数的使用方法;掌握Linux文件系统的加载和卸载方法
  4. 了解用vi编辑器编辑文本文件的基本使用方法;熟练运用vi编辑器进行快速文档编辑

二、实验过程设计

1、设计思路

  • Linux的安装和配置
    1. 下载VirtualBox和两个不同的发行版镜像文件
    2. 在VirtualBox中利用第一个镜像文件完成第一个Linux的安装
    3. 在VirtualBox中利用第二个镜像文件完成第一个Linux的安装
    4. 分别完成两个linux网络信息、用户信息、文件系统及硬盘分区的配置
    5. 通过GRUB解决两个操作系统选择启动问题
  • Linux基本环境与使用
    1. 使用man命令获得lsunamedatecalmkdircp等Linux命令的帮助手册,了解这些命令的具体使用方法
    2. 通过uname命令的执行,查看并给出系统的相关信息
    3. date命令显示当前时间,用cal命令显示2008、2013年的日历,给出执行命令和显示结果
    4. 在主目录下创建一个名为myetc的子目录,将/etc目录下与网络相关的文件和子目录拷贝到该目录下,并将文件的执行权限设置为可执行
  • Linux文件处理
    1. 在用户主目录下创建目录树,列出完成该过程的所有命令
    2. /usr/bin目录下有多少个普通文件、目录文件和链接文件?如何得到这些信息
    3. 显示用户主目录下所有影藏文件的文件名,列出执行的命令及输出结果
    4. 实现对光盘、移动硬盘的加载和访问,然后卸载设备
    5. 让系统开机时自动加载Windows文件系统,实现对Windows数据的访问和共享
  • vi编辑器的使用
    1. 在当前用户目录下建立vitest子目录,将/etc/inittab文件拷贝到vitest子目录
    2. 用vi编辑器打开该文件,执行下述操作,并详细说明操作过程及方法
      • 删除第5,15和25行指令
      • 将文中所有的etc字符串替换成config
      • 复制第11-20行的内容,并且贴到文件最后一行之后
      • 将每行开头的第一个字符#删除
      • 删除包含有字符串conf的那几行
      • 在第一行新增一行,输入姓名学号
      • 将文件另存为new-inittab.conf

2、实验过程

  • Linux的安装和配置

    1. 在VirtualBox中安装Ubuntu

      1.png

      屏幕快照 2018-09-14 下午4.14.29.png

    2. Installation Type选择something else

      屏幕快照 2018-09-14 下午4.17.18.png

    3. 将挂载点设置为/dev/sda,文件类型设置为ext4
      屏幕快照 2018-09-14 下午4.17.36.png

    4. 安装完成后关闭该虚拟机,在VirtualBox对刚刚安装好的虚拟机进行设置,在储存中对添加新的虚拟光驱,将另一个Ubuntu镜像文件添加进去

      屏幕快照 2018-10-08 上午9.20.33.png

    5. 系统->主板中将光驱的启动顺序提到硬盘

      屏幕快照 2018-10-08 上午9.20.53.png

    6. 安装第二个Ubuntu镜像,对之前分配的硬盘空间进行分区,挂载点设置为swap area,安装完成后再次启动即会出现选择系统界面

      屏幕快照 2018-10-08 下午2.06.42.png

    7. 由于我使用的Ubuntu版本为16.04.2,其自带GRUB,无需手动进行配置

  • Linux基本环境与使用

    1. man ls

      屏幕快照 2018-10-07 下午8.41.29.png

    2. man uname

      屏幕快照 2018-10-07 下午8.42.12.png

    3. man date

      屏幕快照 2018-10-07 下午8.42.31.png

    4. man cal

      屏幕快照 2018-10-08 上午10.12.55.png

    5. man mkdir

      屏幕快照 2018-10-07 下午8.44.59.png

    6. man cp

      屏幕快照 2018-10-07 下午8.45.28.png

    7. uname查看并给出系统的相关信息

      屏幕快照 2018-10-07 下午8.45.54.png

    8. date显示当前时间

      屏幕快照 2018-10-07 下午8.46.17.png

    9. cal 2008cal 2013显示2008、2013年的日历

      屏幕快照 2018-10-08 上午10.04.43.png
      屏幕快照 2018-10-08 上午10.05.11.png

    10. 在主目录下创建一个名为myetc的子目录,将/etc目录下与网络相关的文件和子目录拷贝到该目录下

      屏幕快照 2018-10-08 上午10.03.30.png

  1. 将文件的执行权限设置为可执行

    `chmod a+x network` chmod命令修改文件权限
    ![屏幕快照 2018-10-07 下午9.04.40.png](https://i.loli.net/2018/10/08/5bbb1c8204eb8.png)
    
    `ls -l` 显示文件详细信息,开头的第一个字符串标识文件权限。这个字符串有10位,可以分为4段来解读。注:`r--`可读,`w--`可写,`x--`可执行。
    
    第一段(第1位)表示是目录还是文件,-表示是文件,d表示是目录;第二段(第2-4位,共3个字符串)表示文件所属用户对它的权限;第三段(第5-7位,共3个字符串)表示文件所属用户组用户对它的权限;第四段(第8-10位,共3个字符串)表示其他用户对它的权限
    
  • Linux文件处理

    1. 创建目录树

      ls列出当前目录下所有文件,mkdir新建文件夹

      屏幕快照 2018-10-07 下午9.07.51.png

    2. 使用ls -l查看当前目录下所有文件及其详细信息,第一列的第一个字符即为文件类型,-是普通文件,d是目录文件,l是链接文件;管道命令操作符是:|,它只能处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入;我们将ls -l的输出通过管道转发给grep作为输入内容,再使用grep命令结合正则表达式匹配指定字符开头的字符串

      屏幕快照 2018-10-07 下午9.28.55.png

    3. ls -d .*显示所有隐藏文件

      屏幕快照 2018-10-07 下午9.34.14.png

    4. 加载硬盘

      由于普通用户无法挂载硬盘,所以我们需要先获得root权限

      屏幕快照 2018-10-08 下午2.51.58.png

      安装Oracle VM VirtualBox Extension Pack,下载后双击即可启动VirtualBox进行自动安装。这个扩展包可以为VirtualBox增加一系列的功能支持:USB2.0设备、因特尔网卡的PXE启动和VirtualBox远程显示系统等。安装之前需要关闭所有VirtualBox中的虚拟机。

      端口->USB设备将USB控制器设置为USB3.0

      屏幕快照 2018-10-08 下午2.41.06.png

      将要挂载的U盘添加至USB设备筛选器

      屏幕快照 2018-10-08 下午2.41.30.png

      在虚拟机中加载USB模块

      屏幕快照 2018-10-08 下午2.46.16.png

      fdisk -l查看磁盘设备

      屏幕快照 2018-10-08 下午2.46.23.png

      我们发现U盘并没有成功挂载

      屏幕快照 2018-10-08 下午2.49.08.png

      尝试在设备->USB中加载该U盘,出现报错,原因是主机正在占用该设备,所以虚拟机中无法使用

      屏幕快照 2018-10-08 下午2.44.52.png

      我们在主机上将U盘推出

      屏幕快照 2018-10-08 下午2.45.13.png

      重新加载USB模块,查看磁盘设备,此时U盘已经成功挂载

      屏幕快照 2018-10-08 下午2.45.57.png

    5. 加载Windows文件系统

      由于我电脑的操作系统为MacOS,实现在虚拟机中加载Windows文件系统存在一些困难,但上一题中加载U盘的文件格式为NTFS,级Windows文件格式,可视为对Windows文件系统的加载

  • vi编辑器的使用

    1. 建立vitest子目录

      屏幕快照 2018-10-08 下午3.14.59.png

    2. /etc/inittab文件拷贝到vitest子目录

      由于我的Linux中并没有/etc/inittab这个文件,所以使用/ect/init.d/kerneloops替代

      屏幕快照 2018-10-08 下午3.14.36.png

    3. vi编辑器打开文件

      屏幕快照 2018-10-08 下午3.29.32.png

      屏幕快照 2018-10-08 下午3.29.51.png

    4. 删除第5,15和25行

      :nd n为要删除的行数

      由于删除后行数会改变,所以从行数大的向行数小的进行删除

      屏幕快照 2018-10-08 下午3.31.11.png

      屏幕快照 2018-10-08 下午3.31.41.png

      屏幕快照 2018-10-08 下午3.31.54.png

    5. 将文中所有的etc字符串替换成config

    :%s/etc/conf/g s命令,需要注意的是,要在最前面加上%表示全文,如果不加只会替换第一次出现目标字符串的行里面的,命令的最后要加一个替换标志/g,替换每一个出现的字符串,如果不加/g的话,如果某一行有两个目标字符串,在替换了第一个之后就会去下一行,而第二个就不替换了

    屏幕快照 2018-10-08 下午3.50.00.png

    1. 复制第11-20行的内容,并且贴到文件最后一行之后

      :11,20y a,by指令复制,表示复制a到b行的内容,之后把光标移动到最后,按p粘贴,最开始它只会出现第一行,这时需要按回车继续下一行的粘贴。可以看出11-20行和最后10行一样

      屏幕快照 2018-10-08 下午3.52.13.png

    屏幕快照 2018-10-08 下午3.52.24.png

    1. 将每行开头的第一个字符#删除

      :%s/^#//g 删除可以用替换成空白完成,s为替换命令,^/是被替换项的正则表达式,表示以#开头,替换成空白,命令的最后要加一个替换标志/g,替换每一个出现的字符串,如果不加/g的话,如果某一行有两个目标字符串,在替换了第一个之后就会去下一行,而第二个就不替换了

      屏幕快照 2018-10-08 下午3.57.27.png

      屏幕快照 2018-10-08 下午3.57.05.png

    2. 删除包含有字符串conf的那几行

      :g/conf/d 先用/查询,查询时要加上g表示全局查询,然后用的删除查询到的行,组合起来就可以了

      屏幕快照 2018-10-08 下午4.00.18.png

      屏幕快照 2018-10-08 下午3.59.48.png

    3. 在第一行新增一行,输入姓名学号

      首先将光标移到最前,键入O进入编辑模式,之后输入姓名学号,输入完成后按esc回到命令模式

      屏幕快照 2018-10-08 下午4.03.25.png

    4. 将文件另存为new-inittab.conf

      :w new-inittab.conf

      屏幕快照 2018-10-08 下午4.05.14.png

      屏幕快照 2018-10-08 下午4.05.36.png

三、实验结果

1、基本数据

  • 完成该实验投入的时间:12h+
  • 完成的工作量(如命令数、阅读或实验代码行数等):200+

2、实验软硬件环境

  • 系统:Ubuntu 16.04
  • 内存:2G

3、值得说明的实验发现(结果)

由于实验指导的年代比较久远,有很多地方已经跟书上所说有了变化,比如现在的Ubuntu自带GRUB,不需要我们手动配置,虚拟机在挂载硬盘时也无需通过mount指定挂载点了。

俗话说尽信书不如无书,我们在参考实验指导的同时,更重要的是学会自己解决问题的能力,我们在实验过程中遇到的问题,往往已经有很多人碰到过了,我们可以利用网络在检索资料,有很多的博客以及社区都有很多的技术贴对于问题的记录十分详尽,值得我们去学习。

此外,Ubuntu的官方文档也十分具有参考价值

4、实验结果分析

完成了Linux的安装和配置,对Linux基本环境有了一定了解,学会了Linux文件处理的方法,同时可以较为熟练的使用vi编辑器了

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐