Linux实验 vi编辑器的使用与磁盘管理

  • 实验目的:
  1. 掌握vi编辑器的启动、保存和退出;
  2. 掌握vi编辑器的三种工作模式的转换及输入模式下的操作;
  3. 了解Linux文件系统类型、虚拟文件系统和存储设备的名称;
  4. 掌握磁盘文件系统的挂载和卸载;
  5. 掌握常用磁盘操作命令;
  6. 掌握YUM本地源的配置;
  7. 掌握vi编辑器命令模式下和底行命令模式下的操作;
  8. 掌握文本块的移动和编辑多个文件的操作方法;
  9. 了解挂载大容量U盘和移动硬盘的方法。

  • 实验内容:

在VMware中启动CentOS7虚拟机后,打开putty或者MobaXterm,远程登录root账号,完成以下任务,截图并粘贴于以下空行中。

注意,本次实验会对Linux系统的磁盘分区进行相关的操作,为避免操作后Linux系统出现问题,大家可以先在VMware的“虚拟机”菜单下,单击“快照”下的“拍摄快照…”。后期如果Linux系统出现问题,可以通过恢复此处的快照即可恢复到快照前的Linux系统。

初步掌握vi编辑器的三种工作模式。

用vi新建一个名为tales的文本文件(内容如下),熟悉三种工作模式的切换,最后保存退出。

There was once a poor Prince, who had a kingdom. His kingdom was very small, but still quite large enough to marry upon; and he wished to marry.

以前我们在配置网络IP地址、子网掩码、网关等时,用的是图形界面的方法,现在学习如何在字符界面下用vi修改相关配置文件的方法完成同样任务。利用vi编辑器配置网络接口设备文件(/etc/sysconfig/network-scripts/ifcfg-ens33)。用vi打开该文件,一般根据需要修改BOOTPROTO、ONBOOT、IPADDR、GATEWAN和METMASK等参数值,因此重点掌握这几个参数值的意义(参考教材P114)。利用此文件,进一步熟悉vi输入模式下的基本操作,如修改一些内容,最后“不保存”退出。最后修改此配置文件后,务必要重启network服务,才能使新的配置在当前系统中永久生效。重启network服务的命令为:

service network restart(CentOS7以前的用法,目前新版本中仍然可用)

或systemctl restart network(CentOS7的用法)

磁盘管理综合练习:为虚拟机中的Linux 系统增加一块新的1G硬盘,并且挂载到/home/newdisk。

步骤概要:

虚拟机添加硬盘

分区:fdsk /dev/sdb

格式化:mkfs -t xfs /dev/sdb1

挂载:新建目录:mkdir /home/newdisk;挂载:mount /dev/sdb1 /home/newdisk

取消挂载:unmount /dev/sdb1

自动挂载(永久挂载):系统重启后仍然可以挂载。vim etc/fstab 增加挂载信息;mount -a:生效

详细步骤:

第1步:新增硬盘。

先运行lsblk命令,以树状列出目录系统中的所有块设备(块设备有硬盘,闪存盘,cd-ROM等等)。lsblk(全称list block)命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。

为虚拟机中的CentOS7添加一块硬盘。在VMware的“虚拟机”菜单中,选择“设置”,在打开的对话框中的“硬件”标签页中,点击左侧下面一行中的“添加”按钮。然后在设备列表里添加硬盘(虚拟磁盘类型选择默认推荐的SCSI),一路按默认设置,点击“下一步”,直至到达选择磁盘大小的那一步,修改“最大磁盘大小”为1G,其实设置不变,点击“下一步”,直至完成。

运行lsblk命令,但并未发现新增加的那块硬盘(sdb)。原因是需要重启系统才能识别到(这类似于真实服务器增加一块硬盘,需要先断电,连上硬盘后也需要重启一样)。

输入reboot命令,重启CentOS7服务器,再次运行lsblk命令。此时可以查到新增加的硬盘,名字为sdb。但注意到此硬盘与系统已有的sda相比,没有分区(即没有类似的sdb1之类的分区)。

第2步:对新增的硬盘进行分区(fdisk)。

运行分区命令 fdisk /dev/sdb ,对名为sdb的新增硬盘进行分区(/dev目录存放连接到计算机上的设备的对应文件)。输入命令后回车。

仔细阅读该命令的提示信息,在“命令(输入 m 获取帮助):”后输入m后回车,会看到fdisk命令的帮助。重点注意其中几个主要的选项:

•d 删除分区

•m 显示命令列表

•n 新增分区

•p 显示磁盘分区,同 fdisk –l

