🌔1.NAT网络原理图

在主机中的Linux虚拟机与VM虚拟机之间的网络是互通的,不过Linux的虚拟机IP可能会发生变换【无论如何变化都与VM虚拟机处于一个局域网下】
VM虚拟机依靠电脑主机的无线网卡为代理,进而访问外部的网络
🌔2.有关网络的基本命令
(1)查看网络配置信息
在Linux操作系统中,通过ifconfig命令来查看
在Windows操作系统中,通过ipconfig命令来查看
(2)检测网络连通性
通过ping 目的主机来检测当前服务器与目的主机之间的连通性
🌔3.Linux网络环境配置
(1)修改/etc/sysconfig/newwork-scripts/ifcfg-ens33配置文件【利用vim编辑器】
(2)修改内容如下:
将IP配置方法修改为静态分配IP:找到
BOOTPROTO将其值修改为static添加或修改指定的IP地址:
IPADDR=192.168.132.139添加或修改指定的网关:
GATEWAY=192.168.132.2添加或修改域名解析器:
DNS1=192.168.132.2
修改完Linux的服务器后,要去修改VM的IP来保证服务器与VM的连通性
找到虚拟网络编辑器,修改子网IP为新网关IP
再修改NAT配置信息,修改网关IP为新网关IP
(3)配置成功后,可以通过service network restart指令重启网络服务 或 通过reboot指令重启系统生效
(4)利用Dos和Linux虚拟机互相Ping可以检测连通性,利用ipconfig和ifconfig分别检查VM和Linux虚拟机的IP是否正确
🌔4.设置主机名和host映射
(1)通过hostname指令可以查看主机名
(2)通过vim /etc/hostname指令可以修改主机名
(3)那么如何建立主机名与IP地址之间的映射呢?【修改配置文件】
如果要在Windows主机中建立映射,那么就修改Windows的C:\Windows\System32\drivers\etc\hosts文件,添加一行文本信息IP地址 主机名
如果要在Linux虚拟机中建立映射,那么就修改Linux的\etc\hosts文件,添加一行文本信息IP地址 主机名
🌔5.主机名解析过程分析

(1)先检查本地解析器缓存中是否有域名与IP映射的缓存,如果有则返回,没有则进行下一步寻找
(2)再检查系统中hosts文件中是否有域名与IP映射的配置,如果有则返回,没有则进行下一步寻找
(3)最后到DNS解析器中寻找,找到则返回,没有则给出提示信息。
🌔1.那么如何查看进程信息呢?
(1)可以通过ps指令查看当前系统中正在运行的进程

四个参数分别代表:进程号、终端机号、消耗CPU的时间、启动进程所需要的命令及参数
(2)该指令有三个可以选择的选项:
通过-a选项可以显示当前终端中的所有进程信息
通过-u选项可以以用户的格式显示进程信息
通过-x选项可以显示后台进程运行的参数

(3)后台进程的这些参数分别代表什么?

| 符号 | 含义 |
|---|---|
| USER | 进程执行用户 |
| PID | 进程号 |
| %CPU | CPU占用率 |
| %MEH | 物理内存占用率 |
| VSZ | 占用虚拟内存大小 |
| RSS | 占用物理内存大小 |
| TTY | 终端名称(缩写) |
| STAT | 进程状态(SNRDZT) |
| START | 进程启动时间 |
| TIME | 进程使用CPU总时间 |
| COMMAND | 启动进程所用的命令和参数 |
进程状态有分为一下几种情况: S 代表睡眠,N代表进程比普通优先级更低,R代表正在运行,D代表短期等待,Z代表僵死进程,T代表被跟踪或停止,s表示该进程是会话的先导进程
(4)通过-ef选项可以以长格式显示当前所有进程,进而可以查看进程的父进程PPID【e全部、f长格式】

