linux从0到1 基础完整知识
1. Linux系统概述
Linux是一种开源操作系统,与Windows或macOS等操作系统不同,Linux允许用户自由地查看、修改和分发其源代码。以下是Linux系统的一些显著的优势。
- 稳定性和可靠性:
- 内核以其稳定性而闻名,能够持续运行数月甚至数年而不需要重新启动。这对于服务器来说至关重要,因为它们需要保持长时间的稳定运行,以提供持续的服务。
- 安全性:
- 系统的安全性得到了广泛认可。开源的自然属性使得漏洞可以很快被发现和修复,从而降低了受到安全威胁的风险。
- 资源利用效率:
- 在资源管理方面表现出色,可以高效地利用服务器硬件资源,使得服务器能够同时处理大量的请求。
- 开源和免费.
- 是开源的,因此不需要为操作系统本身付费。这使得它在经济上具有明显的优势,特别是对于企业或组织需要部署大量服务器的情况。
由于上述的这些优势,Linux系统成为了许多企业和组织首选的服务器操作系统。
文档在我上传资源上: https://download.csdn.net/download/qq_60870118/89739508
2. 安装Linux虚拟机
2.1 安装VMware
常见的虚拟机软件有VMware、Virtual Box等,本课程使用VMware。
- 双击VMware-workstation-full-17.0.0-20800274.exe安装包,启动安装向导,并点击下一步。
- 查看用户许可协议,勾选接收并点击下一步。
- 选择安装路径,并点击下一步
- 用户体验设置,建议取消勾选,并点击下一步
- 创建快捷方式,建议勾选,并点击下一步
- 点击安装,开始进行安装。
- 等待完成安装
- 点击完成,结束向导
- 启动VMware,可填入许可秘钥进行激活,或者选择30天试用。
2.2 安装虚拟机
- 点击创建新的虚拟机, 启动向导
- 选择典型向导,并点击下一步
- 选择稍后安装操作系统,并点击下一步
- 选择操作系统类型,分别选择Linux和Centos 7 64 位,并点击下一步
- 为虚拟机命令并选择安装目录,完成后点击下一步
- 设置磁盘大小,建议40G,完成后点击下一步
- 点击自定义硬件
- 自定义虚拟机内存大小,推荐4G
- 自定义虚拟机处理器,推荐1个处理器2个核心
- 自定义网络模式,暂时选择桥接模式
2.3 安装Centos7系统
Linux系统拥有众多的发行版,其中Centos是最常用于服务器的发行版之一,除此之外,还有Ubuntu、Debian等等。
Linux发行版是指在相同的Linux内核的基础上,增加不同的系统工具和应用程序等,从而构成的一个完整的操作系统。
- 下载Centos系统镜像
- 镜像的下载地址为:
- 官网:Download
- 国内镜像:centos-7-isos-x86_64安装包下载_开源镜像站-阿里云
- 安装系统镜像,选择CD/DVD模式
- 选择ISO镜像,并指定CentOS-7-x86_64-DVD-2009.iso镜像所在路径,完成后点击确定
- 开启虚拟机,开始安装系统
- 鼠标点击虚拟机屏幕,进入虚拟机(如需返回主机系统,同时按住Ctrl和Alt键),使用上下前切换安装选项,选中第一项Install Centos 7(白色为选中),然后点击回车键。
- 等待启动安装向导
- 向导启动成功后,界面如下图所示
- 选择系统语言,推荐中文,完成后点击继续
- 选择系统时区,要求选择亚洲/上海。
- 选择预置软件,推荐选择Gnome
- 选择系统安装位置,推荐使用自动配置分区
- 关闭KDUMP,已节省资源
- 上述内容设置完毕后,点击开始安装
- 设置root用户密码
- 创建普通用户
- 等待系统安装完成
- 安装完成后,重启系统
- 重启后,同意许可协议
- 连接网络
-
- 检查主机是否联网,因为桥接模式下,虚拟机直接连接到主机所连接的网络。
- 配置虚拟网络编辑器
- 打开虚拟网络编辑器
-
-
- 点击更改设置
-
-
-
- 修改桥接模式网络配置,将虚拟机桥接到主机联网所使用的网卡。
-
- 完成后,点击完成配置
2.4 VMware使用技巧
2.4.1 系统快照
所谓系统快照,就是将操作系统的当前状态保存下来,若将来系统出现不可修复的故障,便可使用快照恢复操作系统。下面演示VMware提供的快照功能。
- 拍摄快照
- 误操作
- 恢复快照
- 转到,即可将系统恢复到指定的状态。
- 删除快照
2.4.2 克隆虚拟机
顾名思义,克隆虚拟机就是将现有的虚拟机复制一份,得到一台和原有虚拟机配置完全相同的虚拟机,从而省去重复安装系统的繁琐工作。克隆虚拟机的具体操作如下
- 将需要克隆的虚拟机关机
- 选中要克隆的虚拟机,并打开克隆向导
- 选择克隆状态,可选最新状态或者快照中的历史状态
- 选择克隆方式,推荐选择完整克隆
- 填写新虚拟机的名称和安装目录,最后点击完成
2.4.3 删除虚拟机
废弃不用的虚拟机可通过如下方式删除
3. Linux文件系统目录结构
理解和熟悉Linux系统的文件系统目录结构,对于有效的管理和定位文件十分重要。Linux文件系统的目录结构如下图所示:
其中各目录的作用如下表所示
目录 | 说明 | 作用 |
/ | 根目录 | 根目录是整个文件系统的起点,所有其他目录和文件都位于根目录之下。 |
/home | 家目录 | 每个用户的个人目录都位于这个目录下,通常以用户名命名。例如,用户john的主目录路径为/home/john。 |
/root | root用户的家目录 | 保存root用户的个人数据 |
/boot | 引导文件所在目录 | 保存系统启动时所需的各种文件 |
/usr | User System Resources的简写,说法不唯一 | 存放用户可用的软件和程序文件,也包括了一些共享的数据和库文件。 |
/bin | binary的简写 | 存放系统的基本命令(如ls、cp等)和其余可执行文件。 |
/sbin | system binary的简写 | 存放系统管理和维护方面的二进制文件。 |
/etc | etcetera的简写 | 存放系统的配置文件,包括各种程序的配置文件和系统的全局配置文件。 |
/var | variable的简写 | 存放系统运行时产生的可变数据,如日志文件、数据库文件等。 |
/opt | optional的简写 | 存放一些可选的软件包,通常由用户自行安装。 |
/tmp | temporary的简写 | 存放临时文件,系统会定期清理该目录 |
4. Linux交互界面
服务器中Linux系统,通常不会安装图形用户界面(GUI,Graphical User Interface),因此我们与操作系统的交互主要靠命令行界面(CLI,Command Line Interface),如下图所示
在命令行界面,用户通过输入一些列命令来和操作系统进行交互,例如通过mkdir /test来创建/test目录。这些命令通常由shell解释并执行。
5. Linux常用命令
5.1 文件和目录相关
-
pwd(print working directory)
-
作用
打印当前目录的绝对路径
-
基本语法
pwd
-
-
案例实操
显示当前工作目录的绝对路径
[root@localhost ~]# pwd /root
-
ls(list)
-
作用
列出目录内容
-
基本语法
ls [选项] [目录或是文件]
-
- 选项说明
选项 | 功能 |
-a | 全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来 |
-l | 使用较长(详细)的格式列出信息,包含文件的属性与权限等等数据 |
- 实操案例
-
[atguigu@localhost ~]$ ls -al 总用量 44 drwx------. 5 atguigu atguigu 4096 5月 27 15:15 . drwxr-xr-x. 3 root root 4096 5月 27 14:03 .. drwxrwxrwx. 2 root root 4096 5月 27 14:14 hello -rwxrw-r--. 1 atguigu atguigu 34 5月 27 14:20 test.txt
-
* **显示说明**
每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小 最近修改时间 文件名
3. **cd(change directory)**- **作用**
切换路径
* **基本语法**
`cd [参数]`
- 参数说明
参数 | 功能 |
cd 绝对路径 | 切换路径 |
cd 相对路径 | 切换路径 |
cd ~或者cd | 回到自己的家目录 |
cd - | 回到上一次所在目录 |
cd .. | 回到当前目录的上一级目录 |
-
**mkdir(Make Directory) **
- **作用**
创建目录
* **基本语法**
`mkdir [选项] 要创建的目录`
- 选项说明
选项 | 功能 |
-p | 创建多层目录 |
- 实操案例
- 创建一个目录
- ~]# mkdir hello
~]# mkdir hello/world- 创建一个多级目录
- ~]# mkdir -p big/world
-
**cp(copy)**
- **作用**
复制文件或目录
* **基本语法**
`cp [选项] source dest`
- 选项说明
选项 | 功能 |
-r | 递归复制整个文件夹 |
- 参数说明
参数 | 功能 |
source | 源文件 |
dest | 目标文件 |
- 实操案例
- 复制文件
- ~]# cp ./initial-setup-ks.cfg ./hello
- 递归复制整个文件夹
- ~]# cp -r ./big ./hello
-
**rm(remove)**
- **作用**
移除文件或者目录
* **基本语法**
`rm [选项] deleteFile`
- 选项说明
选项 | 功能 |
-r | 递归删除目录所有内容 |
-f | 强制删除,不提示用户进行确认 |
- 实操案例
- 递归删除目录中所有内容
- ~]# rm -rf ./big
- mv(move)
- 作用
-
- 基本语法
- 移动文件
- 基本语法
-
-
- 源文件 目标目录
-
-
-
- 重命名
-
-
-
- 源文件 目标文件
- 案例实操
- 移动文件
-
-
-
- ~]# cd hello/
hello]# mv initial-setup-ks.cfg world/
- ~]# cd hello/
-
-
-
- 移动文件并重命名
-
-
-
- world]# mv initial-setup-ks.cfg ../hello.cfg
-
-
-
- 重命名
-
-
-
- hello]# mv hello.cfg initial-setup-ks.cfg
-
- cat
- 作用
-
- 基本语法
-
- [选项] 文件
- 选项说明
选项 | 功能描述 |
- n | 显示所有行的行号,包括空行 |
- 实操案例
- ~]$ cat -n hello.cfg
- tail
- 作用
-
- 基本语法
- tail 文件(功能描述:查看文件后10行内容)
- tail -n 5 文件(功能描述:查看文件后5行内容,5可以是任意行数)
- tail -f 文件(功能描述:实时追踪该文档的所有更新)
- 基本语法
- 选项说明
选项 | 功能 |
-n<行数> | 输出文件尾部n行内容 |
-f | 显示文件最新追加的内容,监视文件变化 |
- 实操案例
- 查看文件最后50行内容
- ~]# tail -n 50 helle.cfg
- 实时追踪该档的所有更新
- ~]# tail -f hello.cfg
5.2 文本编辑相关
在命令行界面下,最常用的文本编辑器就是Vi/Vim。其中Vi 是 Linux操作系统中最通用的文本编辑器。 Vim编辑器是Vi的增强版,相较于Vi,提供了代码高亮等功能。两者用法完全兼容。下面介绍Vim的用法。
- 基础语法
- 文件
- Vim模式介绍
- 文编辑器有不同的工作模式,在不同模式下,可执行不同的操作,主要模式有
- 普通模式(Normal Mode):用于删除、复制、粘贴等基本操作。
- 编辑模式(Insert Mode):用于编辑文本。
- 命令行模式(Command Mode):用于执行命令,如保存、退出等。
下面分别介绍各模式下的用法
- 编辑模式
- 一般模式
- 可以使用上下左右按键来移动光标,也开通过一些简单的操作来复制粘贴以及删除文本,具体操作如下
- 光标操作
快捷键 | 操作 |
shift+6(^) | 移动到行头 |
shift+4($) | 移动到行尾 |
shift+g | 移动到页尾 |
gg | 移动到页头 |
-
- 复制粘贴操作
快捷键 | 操作 |
yy | 复制光标当前行 |
yw | 复制光标当前词 |
p | 粘贴 |
-
- 删除操作
快捷键 | 操作 |
dd | 删除光标当前行 |
d n d | 删除当前光标所处行及其以下共n行 |
x | 删除当前光标处的一个字符 |
- 命令模式
命令 | 操作 |
:w | 保存 |
:q | 退出 |
:! | 强制执行 |
:set nu | 显示行号 |
:set nonu | 取消行号 |
/文本 | 搜索文本,输入n:光标指向下一个,输入N:贯标指向上一个 |
:nohl | 搜索文本后,匹配内容会高亮显示,该命令可取消高亮 |
:s/old/new/g | 在全局范围内使用new替换old内容 |
5.3 文件权限相关
5.3.1 文件权限概述
Linux中的所有文件均有严格的访问权限控制,只有当用户拥有某个文件的相关权限时,才可对文件执行相关操作。
权限系统相关概念
- 用户和用户组
- Linux系统中注册的个体称为一个用户,例如root和atguigu,除此之外还能使用useradd <用户名>命令创建新的用户。每个用户都可以属于一个或多个用户组,可以使用groups <用户名>命令查看用户所属的组,使用usermod -g <新组名> <用户名>修改用户所属组。
- 文件权限
- Linux中,文件和目录的权限主要分为三个部分:读(read)、写(write)和执行(execute)。
- 读权限,表示可以读取文件的内容或者查看目录的内容。
- 写权限,表示可以修改文件内容或者在目录中创建、删除文件。
- 执行权限,表示可以运行可执行文件或者进入目录。
- 权限字符串:
- Linux系统中,文件和目录的权限用一组字符来表示,通常以rwxr-xr--的形式呈现,其中r、w、x分别表示读、写和执行权限。以下是权限字符的含义:
- 第1-3位确定属主(该文件的所有者)拥有该文件的权限。
- 第4-6位确定属组(所有者的同组用户)拥有该文件的权限。
- 第7-9位确定其他用户拥有该文件的权限。
思考题
若某文件的权限字符串为rwxr-xr--,请分析该文件的权限策略。
5.3.2 常用命令
- chmod(change mode)
- 作用
-
- 基本语法
- chmod [选项] [u/g/o/a][+/-/=][r/w/x] 文件或目录
- u:user
- g:group
- o:other
- a:all
- chmod [选项] 777 文件或目录
- chmod [选项] [u/g/o/a][+/-/=][r/w/x] 文件或目录
- 基本语法
权限表示法 | user | group | other |
字符串 | rwx | r-x | rw- |
数字(二进制) | 111 | 101 | 110 |
数字(八进制) | 7 | 5 | 6 |
-
- 选项说明
选项 | 功能 |
-R | 递归操作 |
-
-
- 实操案例
- 修改文件使其所属主用户具有执行权限
- 实操案例
-
-
-
- ~]# chmod u+x hello.cfg
- 修改文件使其所属组用户具有执行权限
- ~]# chmod g+x hello.cfg
- 修改文件所属主用户执行权限,并使其他用户具有执行权限
- ~]# chmod u-x,o+x hello.cfg
- 采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。
- ~]# chmod 777 hello.txt
- 修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读写执行权限。
- ~]# chmod -R 777 hello/
- ~]# chmod u+x hello.cfg
-
- chown(change owner)
- 作用
-
- 基本语法
-
- [选项] 用户[:用户组] 文件或目录
-
- 选项说明
选项 | 功能 |
-R | 递归操作 |
-
- 实操案例
- 修改文件所有者
- 实操案例
-
- ~]# chown atguigu helle.cfg
- 递归改变文件所有者和所有组
- ~]# chown -R atguigu:atguigu hello/
- ~]# chown atguigu helle.cfg
5.4 进程管理相关
操作系统中正在运行的一个程序称为一个进程。
- 查看进程
- ps(process status)命令查看操作系统中当前的进程。
- 常见用法
- ps aux
- 常见用法
选项 | 功能 |
a | 显示所有前台进程 |
u | 以用户友好的方式打印进程信息 |
x | 显示后台进程 |
-
-
- aux显示内容如下
-
-
-
- PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 193964 7048 ? Ss 08:56 0:01 /usr/lib/systemd/systemd
root 2 0.0 0.0 0 0 ? S 08:56 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 08:56 0:00 [kworker/0:0H]
root 5 0.0 0.0 0 0 ? S 08:56 0:00 [kworker/u256:0]
- PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
-
-
-
-
- USER:启动该进程的用户
- PID:进程ID
- %CPU:该进程占用CPU资源的百分比
- %MEM:该进程占用物理内存的百分比
- COMMAND:产生此进程的命令名
- ps -ef
-
-
选项 | 功能 |
-e | 显示所有进程 |
-f | 以完整的格式显示进程的详细信息 |
-
-
- -ef显示内容如下
-
-
-
- PID PPID C STIME TTY TIME CMD
root 1 0 0 08:56 ? 00:00:01 /usr/lib/systemd/systemd
root 2 0 0 08:56 ? 00:00:00 [kthreadd]
root 4 2 0 08:56 ? 00:00:00 [kworker/0:0H]
root 5 2 0 08:56 ? 00:00:00 [kworker/u256:0]
root 6 2 0 08:56 ? 00:00:00 [ksoftirqd/0]
root 7 2 0 08:56 ? 00:00:00 [migration/0]
- PID PPID C STIME TTY TIME CMD
-
-
-
-
- UID:用户ID
- PID:进程ID
- PPID:父进程ID
- CMD:启动进程所用的命令和参数
-
- 使用技巧
-
-
- grep命令配合使用,grep可用于过滤文本行。
- Java进程,便可执行以下命令
-
- -ef | grep java
-
- 符号称为管道符,其作用是将前边命令的输出作为下一命令的输入。
- 终止进程
- kill命令,其用法如下
- 基本语法
-
- [选项] 进程号
-
- 选项说明
选项 | 功能 |
-9 | 表示强迫进程立即停止 |
-
- 案例实操,启动火狐浏览器,并杀死相关进程。
-
- firefox。
5.6 压缩归档相关
- zip/unzip
- 可用于压缩和解压缩zip文件,使用方式如下
- 基本语法
-
- [选项] XXX. 文件或路径
un [选项] XXX.
- [选项] XXX. 文件或路径
-
- 选项说明
zip选项 | 功能 |
-r | 压缩目录 |
unzip选项 | 功能 |
-d 目录 | 指定解压后文件的存放目录 |
-
- 案例实操
- 压缩文件
- 案例实操
-
-
- file1.txt和file2.txt,并将其压缩为first.zip
-
-
-
- ~]# vim file1.txt
~]# vim file2.txt
~]# zip first.zip file1.txt file2.txt
- ~]# vim file1.txt
-
-
-
- 压缩目录
-
-
-
- ~]# zip -r hello.zip hello
-
-
-
- 解压
-
-
-
- zip目录,并将first.zip中的内容解压到zip目录
-
-
-
- ~]# mkdir zip
~]# unzip first.zip -d zip/
- ~]# mkdir zip
-
- tar
- 可用于对文件进行归档(打包)和压缩,使用方式如下
- 基本语法
-
- tar [选项] -c -f 包名 文件1 文件2 文件3 ...
- tar [选项] -x -f 包名 -C 指定目录
-
- 选项说明
选项 | 功能 | |
-c | 打包 | |
-x | 解包 | |
-z | 打包的同时进行压缩(解包的时候进行解压) | |
-v | 打包或解包时显示正在处理的文件信息 | |
-f 包名 | 指定打包后的文件名后者要解包的文件名 | |
-C 目录 | 解包到指定目录 |
-
- 案例实操
- 打包file1.txt和file2.txt到first.tar
- 案例实操
-
-
- ~]# tar -cvf first.tar file1.txt file2.txt
-
-
-
- 打包并压缩file1.txt和file2.txt到first.tar.gz
-
-
-
- ~]# tar -zcvf first.tar.gz file1.txt file2.txt
-
-
-
- 解包并解压first.tar.gz到tar目录
-
-
-
- ~]# mkdir tar
~]# tar -zxvf first.tar.gz -C ./tar
- ~]# mkdir tar
-
5.7 安装应用相关
5.7.1 RPM离线安装
- RPM概述
- (RedHat Package Manager),RedHat软件包管理工具,在基于 RedHat 的 Linux 发行版中广泛使用。常见软件包如下Apache-1.3.23-11.i386.rpm,类似于Windows系统中的exe文件。
- rpm命令
- rpm命令安装、卸载和查看系统中的应用,具体用法如下
- 安装
- 基本语法
- 安装
-
-
- -ivh 软件包路径
-
-
-
- 选项说明
-
选项 | 功能 |
-i | -i=install,安装 |
-v | -v=verbose,显示详细信息 |
-h | -h=hash,进度条 |
-
-
- 案例实操
-
-
-
- sl软件的rpm安装包,并安装
- https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/s/sl-5.02-1.el7.x86_64.rpm
- 查看
- 基本语法
-
-
-
- -qa(功能描述:查询所安装的所有软件包)
-
-
-
- 选项说明
-
选项 | 功能 |
-q | 查询模式 |
-a | 表示所有 |
-
-
- 案例实操
-
-
-
- ~]# rpm -qa | grep sl
- 卸载
- 基本语法
-
-
-
- -e 软件包名
-
-
-
- 案例实操
-
-
-
- sl软件
-
-
-
- ~]# rpm -e sl-5.02-1.el7.x86_64
-
5.7.2 Yum在线安装
- Yum概述
- (全称为 Yellowdog Updater Modified)是一个Linux软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,并且可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装,该功能类似在JAVA中使用Maven工具从远程仓库中下载依赖一样,可以自动处理依赖关系。
- yum命令
- yum安装和卸载应用,具体用法如下
- 安装软件包
- 基本语法
- 安装软件包
-
-
- [选项] install 软件包名
-
-
-
- 选项说明
-
选项 | 功能 |
-y | 对所有提问都回答“yes” |
-
-
- 案例实操
-
-
-
- yum在线安装sl软件
- 查询sl软件的包名
- yum在线安装sl软件
-
-
-
-
- Linux中的各种软件包,地址为https://pkgs.org/,搜索sl,并查看对应的Linux发行版,搜索结果为yum install sl。
-
-
-
-
-
- 执行yum安装命令
-
-
-
-
-
- yum install sl后的结果为
- sl。
错误:无须任何处理 - yum的工作原理是从我们所配置的远程仓库下载rpm包,然后进行安装,远程仓库的配置文件位于/etc/yum.repo.d/目录中。上述问题的原因就是sl软件的rpm包不在系统预先配置的这些远程仓库中。因此需要先配置sl所在的远程仓库,才可使用yum进行安装,具体操作如下。
-
-
-
-
-
- 配置远程仓库
-
-
-
-
-
- ~]# yum -y install epel-release
-
-
-
-
-
- /etc/yum.repo.d/目录下配置文件的变化。
-
-
-
-
-
- 重新安装sl
-
-
-
-
-
- ~]# yum -y install sl
-
- 卸载软件包
- 基本语法
-
-
-
- remove 软件包名
- 案例实操
-
-
- sl软件
-
- ~]# yum remove sl
6. Linux系统远程访问
多数情况下,工作时所用的服务器并不在身边,这些计算机要么位于机房,要么位于云端,因此我们不能向操作个人电脑一样操作服务器,而是需要通过远程登录的方式来操作。
6.1 SSH概述
SSH(Secure Shell)使用一种网络协议,用于在计算机之间建立加密的连接,从而允许用户以安全的方式在远程的计算机中执行命令。
6.2 SSH实操
Linux系统中都会预装SSH服务,因此我们只需在自己的个人电脑安装SSH客户端,然后配置连接即可。可以选择的SSH客户端有很多,目前,比较主流的有 Xshell, SecureCRT,FinalShell,MobaXterm 等,同学们可以根据自己的习惯自行选择。本课程使用MobaXterm,下面演示具体使用方式。
- 在Windows主机安装MobaXterm软件,安装包位于项目资料中。
- 查询虚拟机IP地址
- ifconfig(network interfaces configuring)命令可查看虚拟机ip地址,其输出内容如下
- flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.104 netmask 255.255.255.0 broadcast 172.17.0.255
inet6 fe80::5fdd:f01e:a4fb:966 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:fc:a3:fe txqueuelen 1000 (Ethernet)
RX packets 183030 bytes 70503744 (67.2 MiB)
RX errors 0 dropped 78 overruns 0 frame 0
TX packets 23385 bytes 1917128 (1.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:ea:8a:fb txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- ens33,为虚拟机的以太网络接口,此处获取的ip地址为172.17.0.104。
- 在MobaXterm中配置SSH(Secure Shell)连接
- 点击Session选项
-
- 点击SSH选项,并配置连接信息
-
- 输入root用户密码
-
- 远程登录成功,如下图所示
7. 虚拟机网络配置
7.1 目前痛点
目前虚拟机联网方式为桥接模式,这种模式下,虚拟机通过主机的物理网卡,直接连接到主机所在的网络当中。具体效果如下图所示。
这种模式下存在两个痛点
- 主机必须连接到某个网络中,主机和虚拟机才能互通。
- 更换网络后,主机和虚拟机的IP地址均会发生变化,因此远程访问工具中的IP需要同步进行修改。
为解决上述痛点,我们需要调整虚拟机的网络模式和配置静态IP。
7.2 虚拟机网络模式
7.2.1 主机网络环境
为理解VMware中的虚拟网络模式,我们首先需要明确主机所处的真实网络环境,其所处环境如下图所示:
如上图所示,路由器一端(WAN口,Wide Area Network)连接互联网,另一端(Local Area Network,LAN)连接多个设备,这些设备组成一个局域网,局域网中的设备都通过路由器访问互联网,这个场景应该是大家十分熟悉的。下面为大家介绍路由器中的两个十分重要的角色。
- DHCP
- Dynamic Host Configuration Protocol ,动态主机配置协议,该协议用于给联网的设备自动分配(私网)IP地址和其他网络配置。家用路由器中一般就会集成DHCP服务,因此设备只要连接上路由器,便能自动获取IP地址等网络配置。
- NAT
- Network Address Translation,网络地址转换,该技术主要用于缓解IPv4地址短缺,有了NAT之后,可以令多个网络设备共享一个公网IP地址,家庭路由器中也都集成了该服务。
- NAT设备(路由器)一端连接互联网,其具有一个公网IP,另一端连接一个局域网,局域网中的每个设备均只有一个私网IP。当局域网中的设备经过路由器向互联网中的其他设备发送数据时,NAT服务会将数据包的源地址由该设备的私网IP替换为路由器的公网IP,因此互联网中的其他设备看到源地址为路由器的公网IP,所以其返回数据时,就会把路由器的公网IP设置为目标地址,路由器接收到数据之后,NAT设备再将数据的目标地址由路由器的公网IP改为原设备的私网IP,最终数据就能返回到该设备了。具体流程如下图所示
在对我们的主机所处的网络环境有了一个了解后,下面分别为大家介绍VMware中的三种网络模式。
7.2.2 桥接模式
桥接模式的原理如下图所示
这种模式下,VMware虚拟出了一个交换机。首先,该虚拟交换机通过主机的物理网卡连接到主机所在的网络中,然后所有的虚拟机都通过虚拟交换机接入到主机所在网络中。所以在该模式下,虚拟机和主机位于同一网络中,因此在主机接入网络的前提下,虚拟机和物理机是可以互通的。
7.2.3 NAT模式
NAT模式的原理如下图所示
这种模式下,VMware虚拟出了一个交换机,一个DHCP服务以及一个NAT服务,相当于构成了一个虚拟路由器。虚拟路由器通过主机的物理网卡连接到主机所在的网络,虚拟机则全部连接到虚拟路由器上,组成了一个子网。此时所有的虚拟机位于同一网络,因此彼此之间可以互通,但是主机不能与虚拟机互通。
为使主机能够和虚拟机互通,VMware又在主机中虚拟出了一个网卡,并连接到了这个虚拟路由器中,这时主机便可虚拟机互通了。
7.2.4 仅主机模式
仅主机模式的原理如下图所示
这种模式,和NAT模式十分相似,唯一的区别是,虚拟路由器并未连接到主机所在的网络中,因此主机和虚拟机之间可以互通,但是虚拟机不能访问互联网。
7.2.5 网络模式选择
为保证主机未联网的情况下,主机和虚拟机也能实现互通;同时保证主机联网的情况下虚拟机也能访问互联网,我们最好选择上述三种模式中的NAT模式,具体配置如下。
7.2.5.1 VMware虚拟网络配置
- 点击VMware菜单栏中的编辑,选择虚拟网络编辑器
- 打开虚拟网络编辑器后,赋予管理员权限
- 配置VMnet8子网
- 打开NAT配置界面
- 修改NAT配置
- 网关IP须位于VMnet8子网IP范围内。
7.2.5.3 虚拟机选择网络模式
- 修改虚拟机所使用的网络模式
- 选择NAT模式
7.2.5.2 Windows主机网络配置
上述配置中,VMware已将Windows主机连接到虚拟网络中了,此处只需查看Windows主机中的虚拟网络网卡配置是否正确即可。
- 打开网络适配器配置面板
- 打开运行窗口,输入ncpa.cpl,然后按回车键
- 查看VMnet8虚拟网络适配器
- 查看IpV4配置
- IP须位于VMnet8子网IP范围内。
7.3 配置静态IP
NAT模式下,虚拟机的IP地址,默认情况下是由虚拟DHCP服务自动分配的,虚拟机的IP地址不固定,这对于SSH远程访问也不友好,所以通常情况下,我们不使用虚拟DHCP服务,而是手动为虚拟机配置静态的IP地址。具体操作如下。
- 确定网络配置文件
- ifconfig命令,查看当前的网络接口,内容如下
- flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.100 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::5fdd:f01e:a4fb:966 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:fc:a3:fe txqueuelen 1000 (Ethernet)
RX packets 1526 bytes 136998 (133.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1907 bytes 136735 (133.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 68 bytes 5916 (5.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 68 bytes 5916 (5.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:ea:8a:fb txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- ens33是目前的以太网接口,故其配置文件为vim /etc/sysconfig/network-scripts/ifcfg-ens33。
- 修改网络配置文件
- ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
- =Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=bf788989-e095-4e58-865a-e6b07248a514
DEVICE=ens33
ONBOOT=yes
-
- 修改BOOTPROTO参数为static
- 修改ONBOOT参数为yes
- 增加如下内容
-
- =192.168.10.100
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
DNS1=192.168.10.2
- =192.168.10.100
-
- 需要位于前文VMnet8子网IP范围内,GATEWAY需要配置为前文的NAT服务的网管IP。
- 重新启动网络服务
- network服务
- ~]# systemctl restart network
- 观察网络配置是否生效
- ifoconfig命令,观察ens33的网络接口的IP地址是否为前文所配置的IPADDR。
文档在我上传资源上: https://download.csdn.net/download/qq_60870118/89739508
相关文章:

linux从0到1 基础完整知识
1. Linux系统概述 Linux是一种开源操作系统,与Windows或macOS等操作系统不同,Linux允许用户自由地查看、修改和分发其源代码。以下是Linux系统的一些显著的优势。 稳定性和可靠性: 内核以其稳定性而闻名,能够持续运行数月甚至数…...

“人大金仓”正式更名为“电科金仓”; TDSQL-C支持回收站/并行DDL等功能; BigQuery支持直接查询AlloyDB
重要更新 1. “人大金仓”正式更名为“电科金仓”,完整名称“中电科金仓(北京)科技股份有限公司”,突出金仓是中国电子科技集团有限公司在基础软件领域产品( [1] ) 。据悉人大金仓在上半年营收入为9056万元,净利润约21…...
大模型微调 - 用PEFT来配置和应用 LoRA 微调
大模型微调 - 用PEFT来配置和应用 LoRA 微调 flyfish PEFT(Parameter-Efficient Fine-Tuning)是一种参数高效微调库,旨在减少微调大型预训练模型时需要更新的参数量,而不影响最终模型的性能。它支持几种不同的微调方法ÿ…...

Ubuntu构建只读文件系统
本文介绍Ubuntu构建只读文件系统。 嵌入式系统使用过程中,有时会涉及到非法关机(比如直接关机,或意外断电),这可能造成文件系统损坏,为了提高系统的可靠性,通常将根文件系统设置为只读…...

【黑金系】金融UI/UX体验设计师面试作品集 Figma源文件分享
在数字金融时代,UI/UX体验设计师扮演着至关重要的角色。他们不仅塑造着产品的界面,更引领着用户的使用体验。我们的面试作品集,正是这样一部展现金融UI/UX设计魅力的宝典。 这套作品集汇聚了众多经典案例,每一处设计都经过精心雕…...

Golang | Leetcode Golang题解之第392题判断子序列
题目: 题解: func isSubsequence(s string, t string) bool {n, m : len(s), len(t)f : make([][26]int, m 1)for i : 0; i < 26; i {f[m][i] m}for i : m - 1; i > 0; i-- {for j : 0; j < 26; j {if t[i] byte(j a) {f[i][j] i} else {…...
Liunx常用指令
1. 文件和目录管理 ls 用法:ls [选项] [文件/目录]示例:ls -l(以长列表格式显示),ls -a(显示所有文件,包括隐藏文件)。 cd 用法:cd [目录]示例:cd ..…...
CSS基础:浮动(float)如何使用清楚以及代替方法
浮动元素在 CSS 中主要通过 float 属性来控制,影响元素的排列方式。浮动用于创建流式布局,常用于实现图文混排、布局列等效果。以下是浮动元素的相关属性和使用方法: 1. 基本浮动属性 float: 控制元素的浮动方向,可以设置为 left…...
margin重叠该怎么解决?
在CSS中,当两个或多个垂直相邻的块级元素(如<div>)的margin相遇时,它们不会叠加成两个margin的和,而是会取两个margin中的较大值,这种现象被称为“margin重叠”(margin collapsing&#x…...

Linux学习笔记(黑马程序员,前四章节)
第一章 快照 虚拟机快照: 通俗来说,在学习阶段我们无法避免的可能损坏Linux操作系统,如果损坏的话,重新安装一个Linux操作系统就会十分麻烦。VMware虚拟机支持为虚拟机制作快照。通过快照将当前虚拟机的状态保存下来,…...
tekton pipeline resources
PipelineResource 代表着一系列的资源,主要承担作为 Task 的输入或者输出的作用。它有以下几种类型: git:代表一个 git 仓库,包含了需要被构建的源代码。将 git 资源作为 Task 的 Input,会自动 clone 此 git 仓库。pu…...
使用Python实现多个PDF文件的合并
使用Python可以很方便地实现多个PDF文件的合并。我们可以使用PyPDF2库来完成这个任务。以下是一个实现PDF合并的Python脚本: import os from PyPDF2 import PdfMergerdef merge_pdfs(input_dir, output_filename):# 创建一个PdfMerger对象merger PdfMerger()# 获取…...

微擎忘记后台登录用户名和密码怎么办?解决方法
微擎忘记后台登录名和登录密码是很常见的,服务器百科网fwqbk.com告诉你找回后台登录用户名和密码的方法: 一:找回微擎后台用户名 (如果只是忘记了后台登录密码,请忽略此步骤,跳转到第二步) 通…...

blender我的对称模型好像中点被我不小心移动了 我现在如果雕刻 两边修改的地方不是对称的 我该怎么办
blender我的对称模型好像中点被我不小心移动了 我现在如果雕刻 两边修改的地方不是对称的 我该怎么办 首先请调整好模型确保左右前后对其相应的xyz轴 之后CtrlA应用变换 确保这些都归0且模型和xyz轴对应 如果在Blender中模型的中点(对称轴)不小心被移动了…...

数据库——MySQL概述
一、数据库 存储数据的仓库,数据是有组织的存储,简称database(DB) 二、数据库管理系统 操控和管理数据库的大型软件(DBMS) 三、SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据库…...

云服务器部署DB-GPT项目
本文收录于《DB-GPT项目》专栏,专栏总目录: 点击这里。 文章目录 项目介绍 一、登录云服务器 1. 进入控制台 2.点击容器实例(点数字) 二、创建容器实例 1. 等待容器实例创建好,创建好的容器实例如下:…...

基于锂电池的多路直流电源模块设计
本实物模块从实物外观、接口介绍及功能说明三部分来介绍这款基于锂电池的多路直流电源模块。 1、实物外观 2、接口介绍 本模块的3D外观图如下图所示,整体尺寸为6*8cm。H1为单节锂电池接口,H2为5V输出接口,H3为12V输出接口,H4为-…...

蓝奏云网盘搜索网页版PHP源码
蓝搜WEB网页版V1.0是一款全开源的搜索引擎程序,支持添加搜索违禁词,并且提供了代码注释,方便用户阅读和修改。该程序支持自适应PC端和移动端,并采用了简洁的界面设计,没有后台管理的繁琐操作,使用起来十分方…...
CocosCreator面试真题详解
最近有位同学面试Cocos Creator,我们把面试时问道的真题列举出来,并配上参考答案。 问题1: 你们公司项目时如何做战斗系统的? 面试官你好,做战斗系统和架构的时候,我们一般把代码逻辑分成3层来设计,同时把数据独立出…...

线性代数 第七讲 二次型_标准型_规范型_坐标变换_合同_正定二次型详细讲解_重难点题型总结
文章目录 1.二次型1.1 二次型、标准型、规范型、正负惯性指数、二次型的秩1.2 坐标变换1.3 合同1.4 正交变换化为标准型 2.二次型的主要定理3.正定二次型与正定矩阵4.重难点题型总结4.1 配方法将二次型化为标准型4.2 正交变换法将二次型化为标准型4.3 规范型确定取值范围问题4.…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...

Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...

归并排序:分治思想的高效排序
目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法,由约翰冯诺伊曼在1945年提出。其核心思想包括: 分割(Divide):将待排序数组递归地分成两个子…...
JavaScript 标签加载
目录 JavaScript 标签加载script 标签的 async 和 defer 属性,分别代表什么,有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...
自定义线程池1.2
自定义线程池 1.2 1. 简介 上次我们实现了 1.1 版本,将线程池中的线程数量交给使用者决定,并且将线程的创建延迟到任务提交的时候,在本文中我们将对这个版本进行如下的优化: 在新建线程时交给线程一个任务。让线程在某种情况下…...