•q 不保存退出

•w 将分区写入硬盘并退出

输入n回车,准备新增分区。接下来提示选择是创建主分区(p, primary)还是扩展分区(e, extended)?默认是新增主分区p,这里选择p回车(或直接回车)。接着询问分区号1-4。为简单起见,这里只创建一个主分区,所以选择1回车(如果此时输入后想修改,按住Ctrl+Backspace进行修改)。之后的起始扇区、最后扇区等直接回车(即取默认值)

最后必须将刚才的分区操作保存才能生效。在“命令(输入 m 获取帮助):”后输入w,将操作写入并退出。(若不保存退出输入 q。)

加选项-f再次运行lsblk命令,即lsblk -f命令(其中选项-f表示显示文件系统信息)。此时可以看到新增加的硬盘sdb下有一个分区sdb1。但是,此分区的FSTYPE(文件系统类型)值为空,且32位的十六进制的UUID(Universally Unique Identifier全局唯一标识符,UUID为系统中的存储设备提供唯一的标识字符串)值也为空,这说明此

分区没有格式化成某种格式的文件系统,还不能进行读取。

3步:对新增硬盘的分区进行格式化(mkfs)。

运行命令:mkfs -t xfs /dev/sdb1。

此命令将第2步创建的sdb1分区格式化为CentOS7默认的xfs格式的文件系统,其中选项-t指定要格式化为何种文件系统。格式化后会给出结果信息。

再次运行命令:lsblk -f。可以看到,sdb1的FSTYPE值非空了,且值为xfs格式,UUID值也有了,说明此分区已经格式化完成。但是与前面已有的名为sda的硬盘下的分区相比,MOUNTPOINT(挂载点)为空,说明sdb1分区虽已格式化,但还没有挂载到系统中,不能被系统所用。

4步:将硬盘一个分区挂载到Linux文件系统的一个目录(mount)。

利用命令mkdir在/home目录下创建一个名为newdisk的子目录。

运行命令mount /dev/sdb1 /home/newdisk,将刚刚格式化后的sdb1分区挂载到Linux系统中/home/newdisk目录。

再次运行命令:lsblk -f。可以看到sdb1分区的挂载点为/home/newdisk。

进入/home/newdisk,在此目录中随便新建一个目录和一个空文件,然后用ls命令查看,从而确认该分区已成功挂载到Linux系统中的指定的目录。(注意:Linux文件系统中/home/newdisk目录中刚刚新建的目录和空文件实际是放在新增的硬盘的sdb1分区中)

5步:将已挂载的分区从文件系统的某个目录卸载(umount)。

接上,假设当前目录为/home/newdisk,输入命令umount  /dev/sdb1 或者 umount  /home/newdisk (即:umount后面可以跟指定要卸载的文件系统或者其对应的设备文件名均可)。

可以看到提示“目标忙”,其意思是说,当前要卸载的目标目前正在使用(事实上,当前目录正是该目标)因此无法卸载。解决办法是,退出该目录到任何一个不在该分区的目录里,再次运行命令umount  /dev/sdb1 或者 umount  /home/newdisk即可。

6步:将分区永久挂载到Linux文件系统的某个目录(即系统启动时自动挂载)。

若不进行第5步的卸载操作,上述挂载的分区在CentOS7系统重启后失效,需要重新挂载才可使用。为了让系统启动时自动挂载,需要将挂载命令写入到配置文件中,此配置文件为/etc/fstab。利用vi打开此文件,仿照其中已经信息的格式填写以下信息(各项之间按Tab键隔开),最后保存退出即可。

/dev/ sdb1 / home/ newdisk xfs defaults 0 0

添加完成并保存退出后,执行 mount –a 立即生效。

进入/home/newdisk目录查看是否正常。

为虚拟机中的Linux 系统挂载fat32格式的U盘(如果挂载NTFS、exFAT格式的U盘,需要先安装相应驱动,参看本实验指导的附录)。

插入U盘并连接U盘。注意此时虚拟机不要登录图形界面,如果已经登录图形界面,请点击右上角电源图标,选择注销该用户,退出到用户登录界面。将U盘插入Windows主机的USB接口。此时VMware会弹出类似如下的对话框。

提示插入的设备不能同时在主机和虚拟机中使用。可通过2种方法将U盘连接到虚拟机中使用。第一种方法是点击“虚拟机”菜单中的“可移动设备”,根据U盘名字找到U盘,点击其子菜单中的“连接(断开与主机的连接)”;第二种方法是点击VMware窗口右下角状态栏中的U盘图标(即上图中的设备图标,通常位于最后),在弹出的菜单中选择“连接(断开与主机的连接)”。之后会弹出对话框,