🌔 2.如何终止进程呢?
通过kill 进程号指令可以杀死指定进程,也可以通过killall 进程名指令杀死指定进程。
不过后者会同时杀死由该进程创建的全部子进程。
当系统认为要杀死的进程处于保护状态时,则命令会执行失败并不会有任何的提示消息。我们可以通过选项-9来强制杀死进程。
🌔 3.有没有什么更直观的方式显示父子进程呢?
通过pstree指令可以将所有进程信息以树状的形式显示出来。
通过选项-p可以在进程后面附属上进程号信息
通过选项-u可以在进程后面附属上所属用户信息

🌔4.服务管理

(1)service 管理指令
通过service 服务名 参数指令来修改指定服务的状态【参数有四个:start | stop | restart | reload | status】
在centOS之后,service指令基本被systemctl替代,剩余管理的服务可以在/etc/init.d中查看

(2)服务的运行级别

开机的流程:开机、BIOS、/boot、systemd进程、运行级别、运行级别对应服务
通过systemctl get-default指令可以获取当前默认的运行级别;
通过systemctl set-default指令可以设置当前默认的运行级别。【multi-user.target 3级、graphical.target 5级】
通过chkconfig指令可以给服务的各个运行级别设置自启动/关闭 【也是/etc/init.d 中的】
查看服务
chkconfig 服务名 --list修改服务指定运行级别的自启动
chkconfig --level n 服务名 on/off
(3)systemctl 管理命令
通过systemctl 参数 服务名指令可以修改服务的状态【参数为 start | stop | restart | status】
该指令管理的服务在/usr/lib/systemd/system中【部分截图】

(4)通过systemctl指令也可以设置服务的自启动状态【开机自启动】
| 指令 | 作用 |
|---|---|
systenctl list-unit-files | grep 服务名 | 查看指定服务的开机自启动状态 |
systemctl enable 服务名 | 为指定服务设置开机自启动 |
systemctl disable 服务名 | 为指定服务关闭开机自启动 |
systemctl is-enabled 服务名 | 查询指定服务是否为开机自启动 |
防火墙的基本原理

(5)通过firewall指令可以打开、关闭端口
| 指令 | 作用 |
|---|---|
firewall-cmd--permanent--add-port=端口号/协议 | 打开端口 |
| firewall-cmd–permanent–remove-port=端口号/协议 | 关闭端口 |
·firewall-cmd--reload | 重新载入(使修改生效) |
firewall-cmd-query-port=端口/协议 | 查询端口是否开放 |
🌔5.那么是否可以动态的显示进程信息呢?
(1)通过top指令可以动态的显示进程信息
(2)该指令有三个选项:
-d 秒数指令秒数动态刷新,默认是三秒一刷新
-i使top不显示僵死进程和闲置进程
-p通过指定进程ID来监控某个进程的状态
(3)参数解释

| 参数 | 含义 |
|---|---|
| top | 当前系统时间 |
| up | 开机时间 |
| users | 系统中用户个数 |
| load average | CPU负载情况(三者的平均不大于0.7就正常) |
| Tasks | 当前系统中任务数 |
| running | 正在运行的任务 |
| sleeping | 闲置的任务 |
| stopped | 终止的任务 |
| zombie | 僵死的任务(任务已经终止,但是还没有释放资源) |
| %CPU | CPU使用率 |
| KiB Mem | memory内存使用情况 |
| KiB Swap | swap内存使用情况 |
(3)该指令同时也提供一些交互操作【当使用该指令进入到进程显示页面之后】
| 操作 | 功能 |
|---|---|
| P | 以CPU使用率排序【默认情况】 |
| M | 以内存使用率排序 |
| N | 以进程号大小排序 |
| q | 退出top |
以上都是降序排序
(4)该指令同时为我们提供一些组合交互操作
u 用户名k 进程号 9🌔 6.也可以对网络信息进行监控
可以通过netstat指令查看网络信息,不过为了更直观的监视系统网络情况,我们都配合选项使用。

通过-an选项 可以按照一定顺序显示,通过-p选项 可以显示是哪个进程再调用

