今天首先学习Vim编辑器的使用,通过它可以对Linux系统的文件进行编写和修改。在Linux系统中一切都是文件,所以熟练掌握Vim编辑器的使用十分重要。最后通过配置主机网卡的实验,来加深Vim编辑器中诸多命令、快捷键、模式切换方法的理解。

一、Vim文本编辑器


  Vim编辑器设置了三种模式,每种模式分别支持多种不同的命令快捷键,三种模式如下所示:

    •   命令模式:控制关标移动,可对文本进行复制、粘贴、删除和查找工作。
    •   输入模式:正常的文本录入。
    •   末行模式:保存或退出文档,以及设置编辑环境。

  在每次使用Vim编辑器的时候,首先进入命令模式,此时通过按下a、i、o健切换到输入模式后才能进行文档编写工作。编辑完文档后需要按Esc健返回命令模式,再按下:健进入末行模式,执行文档的保存或退出操作。注意,输入模式是无法直接切换至末行模式的。

  命令模式下常见的一些命令如下所示:

命令 作用
dd 删除(其实是剪切)光标所在的行
5dd 删除(其实是剪切)从光标处开始的5行
yy 复制光标所在的行
5yy

复制从光标开始处的5行

n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的操作
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标的后面

  末行模式主要用于保存或退出文档,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。末行模式中常见的命令如下所示:

命令 作用
:w 保存
:q 退出
:q! 强制退出(放弃对文档的保存)
:wq!

强制保存退出

:set nu 显示行号 
:set nonu 不显示行号 
:命令 执行该命令 
:整数 跳转到该行 
:s/one/two 将当前光标所在行的第一个one替换成two 
:s/one/two/g 将当前光标所在行的所有one替换成two 
:%s/one/two/g 将全文中的所有one替换成two 
?字符串 在文本中从下至上搜索该字符串 
/字符串 在文中从上至下搜索该字符串

二、编写简单文档


  第1步:使用Vim编辑器新建一个文档,将其命名为practice.txt。

  1. [root@linuxprobe ~]# vim practice.txt
  2. [root@linuxprobe ~]#

  第2步:打开practice.txt文件后,就默认进入了命令模式,此时只能执行命令模式的命令。

  第3步:在命令模式按下a、i、o健切换至输入模式。进入输入模式后,就可以随意输入文本内容。

   第4步:在编写完了之后,想要保存并退出,必须先按下Esc健切换至命令模式,然后再按下:健切换至末行模式,最后输入wq!完成保存退出的操作。

  第5步:已成功完成一个文档的编写,使用cat命令查看文件的内容。

  1. [root@linuxprobe ~]# cat practice.txt
  2. Now,you can write it.