点击“确定”后就将U盘连接到虚拟机中的Linux了。如果此时有用户已经登录图形界面,这时,在图形界面里就可以看到U盘图标,并可直接读取U盘里的内容。下面我们学习如何在字符界面中如何读取U盘内容。

查看U盘在系统中的设备名。在SSH客户端(如putty等)远程登录虚拟机,运行fdisk -l 或者lsblk命令查看此设备是否连接,且记住其名称,这里假设为/dev/sdc,其有一个名为sdc1的分区。

在虚拟机中新建U盘将要挂载的目录(挂载点),这里假设挂载点是/mnt/udisk。

挂载U盘。由于U盘的文件系统格式是fat32,且其中的文件或目录通常会是中文,因此,在写挂载命令时,需要将选项-t设为vfat,选项-o设为iocharset=utf8,即mount -t vfat -o iocharset=utf8 /dev/sdc1 /mnt/udisk(试试先不用这个选项,看看后面在读取U盘时,中文文件名或目录名变成什么样)

进行/mnt/udisk目录,查看U盘中的内容,并在U盘中新建一个名为abc.txt的文本文件。

卸载U盘(注意,如果遇到类似“umount: /mnt/udisk:目标忙。”是什么原因?如何处理)。此时U盘会自动被Windows主机识别,打开U盘查看刚刚在Linux系统中新建的文件abc.txt是否还在。

其它磁盘管理命令练习

使用du命令查看磁盘分区上的可使用的磁盘空间。默认显示单位为KB。

查看系统磁盘设备(不带任何选项)

使用-h选项以KB以上的单位来显示,可读性高。

使用-a选项查看全部文件系统。

使用-s选项只显示最后汇总的磁盘占用空间大小。

使用df命令查看被挂载的文件系统的信息。

显示所有被挂载的文件系统信息。

使用-h(以合适/人性化的容量单位显示)和-T(显示分区类型)查看全部文件系统,并回答/dev/sda1这个文件系统是什么分区类型?

dev/sda1这个文件系统是xfs分区类型

YUM本地源的配置(教材P106)

利用yum命令在线安装软件包很方便,但是出于安全性考虑,有时服务器不能连接外网,此时就不能采用在线安装方式。而CentOS7镜像文件中包含了大部分软件包,因此在没有网络的情况下,可以配置YUM源为本地的光盘,实现YUM本地源安装。以下分两步完成配置。

第1步:挂载光盘镜像。

首先确保在VMware的“虚拟机设置”中,已将光盘镜像文件连接上,如下图两处红色方框所示。

类似于前面挂载U盘,启动虚拟机后,不要登录,点击VMware窗口右下角状态栏中的光盘图标,在弹出的菜单中选择“连接(断开与主机的连接)”。这样,就将光盘连接到虚拟机中。这里就相当于将真实的光盘放入真实的服务器的光驱中。

在远程终端(如puuty等)使用lsblk -f查看光驱是否连接,并记住此光盘的设备名,默认为/dev/sr0。

在/mnt目录下新建/cdrom子目录。

将光盘挂载到/mnt/cdrom。

查看此挂载点,看是否可以成功读取光盘中的文件。

注:上述操作的挂载点是临时的,若要永久挂载,可以设置系统启动自动挂载,方法是在/etc/fstab配置文件的最后新添加一行,添加内容如下:

/dev/sr0 /mnt/cdrom iso9660 ro,relatime 0 0

2步:配置本地安装源。

YUM的软件仓库配置文件都存在/etc/yum.repos.d/目录下,是以.repo为扩展名的7个文件,这些文件含有多个网上的镜像站点。先将原有的这些外网软件仓库配置文件备份(移动)到一个新建的名为/root/yum.repo目录中(也可以把原有的配置文件改名,如在原文件名后加.bak)。