Proto 代表网络协议、Recv-Q 代表接受的、Send-Q 代表发送的、LocalAddress 代表本地地址、ForeignAddress 代表外部地址、State 代表状态、PI 代表进程号
以windows中的shell软件来访问虚拟机为例【IP后的为端口号,在同一时间不会出现相同的端口号】

🌔 1.什么是RPM?
用于互联网下载包的打包及安装工具。
🌔 2.通过rpm -qa可以查看已经安装的rpm列表,如果想查看是否安装了某软件,可以通过管道结合grep指令筛选查看

firefox就是rpm包名、60.2.2.1就是它的版本号、el7.centos.x86_64就是它的操作系统【可以看出是64位的操作系统,如果为i686、i386代表32位的,如果noarch表示通用】
🌔 3.rpm提供了一些选项
| 选项 | 作用 |
|---|---|
| -qa | 查询安装的所有rpm软件包 |
| -q | 查看指定软件包是否安装 |
| -qi | 查看指定软件包的信息 |
| -ql | 查看指定软件包中的文件 |
| -qf | 查询指定文件属于哪个软件包 |




🌔 4.那么我们如何卸载rpm包呢?
可以通过rpm -e 包名指令卸载指定的包,如果有提示信息不能直接删除,可以添加参数--nodeps就可以强制删除【有提示信息一般为其他包与这个包有依赖关系,提示你删除当前包可能导致另一个软件无法正常使用】
🌔 5.那么我们如何安装rpm包呢?
通过rpm -ivh RPM包的完整路径指令就可以安装指定的RPM包。
i 代表 install安装、v 代表 verbose提示、h 代表 hash显示进度条
🌔 6.那么我们如何去寻找RPM包呢?

在桌面点开光盘,进入到Packages目录,点击上方搜索,输入要搜索的RPM包即可。【可以将需要的RPM包移动到opt目录,然后通过指令安装即可】
🌔 7.那么什么是YUM呢?
一个基于RPM软件包管理的前端软件包管理器,能够从指定服务器自动下载RPM包并安装,可以自动处理依赖关系,一次性下载所有依赖包【如果涉及使用其他的包,就会将其他包同时下载下来】
🌔 8.通过yum list | grep xxx查询服务器中是否有自己指定的RPM包,通过yum install xxx指令可以从服务器下载并安装指定的RPM包
如果查询出来有多个版本的话,利用yum下载安装会自动选择适配的版本。

🐟 1.通常被保存在/var/log目录下

🐟 2.重要日志文件说明

🐟 3.CentOS7.6的日志服务是rsyslogd,6.x版本采用的是syslogd【两者的服务是兼容的】
Linux操作系统就是,才能通过该服务来完成日志的存储的【原理图如下】

🐟 4.要确保rsyslogd服务是启动状态,才能自动存储相关的日志文件。
通过 ps -aux | grep rsyslogd指令可以查看该服务的进程【下面那条是我们查询该进程的进程,可以通过-v反选过滤掉】

通过systemctl list-unit-files | grep "rsyslog"指令可以查看该服务是否为自启动

也可以通过systemctl is-enabled rsyslog指令查看是否为自启动

🐟 5.那么rsyslogd如何将文件与日志对应起来呢?【/etc/rsyslog.conf配置文件】

🐟 6.日志文件记录的信息都代表什么含义呢?
日志信息分为四列:事件的时间、产生事件的主机名、产生事件的服务或程序名、事件的描述

🐟 7.那么可以自定义日志服务吗?
我们可以修改/etc/rsyslog.conf文件,添加指定的日志类型筛选并存储到指定的目录下【参照5中的格式】
🐟 8.如果随着日志存储量不断的扩大,最后是否会影响虚拟机的性能呢?
答案是不会的,centOS提供logrotate服务来实现日志轮替功能。
日志轮替就是将旧日志移动并改名,同时建立新的空日志文件,当旧日志文件超出一定范围后,就会将早期的日志文件删除
通过/etc/logrotate.conf配置文件的dateext参数可以实现自动改名,日志会采用日期作为日志文件的后缀
(1)/etc/logrotate配置文件的内容