三、配置网卡信息


  网卡IP地址配置的正确是两台服务器相互通信的前提。在Linux系统中一切都是文件,因此配置网络服务的工作其实就是在编辑网卡的配置文件。在RHEL7系统中,网卡的配置文件的名称由前缀ifcfg加上网卡名称组成,比如ifcfg-eno16777728。现在对一个名称为eno16777728的网卡设备进行相关配置,具体步骤如下所示:

  第1步:首先切换至/etc/sysconfig/network-scripts目录中,该目录存放网卡的配置文件。

  1. [root@linuxprobe ~]# cd /etc/sysconfig/network-scripts/
  2. [root@linuxprobe network-scripts]#
  3. [root@linuxprobe network-scripts]# ls
  4. ifcfg-eno16777728 ifdown-ippp ifdown-routes ifup ifup-ipv6 ifup-ppp ifup-tunnel
  5. ifcfg-lo ifdown-ipv6 ifdown-sit ifup-aliases ifup-isdn ifup-routes ifup-wireless
  6. ifdown ifdown-isdn ifdown-Team ifup-bnep ifup-plip ifup-sit init.ipv6-global
  7. ifdown-bnep ifdown-post ifdown-TeamPort ifup-eth ifup-plusb ifup-Team network-functions
  8. ifdown-eth ifdown-ppp ifdown-tunnel ifup-ippp ifup-post ifup-TeamPort network-functions-ipv6
  9. [root@linuxprobe network-scripts]#

  第2步:使用Vim编辑器修改网卡配置文件ifcfg-eno16777728,逐项写入如下的配置参数并保存退出。

  TYPE=Ethernet                      //设备类型

  BOOTPROTO=static               //地址分配模式,分为static和dhcp两种

  NAME=eno16777728             //网卡名称

  ONBOOT=yes                        //是否启动

  IPADDR=192.168.10.10         //IP地址

  NETMASK=255.255.255.0      //子网掩码

  GATEWAY=192.168.10.1        //网关地址,注意“GATEWAY”不要写错了,容易写成“GETEWAY”或“GATAWAY”

  DNS1=192.168.10.1              //DNS地址

  1. [root@linuxprobe network-scripts]# cp ifcfg-eno16777728 ifcfg-eno16777728.cpoy //在编辑网卡配置文件之前,先做好原文件备份,养成好习惯
  2. [root@linuxprobe network-scripts]# ls
  3. ifcfg-eno16777728 ifdown-post ifup-bnep ifup-routes
  4. ifcfg-eno16777728.cpoy ifdown-ppp ifup-eth ifup-sit
  5. ifcfg-lo ifdown-routes ifup-ippp ifup-Team
  6. ifdown ifdown-sit ifup-ipv6 ifup-TeamPort
  7. ifdown-bnep ifdown-Team ifup-isdn ifup-tunnel
  8. ifdown-eth ifdown-TeamPort ifup-plip ifup-wireless
  9. ifdown-ippp ifdown-tunnel ifup-plusb init.ipv6-global
  10. ifdown-ipv6 ifup ifup-post network-functions
  11. ifdown-isdn ifup-aliases ifup-ppp network-functions-ipv6
  12. [root@linuxprobe network-scripts]#
  13. [root@linuxprobe network-scripts]# vim ifcfg-eno16777728
  14. TYPE=Ethernet
  15. BOOTPROTO=static
  16. NAME=eno16777728
  17. ONBOOT=yes
  18. IPADDR=192.168.10.10
  19. NETMASK=255.255.255.0
  20. GATEWAY=192.168.10.1
  21. DNS1=192.168.10.1

  第3步:重启网络服务并测试网络是否联通。

  1. [root@linuxprobe network-scripts]# systemctl restart network //重启网络服务
  2. [root@linuxprobe network-scripts]#
  3. [root@linuxprobe network-scripts]# ping 192.168.10.10
  4. PING 192.168.10.10 (192.168.10.10) () bytes of data.
  5. bytes from 192.168.10.10: icmp_seq= ttl= time=0.050 ms
  6. bytes from 192.168.10.10: icmp_seq= ttl= time=0.095 ms
  7. bytes from 192.168.10.10: icmp_seq= ttl= time=0.093 ms
  8. bytes from 192.168.10.10: icmp_seq= ttl= time=0.092 ms
  9. ^C
  10. --- 192.168.10.10 ping statistics ---
  11. packets transmitted, received, % packet loss, time 3004ms
  12. rtt min/avg/max/mdev = 0.050/0.082/0.095/0.020 ms

  知识补充:当你使用的是VMware Workstation安装的虚拟机,并按照上述方式完成网卡配置操作后,你可能无法ping通外网,如下所示:

  1. [root@linuxprobe ~]# ping www.baidu.com
  2. ping: unknown host www.baidu.com

  原因:IP地址配置不正确

  解决方法:我这里以虚拟机网卡设置为NAT模式举例,具体操作步骤如下:

  1、打开VMware Workstation软件的“虚拟网络编辑器”。

  2、首先点击“VMnet8”,然后点击“NAT 设置”。

  3、这里记住VMnet8网络的相关信息,包括子网IP、网关等,后面在配置虚拟机网卡时,需要保持一致。

  4、修改虚拟机的网卡配置文件。其中192.168.134.1为物理主机地址、192.168.134.2为网关地址,虚拟机地址可以在192.168.134.3~254之间任意设置,我这里设置为192.168.134.10。

  5、重启网络服务并测试外网的联通性。

  1. [root@linuxprobe network-scripts]# systemctl restart network
  2. [root@linuxprobe network-scripts]#
  3. [root@linuxprobe network-scripts]# ping www.baidu.com
  4. PING www.a.shifen.com (14.215.177.38) () bytes of data.
  5. bytes from 14.215.177.38: icmp_seq= ttl= time=20.7 ms
  6. bytes from 14.215.177.38: icmp_seq= ttl= time=22.0 ms
  7. bytes from 14.215.177.38: icmp_seq= ttl= time=20.9 ms
  8. ^C
  9. --- www.a.shifen.com ping statistics ---
  10. packets transmitted, received, % packet loss, time 2004ms
  11. rtt min/avg/max/mdev = 20.786/21.240/22.011/0.572 ms

