今天首先學習Vim編輯器的使用,通過它可以對Linux系統的文件進行編寫和修改。在Linux系統中一切都是文件,所以熟練掌握Vim編輯器的使用十分重要。最後通過配置主機網卡的實驗,來加深Vim編輯器中諸多命令、快捷鍵、模式切換方法的理解。 一、Vim文本編輯器 Vim編輯器設置了三種模式,每種模式分 ...
今天首先學習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。
[root@linuxprobe ~]# vim practice.txt
[root@linuxprobe ~]#
第2步:打開practice.txt文件後,就預設進入了命令模式,此時只能執行命令模式的命令。
第3步:在命令模式按下a、i、o健切換至輸入模式。進入輸入模式後,就可以隨意輸入文本內容。
第4步:在編寫完了之後,想要保存並退出,必須先按下Esc健切換至命令模式,然後再按下:健切換至末行模式,最後輸入wq!完成保存退出的操作。
第5步:已成功完成一個文檔的編寫,使用cat命令查看文件的內容。
[root@linuxprobe ~]# cat practice.txt
Now,you can write it.
三、配置網卡信息
網卡IP地址配置的正確是兩台伺服器相互通信的前提。在Linux系統中一切都是文件,因此配置網路服務的工作其實就是在編輯網卡的配置文件。在RHEL7系統中,網卡的配置文件的名稱由首碼ifcfg加上網卡名稱組成,比如ifcfg-eno16777728。現在對一個名稱為eno16777728的網卡設備進行相關配置,具體步驟如下所示:
第1步:首先切換至/etc/sysconfig/network-scripts目錄中,該目錄存放網卡的配置文件。
[root@linuxprobe ~]# cd /etc/sysconfig/network-scripts/
[root@linuxprobe network-scripts]#
[root@linuxprobe network-scripts]# ls
ifcfg-eno16777728 ifdown-ippp ifdown-routes ifup ifup-ipv6 ifup-ppp ifup-tunnel
ifcfg-lo ifdown-ipv6 ifdown-sit ifup-aliases ifup-isdn ifup-routes ifup-wireless
ifdown ifdown-isdn ifdown-Team ifup-bnep ifup-plip ifup-sit init.ipv6-global
ifdown-bnep ifdown-post ifdown-TeamPort ifup-eth ifup-plusb ifup-Team network-functions
ifdown-eth ifdown-ppp ifdown-tunnel ifup-ippp ifup-post ifup-TeamPort network-functions-ipv6
[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地址
[root@linuxprobe network-scripts]# cp ifcfg-eno16777728 ifcfg-eno16777728.cpoy //在編輯網卡配置文件之前,先做好原文件備份,養成好習慣
[root@linuxprobe network-scripts]# ls
ifcfg-eno16777728 ifdown-post ifup-bnep ifup-routes
ifcfg-eno16777728.cpoy ifdown-ppp ifup-eth ifup-sit
ifcfg-lo ifdown-routes ifup-ippp ifup-Team
ifdown ifdown-sit ifup-ipv6 ifup-TeamPort
ifdown-bnep ifdown-Team ifup-isdn ifup-tunnel
ifdown-eth ifdown-TeamPort ifup-plip ifup-wireless
ifdown-ippp ifdown-tunnel ifup-plusb init.ipv6-global
ifdown-ipv6 ifup ifup-post network-functions
ifdown-isdn ifup-aliases ifup-ppp network-functions-ipv6
[root@linuxprobe network-scripts]#
[root@linuxprobe network-scripts]# vim ifcfg-eno16777728
TYPE=Ethernet
BOOTPROTO=static
NAME=eno16777728
ONBOOT=yes
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=192.168.10.1
第3步:重啟網路服務並測試網路是否聯通。
[root@linuxprobe network-scripts]# systemctl restart network //重啟網路服務
[root@linuxprobe network-scripts]#
[root@linuxprobe network-scripts]# ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.050 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.095 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.093 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.092 ms
^C
--- 192.168.10.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.050/0.082/0.095/0.020 ms
知識補充:當你使用的是VMware Workstation安裝的虛擬機,並按照上述方式完成網卡配置操作後,你可能無法ping通外網,如下所示:
[root@linuxprobe ~]# ping www.baidu.com
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、重啟網路服務並測試外網的聯通性。
[root@linuxprobe network-scripts]# systemctl restart network
[root@linuxprobe network-scripts]#
[root@linuxprobe network-scripts]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38: icmp_seq=1 ttl=128 time=20.7 ms
64 bytes from 14.215.177.38: icmp_seq=2 ttl=128 time=22.0 ms
64 bytes from 14.215.177.38: icmp_seq=3 ttl=128 time=20.9 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
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軟體倉庫的配置文件。
[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 //若上面參數開啟校驗,那麼請指定公鑰文件地址。
[root@linuxprobe yum.repos.d]# vim rhel7.repo
[rhel7]
name=rhel7
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0 //這裡不校驗文件
第3步:按照配置參數的路徑掛載光碟,並把光碟掛載信息寫入到/etc/fstab文件中。
[root@linuxprobe yum.repos.d]# mkdir -p /media/cdrom //創建光碟掛載目錄
[root@linuxprobe yum.repos.d]#
[root@linuxprobe yum.repos.d]# mount /dev/cdrom /media/cdrom //掛載光碟
mount: /dev/sr0 is write-protected, mounting read-only
[root@linuxprobe yum.repos.d]#
[root@linuxprobe yum.repos.d]# vim /etc/fstab //將光碟掛載信息寫入/etc/fstab文件
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=ba40f004-d75d-400f-b0e0-c4d395261e14 /boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0 //光碟掛載信息
第4步:此時切換至/media/cdrom目錄,可以查看光碟信息。
[root@linuxprobe yum.repos.d]# cd /media/cdrom/
[root@linuxprobe cdrom]# ls
addons EULA images LiveOS Packages repodata RPM-GPG-KEY-redhat-release
EFI GPL isolinux media.repo release-notes RPM-GPG-KEY-redhat-beta TRANS.TBL
[root@linuxprobe cdrom]#
第5步:使用“yum install -y httpd”命令,檢查Yum軟體倉庫是否可用。
[root@linuxprobe ~]# yum install -y httpd
Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel7 | 4.1 kB 00:00:00
(1/2): rhel7/group_gz | 134 kB 00:00:00
(2/2): rhel7/primary_db | 3.4 MB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-17.el7 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-17.el7 for package: httpd-2.4.6-17.el7.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-17.el7.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-17.el7.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-17.el7.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-17.el7 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================
Installing:
httpd x86_64 2.4.6-17.el7 rhel7 1.2 M
Installing for dependencies:
apr x86_64 1.4.8-3.el7 rhel7 103 k
apr-util x86_64 1.5.2-6.el7 rhel7 92 k
httpd-tools x86_64 2.4.6-17.el7 rhel7 77 k
mailcap noarch 2.1.41-2.el7 rhel7 31 k
Transaction Summary
======================================================================================================================================
Install 1 Package (+4 Dependent packages)
Total download size: 1.5 M
Installed size: 4.3 M
Downloading packages:
--------------------------------------------------------------------------------------------------------------------------------------
Total 45 MB/s | 1.5 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : apr-1.4.8-3.el7.x86_64 1/5
Installing : apr-util-1.5.2-6.el7.x86_64 2/5
Installing : httpd-tools-2.4.6-17.el7.x86_64 3/5
Installing : mailcap-2.1.41-2.el7.noarch 4/5
Installing : httpd-2.4.6-17.el7.x86_64 5/5
rhel7/productid | 1.6 kB 00:00:00
Verifying : mailcap-2.1.41-2.el7.noarch 1/5
Verifying : httpd-tools-2.4.6-17.el7.x86_64 2/5
Verifying : apr-1.4.8-3.el7.x86_64 3/5
Verifying : apr-util-1.5.2-6.el7.x86_64 4/5
Verifying : httpd-2.4.6-17.el7.x86_64 5/5
Installed:
httpd.x86_64 0:2.4.6-17.el7
Dependency Installed:
apr.x86_64 0:1.4.8-3.el7 apr-util.x86_64 0:1.5.2-6.el7 httpd-tools.x86_64 0:2.4.6-17.el7 mailcap.noarch 0:2.1.41-2.el7
Complete!