在/etc/longtote.conf文件中,参数的含义为:
**weekly **代表每周对文件更新一次、rotate 4 代表存储四份日志文件,超过就会删除旧的、create 代表创建新的空日志文件在日志轮替后、dateext 代表使用日期作为日志文件的后缀、**compress **代表转储的同时会进行压缩、**include /etc/logrotate.d **代表同时会将子目录的配置文件读取进来。
下面带大括号的就是针对某个日志文件设置的日志轮替规则。如果我们自定义的日志轮替规则,要写道/etc/logtate.d中。
(2)logtate 配置文件的参数说明

(3)那么日志轮替是怎么实现的呢?
是通过定时机制实现的,在/etc/cron.adily/目录下通过logtate文件来定时执行日志轮替的

(4)如何查看内存日志呢?【日志是先存储都内存中,后存储到磁盘中】
通过journalctl指令可以查看当前全部的内存日志,也可以结合选项来使用
| 选项 | 作用 |
|---|---|
| -n num | 查看最新的num条 |
| –since time1 --util time2 | 查看起始时间都结束时间的日志 |
| -p err | 查看报错日志 |
| -o verbase | 查看日志的详细内容 |
| _PID=number _COMM=service | 查看进程号为number,描述包含service的日志 |
(1)Linux启动过程

(2)Linux最早版本的内核的main函数

(3)0.0.1内核的模块介绍

| 模块 | 作用 |
|---|---|
| boot | 和系统引导相关的代码 |
| fs | 存放Linux支持的文件系统 |
| include | 存放Linux核心需要的头文件 |
| kernel | 存放和系统内核相关的源码 |
| lib | 存放库代码 |
| mm | 和内存管理相关的代码 |
(4)Linux内核升级【只能升级到兼容的最新版本】
通过username -a可以查看当前内核的版本
通过yum info kernel -q检测内核版本,显示可以升级的内核
通过yum update kernel可以升级内核
通过yum list kernel -q可以查看已经安装了那些内核
这个更新内核并不是将原来的内核删掉换上新内核,而是在启动Linux系统的时候可以进行选择,原来所有文件共享。
🐟 1.在Linux中如何实现数据的备份与恢复呢?
(1)通过 tar 指令将分区、目录或文件打包,当需要数据恢复的时候再重新解包【这种方法比较耗费空间而且不方便】
(2)为Linux安装两个软件包,借助dump和restore来完成备份和恢复
通过yum -y install dump指令就可以将这两个依赖包同时下载并安装【-y选项的作用是对下载并安装的过程中的所有提问都回答yes】
🐟 2.通过dump 选项 待备份部分指令就可以完成备份,支持分卷备份和增量备份【前者为完整备份,后者为基于上次备份的差异进行备份】
(1)语法格式如下:

(2)案例分析:
dump -0uf /opt/boot.bak0.bz2 /opt
touch /opt/newfile.txt
dump -1uf /opt/boot.bak1.bz2 /opt

(3)每次备份的记录都存储到/etc/dumpdates中,可以查看备份的时间
cat /etc/dumpdates

如果只是想查看最后一次的备份信息,可以通过dump -W指令来实现

🐟 3.通过restore 模式选项 选项指令可以根据备份恢复数据,如果是增量备份那么就要按顺序依次恢复所有的增量备份
(1)模式选项【主要为四个模式】
通过-C模式选项可以对比出备份文件与当前系统情况有哪些差别
通过-i模式选项在还原备份文件时会询问用户要不要进行那些操作
通过-r模式选项就是直接还原指定的备份文件
通过-t模式选项可以查看备份文件中有哪些内容
(2)选项说明【这个选项是必选】
通过-f 待备份选项指明了要备份的是什么