四、配置Yum软件仓库


  Yum软件仓库的作用是为了进一步简化RPM管理软件的难度以及自动分析所需软件包及其依赖关系的技术。可以把Yum想象成是一个硕大的软件仓库,里面保存有几乎所有的常用工具,而且只需说出想要的软件包名称,系统自动就会帮你搞定一切。搭建并配置Yum软件仓库的大致步骤如下所示:

  第1步:切换至/etc/yum.repos.d/目录中,该目录存放Yum软件仓库的配置文件。

  1. [root@linuxprobe ~]# cd /etc/yum.repos.d/

  第2步:使用Vim编辑器新建一个名为rhel7.repo的配置文件,文件名称可以随意,但是后缀必须是.repo,逐项写入下面的配置参数并保存退出。

  [rhel7]        //Yum软件仓库的唯一标识符,避免与其他仓库冲突。

  name=rhel7      //Yum软件仓库的名称描述,方便识别仓库。

  baseurl=file:///media/cdrom        //设置Yum仓库的地址,提供方式包括:(ftp://....)、(http://....)、(file:///...)。

  enabled=1       //设置此源是否可用,1为可用,0为禁止。

  gpgcheck=1     //设置此源是否校验文件,1为校验,0为不校验。

  gpgkey=file:///media/cdrom/RPM-GPG-KRY-redhat-release       //若上面参数开启校验,那么请指定公钥文件地址。

  1. [root@linuxprobe yum.repos.d]# vim rhel7.repo
  2. [rhel7]
  3. name=rhel7
  4. baseurl=file:///media/cdrom
  5. enabled=
  6. gpgcheck=0 //这里不校验文件

  第3步:按照配置参数的路径挂载光盘,并把光盘挂载信息写入到/etc/fstab文件中。

  1. [root@linuxprobe yum.repos.d]# mkdir -p /media/cdrom //创建光盘挂载目录
  2. [root@linuxprobe yum.repos.d]#
  3. [root@linuxprobe yum.repos.d]# mount /dev/cdrom /media/cdrom //挂载光盘
  4. mount: /dev/sr0 is write-protected, mounting read-only
  5. [root@linuxprobe yum.repos.d]#
  6. [root@linuxprobe yum.repos.d]# vim /etc/fstab //将光盘挂载信息写入/etc/fstab文件
  7. /dev/mapper/rhel-root / xfs defaults
  8. UUID=ba40f004-d75d-400f-b0e0-c4d395261e14 /boot xfs defaults
  9. /dev/mapper/rhel-swap swap swap defaults
  10. /dev/cdrom /media/cdrom iso9660 defaults //光盘挂载信息

  第4步:此时切换至/media/cdrom目录,可以查看光盘信息。

  1. [root@linuxprobe yum.repos.d]# cd /media/cdrom/
  2. [root@linuxprobe cdrom]# ls
  3. addons EULA images LiveOS Packages repodata RPM-GPG-KEY-redhat-release
  4. EFI GPL isolinux media.repo release-notes RPM-GPG-KEY-redhat-beta TRANS.TBL
  5. [root@linuxprobe cdrom]#

  第5步:使用“yum install -y httpd”命令,检查Yum软件仓库是否可用。

  1. [root@linuxprobe ~]# yum install -y httpd
  2. Loaded plugins: langpacks, product-id, subscription-manager
  3. This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
  4. rhel7 | 4.1 kB ::
  5. (/): rhel7/group_gz | kB ::
  6. (/): rhel7/primary_db | 3.4 MB ::
  7. Resolving Dependencies
  8. --> Running transaction check
  9. ---> Package httpd.x86_64 :2.4.-.el7 will be installed
  10. --> Processing Dependency: httpd-tools = 2.4.-.el7 for package: httpd-2.4.-.el7.x86_64
  11. --> Processing Dependency: /etc/mime.types for package: httpd-2.4.-.el7.x86_64
  12. --> Processing Dependency: libapr-.so.()(64bit) for package: httpd-2.4.-.el7.x86_64
  13. --> Processing Dependency: libaprutil-.so.()(64bit) for package: httpd-2.4.-.el7.x86_64
  14. --> Running transaction check
  15. ---> Package apr.x86_64 :1.4.-.el7 will be installed
  16. ---> Package apr-util.x86_64 :1.5.-.el7 will be installed
  17. ---> Package httpd-tools.x86_64 :2.4.-.el7 will be installed
  18. ---> Package mailcap.noarch :2.1.-.el7 will be installed
  19. --> Finished Dependency Resolution
  20.  
  21. Dependencies Resolved
  22.  
  23. ======================================================================================================================================
  24. Package Arch Version Repository Size
  25. ======================================================================================================================================
  26. Installing:
  27. httpd x86_64 2.4.-.el7 rhel7 1.2 M
  28. Installing for dependencies:
  29. apr x86_64 1.4.-.el7 rhel7 k
  30. apr-util x86_64 1.5.-.el7 rhel7 k
  31. httpd-tools x86_64 2.4.-.el7 rhel7 k
  32. mailcap noarch 2.1.-.el7 rhel7 k
  33.  
  34. Transaction Summary
  35. ======================================================================================================================================
  36. Install Package (+ Dependent packages)
  37.  
  38. Total download size: 1.5 M
  39. Installed size: 4.3 M
  40. Downloading packages:
  41. --------------------------------------------------------------------------------------------------------------------------------------
  42. Total MB/s | 1.5 MB ::
  43. Running transaction check
  44. Running transaction test
  45. Transaction test succeeded
  46. Running transaction
  47. Installing : apr-1.4.-.el7.x86_64 /
  48. Installing : apr-util-1.5.-.el7.x86_64 /
  49. Installing : httpd-tools-2.4.-.el7.x86_64 /
  50. Installing : mailcap-2.1.-.el7.noarch /
  51. Installing : httpd-2.4.-.el7.x86_64 /
  52. rhel7/productid | 1.6 kB ::
  53. Verifying : mailcap-2.1.-.el7.noarch /
  54. Verifying : httpd-tools-2.4.-.el7.x86_64 /
  55. Verifying : apr-1.4.-.el7.x86_64 /
  56. Verifying : apr-util-1.5.-.el7.x86_64 /
  57. Verifying : httpd-2.4.-.el7.x86_64 /
  58.  
  59. Installed:
  60. httpd.x86_64 :2.4.-.el7
  61.  
  62. Dependency Installed:
  63. apr.x86_64 :1.4.-.el7 apr-util.x86_64 :1.5.-.el7 httpd-tools.x86_64 :2.4.-.el7 mailcap.noarch :2.1.-.el7
  64.  
  65. Complete!