使用vim编辑器在原软件仓库的配置目录下创建一个新的名为local.repo的本地源软件仓库文件,并在该新的配置文件local.repo内写入如下内容(注意其中“///”处有三个斜线,这里的第三个斜线表示根目录/),将repo文件指向光盘镜像文件的挂载目录(即第二行),最后保存退出vim。

[local]

name = local

baseurl= file:///mnt/cdrom

enabled= 1

gpgcheck=0

使用yum clean all命令,清除缓存。

使用yum makecache命令,把YUM源缓存到本地。

使用yum repolist all命令,查看使用的软件仓库是否是本地源,即是否加载的是本地光盘镜像文件。

利用YUM本地源(光盘镜像文件)安装软件包。

这里以安装httpd软件包为例,练习YUM的本地源安装。httpd软件包用来安装Apache服务器,Apache(Apache HTTP Server)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache、Nginx、IIS,此外还有Tomcat、Lighttpd、Zeus等。(可参考教材P37,P195)

先用rpm -qa|grep httpd 查找本地源中的httpd服务软件。

根据查询到的安装软件名,使用yum install httpd.x86_64命令安装http软件。

安装完成后,使用systemctl status httpd命令查看Apache服务“httpd.service”的运行状态。

使用systemctl restart httpd命令,启动Apache服务。然后再次查看Apache服务的运行状态。注意与上一步状态的不同。

在Windows主机的浏览器中输入CentOS7服务器的IP地址(此IP可在虚拟机中用ifconfig命令查看得到),尝试打开网页。如果网页打不开,需要打开虚拟系统CentOS7的防火墙,并打开HTTP的80端口,具体方法如下:

执行以下命令查看防火墙80端口是否打开。

firewall-cmd --query-port=80/tcp

如果结果显示为no,执行以下命令打开80端口。

firewall-cmd --permanent --add-port=80/tcp

如果显示success,表明成功打开,接着输入以下命令重启防火墙。

firewall-cmd --reload

如果显示success,表明成功重启防火墙服务,接着输入systemctl restart httpd,重启httpd服务。

最后刷新之前的IP地址,若出现以下页面内容,则说明Apache服务配置成功。

为了以后CentOS7服务器能够正常在线安装RPM软件包,以上实验完成后,请记得将之前份的7个repo文件恢复到原来的/etc/yum.repos.d/目录下,并将自己的创建的local.repo文件删除。然后运行yum clean all命令清除缓存,运行yum makecache命令,把YUM源缓存到本地。

按照教材相关内容,自行进行vi命令模式练习。(不用截图)

按照教材相关内容,自行进行vi底行命令模式练习。(不用截图)

按照教材相关内容,自行进行vi的文本移动和编辑多个文件的练习。(不用截图)

打开vi编辑器,进行如下操作(每小题先写出命令,再粘贴结果截图):

插入2019年日历,并把该文件命名为2019.txt。

vi 2019.txt

把4、5、6月的日历整体向右移动一个制表位。

: set ts=8 ;shift+v ;>

把该日历的标题“2019”改为“2019年全年日历”。

:ls/2019/2019Full Year Calendar/ ; :wq

删除1、2、3月的日历,然后予以恢复。

进入vi编辑器后,按下Esc键,然后输入:1,12d删除1到12行,即1、2、3月的日历。接着按下u键进行撤销操作,恢复删除的内容。完成后按下Esc键,输入:wq保存并退出vi编辑器。

把7、8、9月的日历整体移到日历的最后面。

进入vi编辑器后,按下Esc键,然后输入:1,6m$将1到6行(7、8、9月的日历)移动到最后。完成后按下Esc键,输入:wq保存并退出vi编辑器。

依次检索字符串“30”,如果每个月的最后一天为“30”,则删除该字符串“30”。

进入vi编辑器后,按下Esc键,然后输入:1,$s/30$//g将每个月最后一天为"30"的字符串删除。完成后按下Esc键,输入:wq保存并退出vi编辑器。

显示行号。

vi -c “set number” 2019.txt

在该vi编辑器中统计该文件的大小。

ls -lh 2019.txt

已知有两个文本文件f1和f2,把f1文件中的第5~9行剪切并插入粘贴到f2文件的第3行后,再把f2文件中的所有read字符串全部改写成reading,最后在f1文件后附加上当前时间。利用vi编辑器写出以上操作步骤及其相关命令。(只写命令)

首先用vi打开两个文本文件f1和f2,执行命令:

vi f1

vi f2

此时编辑为f1下,把光标移到第5行,执行剪切命令:

:5,9d

然后把剪切后的f1存盘,命令:

:wq

之后转到编辑f2文件下,命令:

:q

vi f2

进入到f2下把光标移到第3行,执行粘贴命令:

: 3put

粘贴后,把f2文件中的所有read字符串全部改写成reading,执行全局替换命令:

:%s/read/reading/g

为了在f1文件后附加上当前时间,由于当前为f2文件的编辑状态下,因此先把f2存盘,再返回f1的编辑状态下,存盘和返回f1的两个命令分别是:

:wq

:q

vi f1

进入到f1编辑状态下后,把光标移到最低,执行插入shell命令,插入当前时间,命令为:

: $r!data

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值