Linux学习Day5:Vim编辑器、配置网卡、配置Yum软件仓库的更多相关文章

  1. Service系统服务(二):补充应用技巧、软连接与硬连接、man手册、zip备份、vim效率操作、自定义yum软件仓库、发布及测试yum仓库、编译安装软件包

    一.补充应用技巧 目标: 本例要求掌握在运维中比较常用的一些扩展命令技巧的使用,完成下列小技巧操作: 1> 采用数值形式将目录/root的权限调整为 rwx------   2> 将记录的 ...

  2. Windows & Linux 安装使用 Vim 编辑器 3分钟入门 - 精简归纳

    Windows & Linux 安装使用 Vim 编辑器 3分钟入门 - 精简归纳 JERRY_Z. ~ 2020 / 8 / 25 转载请注明出处! 目录 Windows & Lin ...

  3. 【转】Linux上vi(vim)编辑器使用教程

    Linux上vi(vim)编辑器使用教程 ------------------------------------------------------------ ikong ------------ ...

  4. Linux学习之Vim/Vi使用(十三)

    Linux学习之Vim/Vi使用 Vim/Vi简介 Vim/Vi工作模式 Vim/Vi基本使用 Vim/Vi应用技巧 Vim/Vi简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UN ...

  5. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  6. Yum 软件仓库配置

    Yum 软件仓库的作用是为了进一步简化 RPM 管理软件的难度以及自动分析 所需软件包及其依赖关系的技术. 可以把 Yum 想象成是一个硕大的软件仓库,里面保存有几乎所 有常用的工具 . 第1步:进入 ...

  7. Linux学习篇(二)-软件包管理器、Yum 软件仓库

    红帽软件包管理器 在红帽软件包管理器(rpm)公布之前,Linux 系统软件的安装只能采取"源码包"的方式安装,需要自行编译源码并解决许多依赖关系,所以软件的安装.升级.卸载的难度 ...

  8. 【Linux 操作系统】vim编辑器配置及常用命令

    最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...

  9. linux/linux学习笔记-vim文本编辑器(mooc)

    vim文本编辑器 vim与vi的区别:( vim=vi +IMproved) VIM是一个Unix以及类unix文本编辑器 特点:功能强大,高度可定制 vim编辑器的三种模式:一般模式.编辑模式和命令 ...

随机推荐

  1. Stream排序Map集合

    最近小编自己一个人在负责一个项目的后台开发,其中有一部分是统计相关的功能,所以需要一些排序或者分组的操作,之前这种操作小编觉得还是比较麻烦的,虽热有一些现成的工具类,但是工具类的写法也是比较复杂的,但 ...

  2. 创建dynamics CRM client-side (十二) - HTML Web Resource

    HTML Web Resource是我们经常使用的一个功能. 第一步, 我们先创建好一个HTML. 接下来,我们要在web resource中创建新的html web resource. 我们在tex ...

  3. .net core 常见设计模式-IChangeToken

    场景 一个对象A,希望它的某些状态在发生改变时通知到B(或C.D),常见的做法是在A中定义一个事件(或直接用委托),当状态改变时A去触发这个事件.而B直接订阅这个事件 这种设计有点问题B由于要订阅A的 ...

  4. Docker的save和export命令的区别

    我最近在玩Docker,一种应用程序容器和Linux的虚拟技术.它太酷了,创建Docker镜像和容器只需要几分钟.所有的工作都是开箱即用的. 在结束我一天的工作之前,我希望能保存下我的工作.但我在Do ...

  5. abp vnext2.0核心组件之领域实体组件源码解析

    接着abp vnext2.0核心组件之模块加载组件源码解析和abp vnext2.0核心组件之.Net Core默认DI组件切换到AutoFac源码解析集合.Net Core3.1,基本环境已经完备, ...

  6. 使用Qt自动注册Lav

    Qt播放视频使用QMediaPlayer要注册Lav解码器,如果手动去注册,每次去使用管理员运行命令或者生成.bat文件都比较麻烦. 解决方法步骤如下: 一:编写注册Lav解码器脚本,并取消控制台的显 ...

  7. python书籍推荐以及杂七杂八

    黄哥推荐学习Python 10本好书 Python3网络爬虫开发实战 github daily-reading 想对大家说的话 POJ 算法练习 http://openjudge.cn/ http:/ ...

  8. Codeforces_456_A

    http://codeforces.com/problemset/problem/456/A 按价格排序,比较质量. #include<cstdio> #include<algori ...

  9. 牛客练习赛34 D little w and Exchange(归纳)

    题意: 给n个数,和m 问这组数是否可以构成[1, m]中的每一个数 思路: 先将a数组排序. 先算算构成前几个数需要什么,至少需要a[1]=1 需要a[2] = 1,2 在a[2] = 1的情况下a ...

  10. BZOJ2038 小Z的袜子(莫队之源)

    题意+思路: 给你m个区间询问,问每个区间内的$\displaystyle \frac{\sum x^2-(R-L+1)}{(R-L)(R-L+1)} $,其中x为每种数字的个数,用cnt存储: 所以 ...